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