Microsoft опубликовал дистрибутив Azure Linux 3.0 https://github.com/microsoft/azurelinux/ Компания Microsoft опубликовала первое стабильное обновление новой ветки дистрибутива Azure Linux 3.0, который ранее распространялся под именем CBL-Mariner. Дистрибутив развивается в качестве универсальной базовой платформы для Linux-окружений, используемых в облачной инфраструктуре, edge-системах и различных сервисах Microsoft. Проект нацелен на унификацию применяемых в Microsoft Linux-решений и упрощение поддержания Linux-систем различного назначения в актуальном состоянии. Наработки проекта распространяются под лицензией MIT. Сборки пакетов формируются для архитектур aarch64 и x86_64. Размер установочного образа 740 МБ.
Среди изменений в новой версии:
1:
Ядро Linux обновлено до версии 6.6 (ранее использовалось ядро 5.15). Добавлена поддержка наложения патчей на работающее ядро (live patching), позволяющая устранять уязвимости в ядре без перезагрузки.
Предложены новые версии пакетов, среди которых systemd 255, glibc 2.38, GCC 13.2, clang 18.1, OpenSSL 3.3, rpm 4.18.2, ruby 3.3.0, BIND 9.20, containerd 1.7.13, кunc 1.1.12, ostree 2024.5, rust 1.75, Perl 5.38, Python 3.12.3, QEMU 8.2.0.
Система принудительного контроля доступа SELinux переведена по умолчанию в режим "enforcing".
По умолчанию задействована унифицированная иерархия cgroups v2. Ключевым отличием cgroups v2 от v1 является применение общей иерархии cgroups для всех видов ресурсов, вместо раздельных иерархий для распределения ресурсов CPU, для регулирования потребления памяти и для ввода/вывода.
Добавлены инструменты для замены других дистрибутивов (OSsku In-Place Migration) на узлах в облаке Microsoft Azure, например, можно заменить установленный Ubuntu на Azure Linux.
Добавлена поддержка новых GPU NVIDIA, таких как NVIDIA A100 и H100, а также предоставлен NVIDIA GPU Operator для автоматизации управления драйверами NVIDIA на узлах с Azure Linux.
Дистрибутив Azure Linux предоставляет небольшой типовой набор основных пакетов, выступающих универсальной основой для создания начинки контейнеров, хост-окружений и сервисов, запускаемых в облачных инфраструктурах и на edge-устройствах. Более сложные и специализированные решения могут создаваться путём добавления дополнительных пакетов поверх Azure Linux, но основа для всех подобных систем остаётся неизменной, что упрощает сопровождение и подготовку обновлений.
Например, Azure Linux применяется в качестве основы мини-дистрибутива WSLg, в котором предоставляются компоненты графического стека для организации запуска GUI-приложений Linux в окружениях на базе подсистемы WSL2 (Windows Subsystem for Linux). Расширенная функциональность в WSLg реализуется через включение дополнительных пакетов с композитным сервером Weston, XWayland, PulseAudio и FreeRDP.
Для управления сервисами и загрузкой применяется системный менеджер systemd. Для управления пакетами поставляются пакетные менеджеры RPM и DNF. SSH-сервер по умолчанию не включается. Для установки дистрибутива предоставляется инсталлятор, который может работать как в текстовом, так и в графическом режимах. В инсталляторе предоставляется возможность установки с полным или базовым набором пакетов, предлагается интерфейс для выбора дискового раздела, выбора имени хоста и создания пользователей.
Система сборки Azure Linux позволяет генерировать как отдельные RPM-пакеты на основе SPEC-файлов и исходных текстов, так и монолитные системные образы, формируемые при помощи инструментария rpm-ostree и обновляемые атомарно без разбивки на отдельные пакеты. Соответственно, поддерживается две модели доставки обновлений: через обновление отдельных пакетов и через перестроение и обновление всего системного образа. Доступен репозиторий, включающий около 3000 уже собранных RPM-пакетов, который можно использовать для компоновки собственных образов на основе файла конфигурации.
Базовая платформа включает только самые необходимые компоненты и оптимизирована для минимального потребления памяти и дискового пространства, а также для высокой скорости загрузки. В проекте применяется подход "максимальная безопасность по умолчанию", подразумевающий включение различных дополнительных механизмов для повышения защиты:
Фильтрация системных вызовов при помощи механизма seccomp.
Шифрование дисковых разделов.
Верификация пакетов по цифровой подписи.
Рандомизация адресного пространства.
Защита от атак, связанных с символическими ссылками, mmap, /dev/mem и /dev/kmem.
Режим только для чтения и запрет исполнения кода в областях памяти, в которых размещаются сегменты с данными ядра и модулей.
Опция для запрета загрузки модулей ядра после инициализации системы.
Использование iptables для фильтрации сетевых пакетов.
Включение при сборке режимов защиты от переполнения стека, переполнений буфера и проблем с форматированием строк (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
__________________ Don't trouble trouble until trouble troubles you
Релиз Aura 4.0.0, пакетного менеджера для Arch Linux https://fosskers.github.io/aura/ Представлен выпуск проекта Aura 4.0.0, развивающего пакетный менеджер для дистрибутива Arch Linux, расширяющий возможности штатного пакетного менеджера Pacman.
1:
Проект создан в 2012 году и изначально был нацелен на предоставление средств для сборки пакетов для репозитория AUR (Arch User Repository), применяемого для распространения сторонними разработчиками своих пакетов, не входящих в основные репозитории дистрибутива Arch Linux. Код проекта распространяется под лицензией GPLv3.
Кроме специфичных для AUR функций в Aura также предоставляются и другие возможности, расширяющие функциональность Pacman (в настоящее время только 1/3 расширенных возможностей Aura связаны с AUR). Например, доступны средства для наглядного анализа зависимостей, работы со снапшотами наборов пакетов (для сохранения и восстановления состояния), управления остаточными зависимостями и отката отдельных пакетов или всей системы на прошлые версии.
Пакетный менеджер Aura полностью обратно совместим с Pacman и поддерживает все его команды и опции (Aura можно использовать как замену Pacman с расширенными функциями). Связанные с AUR дополнительные возможности вызываются через указание опции командной строки "-A", а средства работы со снапшотами и версиями через опции "-B" и "-С", не пересекающиеся с опциями Pacman. Также предлагаются такие дополнительные команды, как "check", "conf", "free", "stats" и "deps" для проверки целостности системы, работы с конфигурацией, анализа лицензий, просмотра статистики и разбора зависимостей.
Функциональность Pacman воссоздаётся благодаря использованию библиотеки libalpm, предлагающей базовые возможности управления пакетами, применяемые в пакетном менеджере Pacman. Проектом также поддерживается собственный сервер с метаданными пакетов, позволяющий существенно ускорить поиск пакетов и разрешение зависимостей.
Новая версия примечательна полным переписыванием кодовой базы, которая переведена с использования языка Haskell на язык Rust. Смена языка позволила значительно повысить производительность, упростить установку, задействовать готовые Rust-биндинги к libalpm, сделать проект более привлекательным для новых разработчиков, улучшить интерфейс командной строки и в 4 раза сократить размер исполняемого файла.
Добавлена команда "aura deps", позволяющая генерировать изображения с наглядным представлением зависимостей. Например, для просмотра пакетов, зависящих от gcc, можно выполнить "aura deps gcc --reverse --optional --open", а для просмотра пакетов, от которых зависит gcc - "aura deps gcc --limit=3 --open":