Alpine Linux — дистрибутив Linux, ориентированный на безопасность, легковесность и нетребовательность к ресурсам. В основном используется во встраиваемых системах[4][5][6][7][8][9], стал основой PostmarketOS[10], также хорошо подходит для создания Docker-контейнеров[11][12][13][14]. Основан на musl и BusyBox, использует PaX и grsec по умолчанию в ядре и компилирует все пакеты с защитой стека от переполнения[15].

Alpine Linux
Изображение логотипа
Первый выпуск 2006[2]
Последняя версия 3.20.2[1] (22 июля 2024; 4 месяца назад (2024-07-22))
Менеджеры пакетов Alpine package manager[вд]
Поддерживаемые платформы x86, x86-64, ARM, IBM System/390, ppc64[вд] и RISC-V
Лицензия GNU GPL 2[3], лицензия MIT[3] и 2-пунктная лицензия BSD[вд][3]
Репозиторий исходного кода gitlab.alpinelinux.org
Веб-сайт alpinelinux.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Для обеспечения безопасности в дистрибутиве применяются:

  • свежие (актуальные) версии ядра Linux и других пакетов, например iptables, openssl;
  • применение патчей, увеличивающих безопасность, на все компоненты системы, помимо ядра;
  • довольно частый релизный цикл, поддерживающий актуальность дистрибутива на высоком уровне.

Размер базовой системы Alpine Linux составляет всего лишь 4-5 Мбайт (исключая ядро). Контейнер требует не более 8 МБ, а для минимальной установки на диск требуется около 130 МБ.[4]

С целью повышения безопасности все программы пространства пользователя компилируются как position-independent executable с защитой от повреждения стека.

История

править

Первоначально был ответвлением проекта LEAF[англ.][16]: большинство разработчиков проекта LEAF хотело продолжать разрабатывать дистрибутив Linux, который мог поместиться на одной дискете, тогда как разработчики Alpine Linux желали включить ещё несколько тяжёлых пакетов, таких как Squid и Samba, а также дополнительные функции безопасности и новое ядро. Одна из первоначальных целей заключалась в создании основы для большой системы, сейчас это не является главной целью проекта[17].

До выпуска 3.7 дистрибутив поставлялся с hardened-ядром (патчи PaX и grsec) с целью уменьшения возможного вреда от уязвимостей.[18]

Особенности

править

В дистрибутиве реализована собственная система управления пакетами apk-tools, которая изначально была частью коллекции сценариев (shell scripts), но позже была переписана разработчиками на Си. Alpine на данный момент включает в себя такие пакеты, как KDE, GNOME, Xfce, Firefox и другие.

По умолчанию Alpine Linux во время запуска полностью загружается в оперативную память.

Первоначально в дистрибутиве в качестве стандартной библиотеки языка Си использовалась uClibc вместо традиционной библиотеки glibc, несмотря на лёгкий вес, у неё есть существенный недостаток — она бинарно несовместима с glibc, таким образом, всё программное обеспечение было скомпилировано с использованием uClibc для корректной работы. Однако с 9 апреля 2014 года[19] Alpine Linux стала использовать библиотеку musl[20], которая является частично бинарно совместимой с glibc[21].

Инициализация системы, по сравнению с другими дистрибутивами, такими как Debian, Ubuntu, Arch Linux и CentOS, не использует systemd[22].

Примечания

править
  1. Alpine 3.20.2 released (англ.). Дата обращения: 7 августа 2024. Архивировано 7 августа 2024 года.
  2. Crunchbase (англ.) — 2007.
  3. 1 2 3 Shiz ... Alpine License information — 2017.
  4. 1 2 About | Alpine Linux.About (англ.). Дата обращения: 17 апреля 2012. Архивировано 30 апреля 2012 года.
  5. Review: Alpine Linux is made for Docker | InfoWorld. Дата обращения: 15 июня 2018. Архивировано 15 июня 2018 года.
  6. Alpine Linux 2 review | LinuxBSDos.com. Дата обращения: 26 августа 2015. Архивировано 5 сентября 2015 года.
  7. Security-Oriented Alpine Linux 3.7 Has UEFI Support, GRUB Support in Installer. Дата обращения: 15 июня 2018. Архивировано 15 июня 2018 года.
  8. 10 Most Secure Linux Distros For Complete Privacy & Anonymity | 2017 Edition. Дата обращения: 15 июня 2018. Архивировано 15 июня 2018 года.
  9. Is Docker ditching Ubuntu Linux? Confusion reigns | Network World. Дата обращения: 15 июня 2018. Архивировано 16 июня 2018 года.
  10. Aiming for a 10 year life-cycle for smartphones (англ.). postmarketos.org. Дата обращения: 19 марта 2022. Архивировано 2 октября 2017 года.
  11. Nunez, Steven Review: Alpine Linux is made for Docker (англ.). InfoWorld (10 июля 2017). Дата обращения: 26 июня 2018. Архивировано 15 июня 2018 года.
  12. Nunez, Steven Review: The best Linux distros for Docker and containers (англ.). InfoWorld (30 октября 2017). Дата обращения: 26 июня 2018. Архивировано 25 июня 2018 года.
  13. Noyes, Katherine Is Docker ditching Ubuntu Linux? Confusion reigns (англ.). InfoWorld (10 февраля 2016). Дата обращения: 26 июня 2018. Архивировано 27 июня 2018 года.
  14. Alpine Linux Goes All In for Docker (англ.). eWEEK. Дата обращения: 26 июня 2018.
  15. about | Alpine Linux (англ.). www.alpinelinux.org. Дата обращения: 19 января 2016. Архивировано 15 января 2016 года.
  16. The Search Engine that Does at InfoWeb.net (англ.). Архивировано 14 мая 2016 года.
  17. Alpine 2.2.0 — Linux-дистрибутив для роутеров и брандмауэров — Новости (nixp.ru). Дата обращения: 3 мая 2022. Архивировано 12 мая 2014 года.
  18. Alpine 3.8.0 released | Alpine Linux. alpinelinux.org. Дата обращения: 27 апреля 2022. Архивировано 3 июля 2022 года.
  19. Alpine 3.0.0 released | Alpine Linux (англ.). Дата обращения: 15 июня 2018. Архивировано 28 января 2021 года.
  20. Alpine Linux has switched to musl libc | Alpine Linux (англ.). Дата обращения: 10 февраля 2015. Архивировано 10 февраля 2015 года.
  21. musl FAQ (англ.). Дата обращения: 10 февраля 2015. Архивировано 20 февраля 2015 года.
  22. Alpine Linux Init System — Alpine Linux (англ.). Дата обращения: 15 июня 2018. Архивировано 16 ноября 2020 года.

Ссылки

править
  • alpinelinux.org — официальный сайт Alpine Linux
  • Jesse Smith. Exploring Alpine Linux 3.2.0 (англ.). DistroWatch.com (6 июня 2015). Дата обращения: 26 августа 2015.
  • Alpine Linux 2 review (англ.). LinuxBSDos.com (23 августа 2010). Дата обращения: 26 августа 2015.