В декабре Microsoft выпустила новую версию дистрибутива Azure Linux 3.0.20241203. Он создан для работы в «облаках», edge-системах и, конечно, сервисах Microsoft. Проект не проприетарный, у него открытый исходный код. Образы новой версии ОС доступны для архитектур aarch64 и x86_64, а размер установочного файла составляет 750 Мб.
Что это за дистрибутив
Основное применение Azure Linux — решение задач, связанных с облачной инфраструктурой и edge-системами. Дистрибутив предназначен для разработки, тестирования и запуска контейнеров, стабильной работы сервисов Microsoft в разнообразных сценариях — от крупных дата-центров до компактных IoT-устройств.
Главная идея авторов проекта — предоставить минималистичную, но универсальную платформу, которая:
-
упрощает настройку и обновление за счет базового набора пакетов;
-
служит стабильным фундаментом для сервисов, разворачиваемых в облачных и локальных средах;
-
обеспечивает высокую скорость загрузки, безопасность и минимальное потребление ресурсов.
Azure Linux впервые увидел свет в июле 2022 года, когда Microsoft официально представила стабильную версию дистрибутива. Корпорации была нужна ОС, заменяющая сторонние решения, такие как CentOS и Ubuntu, в экосистеме облачных сервисов Azure.
С момента выпуска первой версии разработка Azure Linux велась с упором на улучшение совместимости с современными облачными технологиями и безопасность. И у Microsoft все получилось — причем настолько хорошо, что ОС стали использовать и компании, никак не связанные с корпорацией.
Что нового в версии 3.0.20241203
Дистрибутив включает минимальный набор пакетов, необходимых для работы контейнеров, хост-окружений и сервисов. Систему оптимизировали для экономии вычислительных ресурсов, включая ОЗУ и дисковое пространство. Вот основные изменения и дополнения:
-
Переход на iptables-nft. Пакетный фильтр iptables теперь обрабатывает команды через механизм nftables. По умолчанию используется пакет iptables-nft, заменяющий iptables-legacy. Это позволяет повысить производительность и унифицировать управление сетевыми правилами.
-
Поддержка больших страниц памяти для Aarch64. В новую версию включен дополнительный пакет ядра kernel-64k для систем Aarch64. Ядро собрано с опцией CONFIG_ARM64_64K_PAGES. Так что можно использовать страницы памяти размером 64 Кб, обеспечивая лучшую производительность в ресурсоемких задачах.
-
Обновления в пакетном менеджере TDNF. В tdnf добавлена поддержка настройки installonlypkgs — можно эффективно управлять установкой пакета kernel-64k и других обновлений.
-
Расширения для systemd-networkd. Добавлена обработка livenet rootfs через Dracut. Это улучшило работу с загрузкой сетевых корневых файловых систем.
-
Новые драйверы и инструменты:
-
добавлен драйвер для сетевых адаптеров Intel Ethernet Connection E800;
-
в обработчик логов Fluent Bit добавлена поддержка языка Lua, это дает больше возможностей для работы с данными.
-
-
Безопасность загрузки. Включена проверка цифровых подписей ядер, загружаемых через механизм kexec.
-
Улучшение работы с контейнерами. Для определения контейнерных сборок вместо проверки файла /.dockerenv теперь используется утилита systemd-detect-virt для более точного определения виртуализации.
-
Обновленные пакеты:
-
ядро Linux 6.6.57;
-
Shim 15.8;
-
SymCrypt 103.6.0;
-
Valkey (форк Redis) 8.0.1;
-
Go 1.23.3;
-
MariaDB 10.11.10;
-
PostgreSQL 16.5.
-
Azure Linux используется в проекте WSLg — мини-дистрибутиве для запуска графических приложений Linux в среде Windows через WSL2. У него оптимизированное окружение с такими компонентами:
-
Weston — композитный сервер Wayland для управления окнами.
-
XWayland — компонент для запуска приложений, которые используют устаревший X11-протокол.
-
PulseAudio — для обработки аудио.
-
FreeRDP — обеспечивает удаленный доступ и взаимодействие между Linux-программами и Windows.
Все эти компоненты интегрированы в Azure Linux для бесшовной работы графических приложений Linux в Windows с высокой степенью производительности и совместимости.
Стоит отдельно упомянуть систему управления в этой ОС и безопасность. Вот основные характеристики первой:
-
менеджмент сервисов: в дистрибутиве применяется systemd;
-
пакетные менеджеры: используются RPM и DNF, но SSH-сервер по умолчанию не активен;
-
инсталлятор: поддерживает текстовый и графический режимы, предоставляет выбор между базовой и полной установкой, настройку дисковых разделов, имени хоста и учетных записей.
Безопасность обеспечивается такими функциями:
-
Seccomp: ограничение системных вызовов;
-
шифрование дисков: сохранность данных при утечке или краже устройств;
-
подписи пакетов: проверка цифровой подписи для предотвращения несанкционированных изменений;
-
рандомизация адресного пространства и защита от атак: символические ссылки, mmap, /dev/mem и /dev/kmem защищены дополнительными мерами;
-
оптимизация компиляции: используются флаги защиты (_FORTIFY_SOURCE, -fstack-protector и другие).
Как обновиться?
Система сборки Azure Linux может создавать как отдельные RPM-пакеты со SPEC-файлами и исходными текстами, так и монолитные системные образы с применением rpm-ostree. Последние обновляются атомарно.
А еще предусмотрен репозиторий с примерно 3 000 готовых RPM-пакетов. Их можно использовать для создания кастомных образов на основе конфигурационного файла.
Azure Linux продолжает развиваться как универсальная и безопасная платформа для облачных и edge-систем. Благодаря гибкой схеме сборки и компактности Azure Linux остается конкурентоспособным решением для разработчиков и инфраструктурных инженеров. Если у вас есть опыт работы с дистрибутивом, расскажите, как он вам.
Автор: BiktorSergeev