Skip to content

Instantly share code, notes, and snippets.

@ilyaigpetrov
Last active November 1, 2025 04:58
Show Gist options
  • Select an option

  • Save ilyaigpetrov/c6a05e50114dd34ce01fdfb18f228d90 to your computer and use it in GitHub Desktop.

Select an option

Save ilyaigpetrov/c6a05e50114dd34ce01fdfb18f228d90 to your computer and use it in GitHub Desktop.
Кратко об Alpine Linux на 10.2025 | #Alpine #СПО #Линукс #NoSystemd #Кратко #RU

Кратко об Alpine Linux на 10.2025

О дистрибутиве

Сайт: https://alpinelinux.org.
Мотто: «Small. Simple. Secure.»
Кредо: «Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox».
О себе / About: «independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency», /about.
Подробнее о себе: https://wiki.alpinelinux.org/wiki/Alpine_Linux:Overview.
Страничка в DistroWatch: https://distrowatch.com/alpine.
Происхождение: Норвегия.
Команда: Natanael Copa⁠ (основатель и сопровождающий).

Alpine находит применение в контейнерах, встраиваемых (embedded) системах, сетевом оборудовании, серверах, одноплатниках и в качестве нетребовальной ОС для продвинутых пользователей.

Prior Art / Существующие обзоры:

Предупреждение: у меня довольно мало опыта с этим дистрибутивом.

Особенности

  1. Легковесный. Вместо общепринятых в популярных дистрибутивах утилит и др. программ используются менее требовательные альтернативы:
    • glibc (GPL) → musl (MIT)
    • coreutils (LGPL) → BusyBox (GPL)
    • systemd (LGPL) → OpenRC (BSD)
    • Bash (GPL) → Busybox Ash shell (GPL)
    • sudo (ISC-style) → doas (ISC)
  2. Из-за нестандартного набора ПО не является строгим GNU/Linux[not-gnu] и, бывает, имеет проблемы совместимости c этой ОС. Бинарники должны быть скомпилированы под musl, либо запускаться через слой совместимости gcompat -- см. [not-glib].
  3. Собственный пакетный менеждер APK (Alpine Package Keeper, GPL, на C).
    11.2025 ожидается выпуск Alpine 3.23.0, включающий новые apk-tools v3.
    OpenWRT планирует перейти на APK, но, думаю, уже после выхода v3.
    См. [apk].
  4. Акцент на безопасности. По умолчанию включает микрокоды для CPU. Бинарники компилируеются с защитой PIE (не точно). См. [security].
  5. Простой (по внутреннему устройству, принцип KISS).
  6. Минималистичен. Поставляется без предустановленного графического окружения -- см. no-de. Но, несмотря на это, работа из виртуальной консоли, включая установку графической оболочки, настройки системы и прочей подгонки под себя (customization), упрощается благодаря наличию удобных setup-* скриптов: см. https://wiki.alpinelinux.org/wiki/Alpine_setup_scripts.
  7. Поддержка различных архитектур, включая Raspberry Pi: см. https://wiki.alpinelinux.org/wiki/Alpine_Linux:Overview#Architectures.

Ссылки и сноски

  1. Про несоответствие GNU/Linux:

    1. «The GNU operating system»: https://www.gnu.org/philosophy/categories.html#TheGNUsystem.
    2. «How much of the GNU system is needed for the system to be GNU/Linux?»: https://www.gnu.org/gnu/gnu-linux-faq.html#howmuch.
    3. «Are there complete Linux systems [sic] without GNU?»: https://www.gnu.org/gnu/gnu-linux-faq.html#linuxsyswithoutgnu.
    4. https://en.wikipedia.org/wiki/GNU/Linux_naming_controversy#Composition_of_operating_systems.
  2. Про musl, glibc и бинарную несовместимость:

    1. https://wiki.alpinelinux.org/wiki/Software_management#Running_glibc_programs.
  3. Про пакетный менеджер APK:

    1. Черновик заметки к выпуску Alpine Linux v3.23.0 с apk-tools v3: alpine-draft.
    2. О переходе OpenWRT на APK в выпуске от 06.02.2025:

      OpenWrt 24.10 uses OPKG only, APK packages are not supported. Only main branch was changed to APK.

  4. Про безопасность:

    1. Микрокод: https://wiki.alpinelinux.org/wiki/CPU_Microcode.
    2. Защита PIE:
      • Из /about:

        All userland binaries are compiled as Position Independent Executables (PIE) with stack smashing protection.

      • В версии 3.23.0 запланирована поддержка PIE для статических бинарников (static binaries). См. alpine-draft.

Публикации

-- В тг-канале «Декрабизация»: https://t.me/decrabru/59.

  1. There are no musl binaries for Golang at https://go.dev/dl/. I have found only this community package: https://pkgs.alpinelinux.org/package/edge/community/x86_64/go.
  2. For IPFS on Alpine see: https://gist.github.com/ilyaigpetrov/6a5d25bc6b076f67d44d6c83e2ce6524#alpine-linux.
  3. You can tune setup-scripts by specifying environment variables. Something like $ ROOTFS=btrfs setup-disk should work. See:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment