Представлен бета-выпуск дистрибутива AlmaLinux 9, построенный с использованием пакетов из ветки Red Hat Enterprise Linux 9 и содержащий все предложенные в данном выпуске изменения. Сборки подготовлены для архитектур x86_64, ARM64, s390x и ppc64le в форме загрузочного (780 МБ), минимального (1.7 ГБ) и полного образа (8 ГБ). Релизы RHEL 9 и AlmaLinux 9 ожидаются в начале мая.
Дистрибутив идентичен с RHEL по функциональности, за исключением изменений, связанных ребрендингом и удалением специфичных для RHEL пакетов, таких как redhat-*, insights-client и subscription-manager-migration*. AlmaLinux бесплатен для всех категорий пользователей, развивается с привлечением сообщества и использованием модели управления, похожей на организацию работы проекта Fedora. Создатели AlmaLinux попытались достичь оптимального баланса между корпоративной поддержкой и интересами сообщества – с одной стороны к разработке привлечены ресурсы и разработчики компании CloudLinux, которая имеет большой опыт в сопровождении форков RHEL, а с другой стороны проект прозрачен и подконтролен сообществу.
Дистрибутив AlmaLinux основан компанией CloudLinux, которая несмотря на вовлечение своих ресурсов и разработчиков, передала проект отдельной некоммерческой организации AlmaLinux OS Foundation для разработки на нейтральной площадке с участием сообщества. На развитие проекта выделено миллион долларов в год. Все наработки AlmaLinux публикуются под свободными лицензиями.
Основные изменения в AlmaLinux 9 и RHEL 9 по сравнению с веткой RHEL 8:
- Обновлено системное окружение и сборочный инструментарий. Для сборки пакетов задействован GCC 11. Стандартная Си-библиотека обновлена до glibc 2.34. Пакет с ядром Linux построен на базе выпуска 5.14. Пакетный менеджер RPM обновлён до версии 4.16 с поддержкой контроля целостности через fapolicyd.
- Завершена миграция дистрибутива на Python 3. По умолчанию предложена ветка Python 3.9. Поставка Python 2 прекращена.
- Рабочий стол основан на GNOME 40 (в RHEL 8 поставлялся GNOME 3.28) и библиотеке GTK 4. В GNOME 40 виртуальные рабочие столы в обзорном режиме (Activities Overview) переведены на горизонтальную ориентацию и отображаются в виде непрерывно прокручиваемой слева направо цепочки. На каждом рабочем столе, показываемом в обзорном режиме, наглядно представлены имеющиеся окна, для которых применяется динамическое панорамирование и масштабирование при взаимодействии пользователя. Обеспечен бесшовный переход между списком программ и виртуальными рабочими столами.
- В GNOME задействован обработчик power-profiles-daemon, предоставляющий возможность переключения на лету между режимом экономии энергии, режимом сбалансированного энергопотребления и режимом максимальной производительности.
- Все звуковые потоки переведены на мультимедийный сервер PipeWire, который теперь используется по умолчанию вместо PulseAudio и JACK. Использование PipeWire позволяет в обычной настольной редакции предоставить возможности профессиональной обработки звука, избавиться от фрагментации и унифицировать звуковую инфраструктуру для разных применений.
- По умолчанию скрыто загрузочное меню GRUB, если RHEL является единственным установленным в системе дистрибутивом и если прошлая загрузка прошла без сбоев. Для показа меню во время загрузки достаточно удерживать клавишу Shift или несколько раз нажать клавишу Esc или F8. Из изменений в загрузчике также отмечается размещение файлов конфигурации GRUB для всех архитектур в одном каталоге /boot/grub2/ (файл /boot/efi/EFI/redhat/grub.cfg теперь является символической ссылкой на /boot/grub2/grub.cfg), т.е. одну и ту же установленную систему можно загружать как с использованием EFI, так и BIOS.
- Компоненты для поддержки различных языков вынесены в пакеты langpacks, позволяющие варьировать уровень устанавливаемой языковой поддержки. Например, в пакете langpacks-core-font предлагаются только шрифты, в langpacks-core – локаль для glibc, базовый шрифт и метод ввода, а в langpacks – переводы, дополнительные шрифты и словари для проверки правописания.
- Обновлены компоненты для обеспечения безопасности. В дистрибутиве задействована новая ветка криптографической библиотеки OpenSSL 3.0. По молчанию включены более современные и надёжные криптографические алгоритмы (например, запрещено применение SHA-1 в TLS, DTLS, SSH, IKEv2 и Kerberos, отключены TLS 1.0, TLS 1.1, DTLS 1.0, RC4, Camellia, DSA, 3DES и FFDHE-1024). Пакет OpenSSH обновлён до версии 8.6p1. Cyrus SASL переведён на бэкенд GDBM вместо Berkeley DB. В библиотеках NSS (Network Security Services) прекращена поддержка формата DBM (Berkeley DB). GnuTLS обновлён до версии 3.7.2.
- Значительно повышена производительность SELinux и снижено потребление памяти. В /etc/selinux/config убрана поддержка настройки “SELINUX=disabled” для отключения SELinux (указанная настройка теперь только отключает загрузку политик, а для фактического отключения функциональности SELinux теперь требуется передача ядру параметра “selinux=0”).
- Добавлена экспериментальная поддержка VPN WireGuard.
- По умолчанию запрещён вход по SSH под пользователем root.
- Объявлены устаревшими инструменты управления пакетным фильтром iptables-nft (утилиты iptables, ip6tables, ebtables и arptables) и ipset.
Для управления межсетевым экраном теперь рекомендуется использовать nftables. - В состав включён новый демон mptcpd для настройки MPTCP (MultiPath TCP), расширения протокола TCP для организации работы TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP-адресам. Использование mptcpd даёт возможность настроить MPTCP без использования утилиты iproute2.
- Удалён пакет network-scripts, для настройки сетевых соединений следует использовать NetworkManager. Поддержка формата настроек ifcfg сохранена, но NetworkManager по умолчанию использует формат на основе файла keyfile.
- В состав включены новые версии компиляторов и инструментов для разработчиков: GCC 11.2, LLVM/Clang 12.0.1, Rust 1.54, Go 1.16.6, Node.js 16, OpenJDK 17, Perl 5.32, PHP 8.0, Python 3.9, Ruby 3.0, Git 2.31, Subversion 1.14, binutils 2.35, CMake 3.20.2, Maven 3.6, Ant 1.10.
- Обновлены серверные пакеты Apache HTTP Server 2.4.48, nginx 1.20,
Varnish Cache 6.5, Squid 5.1. - Обновлены СУБД MariaDB 10.5, MySQL 8.0, PostgreSQL 13, Redis 6.2.
- Для сборки эмулятора QEMU по умолчанию задействован Clang, что позволило применить в гипервизоре KVM некоторые дополнительные механизмы защиты, такие как SafeStack для защиты от методов эксплуатации на основе возвратно-ориентированного программирования (ROP – Return-Oriented Programming).
- В SSSD (System Security Services Daemon) повышена детализация логов, например, к событиям теперь прикрепляется время завершения задачи и отражается поток аутентификации. Добавлены функции поиска для анализа проблем с настройками и производительностью.
- Расширена поддержка IMA (Integrity Measurement Architecture) для проверки целостности компонентов операционной системы по цифровым подписям и хэшам.
- По умолчанию задействована единая унифицированная иерархия cgroup (cgroup v2). Сgroups v2 можно использовать, например, для ограничения потребления памяти, ресурсов CPU и ввода/вывода. Ключевым отличием cgroups v2 от v1 является применение общей иерархии cgroups для всех видов ресурсов, вместо раздельных иерархий для распределения ресурсов CPU, для регулирования потребления памяти и для ввода/вывода. Раздельные иерархии приводили к трудностям организации взаимодействия между обработчиками и к дополнительным затратам ресурсов ядра при применении правил для процесса, упоминаемого в разных иерархиях.
- Добавлена поддержка синхронизации точного времени на базе протокола NTS (Network Time Security), который использует элементы инфраструктуры открытых ключей (PKI) и позволяет использовать TLS и аутентифицированное шифрование AEAD (Authenticated Encryption with Associated Data) для криптографической защиты взаимодействия клиента и сервера по протоколу NTP (Network Time Protocol). NTP-сервер chrony обновлён до версии 4.1.
- Обеспечена экспериментальная поддержка KTLS (реализация TLS на уровне ядра), Intel SGX (Software Guard Extensions), DAX (Direct Access) для ext4 и XFS, поддержка AMD SEV и SEV-ES в гипервизоре KVM.