Alpine Linux — это небольшой, простой и безопасный дистрибутив Linux . [3] Он использует musl , BusyBox и OpenRC вместо более часто используемых glibc , GNU Core Utilities и systemd . [4] [5] [6] [7] [8] Это делает Alpine одним из немногих дистрибутивов Linux, не основанных на GNU Core Utilities. [9]
В целях безопасности Alpine компилирует все двоичные файлы пользовательского пространства как позиционно-независимые исполняемые файлы с защитой от разрушения стека . [10]
Из-за своего небольшого размера и быстрого запуска он обычно используется в контейнерах , обеспечивающих быструю загрузку, [11] [12] на виртуальных машинах , а также на реальном оборудовании во встроенных устройствах , таких как маршрутизаторы , серверы и NAS . [ нужна цитата ]
Первоначально Alpine Linux начинался как встраиваемый дистрибутив для таких устройств, как беспроводные маршрутизаторы , основанный на Gentoo Linux , [13] вдохновленный GNAP и ветвью Bering-uClibc проекта LEAF . [1] Основатель Натанаэль Копа сказал, что это имя было выбрано в качестве бэкронима для «Сетевой механизм на базе Linux» или какой-либо подобной фразы, но с тех пор точная фраза была забыта. [14]
Система управления пакетами Alpine , Alpine Package Keeper, [15] изначально представляла собой набор сценариев оболочки [16] , но позже была переписана на C. [17] Целью этого менеджера пакетов является достижение высокой скорости установки и обновления, что достигается за счет записи новых данных непосредственно в файловую систему операционной системы , а не за счет использования кэширования или сжатия . [14]
В 2014 году Alpine Linux перешла с uClibc на musl в качестве стандартной библиотеки C. [18]
Усиленное ядро PaX было включено в дистрибутив по умолчанию , чтобы помочь снизить воздействие эксплойтов и уязвимостей, [19] , но сопровождающие Alpine решили прекратить эту поддержку, поскольку патч PaX больше не доступен публично. [20] Alpine по-прежнему использует усиленную цепочку инструментов и независимые от позиции исполняемые файлы, чтобы минимизировать потенциал атак на основе стека , [14] но теперь основан на стандартном долгосрочном стабильном дистрибутиве ядра Linux.
Основной особенностью Alpine является ее небольшой размер, который позволяет ей быстро запускаться и работать в средах с очень малым объемом памяти и хранилища, таких как контейнеры или встроенные устройства .
Alpine Linux можно дополнительно установить как операционную систему , запускаемую из ОЗУ . Это позволяет Alpine надежно работать в требовательных встроенных средах или (временно) выдерживать частичные сбои диска, которые иногда возникают в средах публичного облака. По умолчанию Alpine, работающая в этом режиме, загружает только несколько пакетов ключей, но доступен инструмент под названием LBU (Alpine Local Backup) [21] , который позволяет записывать изменения в этой конфигурации загрузки в специальный файл, называемый наложением APK. файл (обычно сокращается до apkovl ), файл tar.gz , который по умолчанию хранит копии всех файлов в /etc, которые были изменены по сравнению с конфигурацией по умолчанию, с возможностью отслеживать дополнительные каталоги по мере необходимости.
Alpine предлагает ряд предустановленных сценариев настройки, которые помогают пользователю выполнить первоначальную настройку системы для выполнения общих вычислительных задач. [22] Кроме того, Alpine также предлагает инструмент на основе веб-сервера , известный как Alpine Configuration Framework, который позволяет пользователям, менее знакомым с Alpine или командной строкой, настраивать операционную систему способом, аналогичным тому, который позволяет утилита debconf Debian . Сценарии конфигурации Alpine полностью написаны как сценарии оболочки UNIX , которые вызывают небольшую утилиту анализа ISO-образов , написанную на C и распространяемую на Alpine. Alpine Configuration Framework написан на языке Lua . [23]
postmarketOS , дистрибутив Linux для мобильных устройств , основан на Alpine Linux. [24]
Благодаря своей надежности и компактности Alpine Linux тесно интегрирован с популярными средами и наборами инструментов для разработчиков и системных администраторов.
Alpine Linux в основном критикуют за проблемы совместимости с библиотекой musl, [28] [29], а также за проблемы с закреплением пакетов. [29] [30]
Основное предостережение, на которое следует обратить внимание, заключается в том, что он использует musl libc вместо glibc и его друзей, поэтому программное обеспечение часто сталкивается с проблемами в зависимости от глубины требований/предположений libc.