Компания Red Hat представи версията на дистрибутива Red Hat Enterprise Linux 9. Готовите инсталационни образи ще бъдат достъпни скоро за регистрирани потребители в Red Hat Customer Portal (за тестване на функционалността могат да се използват и iso-образи на CentOS Stream 9). Версията е създадена за архитектурите x86_64, s390x (IBM System z), ppc64le и Aarch64 (ARM64). Изходният код на rpm-пакетите на Red Hat Enterprise Linux 9 е разположен в Git-репозитория на CentOS. В съответствие с 10-годишния цикъл на поддръжка, дистрибуцията RHEL 9 ще бъде поддържана до 2032 година. Актуализациите за RHEL 7 ще продължат да се публикуват до 30 юни 2024 година, а за RHEL 8 — до 31 май 2029 година.
Дистрибуцията Red Hat Enterprise Linux 9 е забележителна с прехода към по-отворен процес на разработка. За разлика от предишните версии, основата на дистрибуцията е пакетната база CentOS Stream 9. CentOS Stream се позиционира като upstream проект за RHEL, позволяващ на външни участници да контролират подготовката на пакетите за RHEL, да предлагат изменения и да влияят на взетите решения. Преди това за основа на новата версия на RHEL беше използван моментна снимка от една от версиите на Fedora, която се доразвиваше и стабилизираше зад затворени врати, без възможност за контрол над хода на разработката и взетите решения. Сега, въз основа на моментна снимка на Fedora, с участието на общността, се формира версията CentOS Stream, в която се извършва подготовката и се създава основата за новата значителна версия на RHEL.
Ключови промени:
- Обновено е системното обкръжение и инструментариумът за изграждане. За изграждане на пакети е използван GCC 11. Стандартната C библиотека е обновена до 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). Cgroups 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.
- Осигурена е експериментална (Technology Preview) поддръжка за KTLS (имплементация на TLS на ниво ядро), Intel SGX (Software Guard Extensions), DAX (Direct Access) за ext4 и XFS, поддръжка на AMD SEV и SEV-ES в хипервизора KVM.
Източник: opennet.ru
