Alpine Linux | |
---|---|
![]() | |
![]() | |
Последняя версия | 3.19.0[1] (7 декабря 2023 ) |
Менеджеры пакетов | Alpine package manager[d] |
Поддерживаемые платформы | x86, x86-64, ARM, IBM System/390, ppc64[d] и RISC-V |
Лицензия | GNU GPL 2[2], лицензия MIT[2] и 2-пунктная лицензия BSD[d][2] |
Репозиторий исходного кода | gitlab.alpinelinux.org |
Веб-сайт | alpinelinux.org (англ.) |
![]() |
Alpine Linux — дистрибутив Linux, ориентированный на безопасность, легковесность и нетребовательность к ресурсам. В основном используется во встраиваемых системах[3][4][5][6][7][8], стал основой PostmarketOS[9], также хорошо подходит для создания Docker-контейнеров[10][11][12][13]. Основан на musl и BusyBox, использует PaX и grsec по умолчанию в ядре и компилирует все пакеты с защитой стека от переполнения[14].
Для обеспечения безопасности в дистрибутиве применяются:
Размер базовой системы Alpine Linux составляет всего лишь 4-5 Мбайт (исключая ядро). Контейнер требует не более 8 МБ, а для минимальной установки на диск требуется около 130 МБ.[3]
С целью повышения безопасности все программы пространства пользователя компилируются как position-independent executable с защитой от повреждения стека.
Первоначально был ответвлением проекта LEAF[15]: большинство разработчиков проекта LEAF хотели продолжать разрабатывать дистрибутив Linux, который мог поместиться на одной дискете, тогда как разработчики Alpine Linux желали включить ещё несколько тяжёлых пакетов, таких как Squid и Samba, а также дополнительные функции безопасности и новое ядро. Одна из первоначальных целей заключалась в создании основы для большой системы, сейчас это не является главной целью проекта[16].
До выпуска 3.7 дистрибутив поставлялся с hardened-ядром (патчи PaX и grsec) с целью уменьшения возможного вреда от уязвимостей.[17]
В дистрибутиве реализована собственная система управления пакетами apk-tools, которая изначально была частью коллекции сценариев (shell scripts), но позже была переписана разработчиками на Си. Alpine на данный момент включает в себя такие пакеты как KDE, GNOME, Xfce, Firefox, и другие.
По умолчанию, Alpine Linux во время запуска полностью загружается в оперативную память.
Первоначально в дистрибутиве в качестве стандартной библиотеки языка Си использовалась uClibc вместо традиционной библиотеки glibc, несмотря на лёгкий вес, у неё есть существенный недостаток — она бинарно несовместима с glibc, таким образом, всё программное обеспечение было скомпилировано с использованием uClibc для корректной работы. Однако с 9 апреля 2014 года[18], Alpine Linux стала использовать библиотеку musl[19], которая является частично бинарно совместимой с glibc[20].
Инициализация системы, по сравнению с другими дистрибутивами, такими как Debian, Ubuntu, Arch Linux и CentOS, не использует systemd[21].