Le projet CentOS a officiellement annoncé la disponibilité de la distribution CentOS Stream 9, qui sert de base à la formation de la distribution Red Hat Enterprise Linux 9 dans le cadre d'un nouveau processus de développement plus ouvert. CentOS Stream appartient aux distributions mises à jour en continu et permet d'accéder plus tôt aux packages développés pour la prochaine version de RHEL. Les compilations sont préparées pour les architectures x86_64, Aarch64 et ppc64le (IBM Power 9+). De plus, le support de l'architecture IBM Z (s390x Z14+) a été annoncé, mais les compilations pour celle-ci ne sont pas encore disponibles.
CentOS Stream se positionne comme le projet en amont pour RHEL, offrant aux participants externes la possibilité de contrôler la préparation des packages pour RHEL, de proposer leurs modifications et d'influencer les décisions prises. Auparavant, un snapshot d'une des versions de Fedora était utilisé comme base pour une nouvelle branche de RHEL, qui était affinée et stabilisée derrière des portes fermées, sans possibilité de contrôler le processus de développement et les décisions prises. Dans le cadre du développement de RHEL 9 basé sur le snapshot de Fedora 34, avec la participation de la communauté, la branche CentOS Stream 9 a été formée, où un travail préparatoire est effectué et la base pour une nouvelle branche significative de RHEL est constituée.

Il est à noter que pour CentOS Stream, les mêmes mises à jour sont publiées que celles préparées pour la future version intermédiaire de RHEL qui n'a pas encore été publiée, et l'objectif principal des développeurs est d'atteindre un niveau de stabilité de CentOS Stream identique à celui de RHEL. Avant qu'un package ne soit proposé dans CentOS Stream, il passe par divers systèmes de test automatique et manuel, et est publié uniquement si son niveau de stabilité est jugé conforme aux normes de qualité des packages prêts pour publication dans RHEL. Simultanément avec CentOS Stream, les mises à jour préparées sont placées dans les compilations nocturnes de RHEL.
Les principaux changements dans CentOS Stream 9 par rapport à la précédente branche significative :
- L'environnement système et les outils de construction ont été mis à jour. GCC 11 est utilisé pour la compilation des paquets. La bibliothèque standard C a été mise à jour vers glibc 2.34. Le paquet avec le noyau Linux est basé sur la version 5.14. Le gestionnaire de paquets RPM a été mis à jour vers la version 4.16 avec support du contrôle d'intégrité via fapolicyd.
- La migration de la distribution vers Python 3 est terminée. La branche Python 3.9 est proposée par défaut. La distribution de Python 2 a été arrêtée.
- Le bureau est basé sur GNOME 40 (GNOME 3.28 était livré avec RHEL 8) et la bibliothèque GTK 4. Dans GNOME 40, les bureaux virtuels dans le mode d'aperçu (Activités) sont présentés dans une orientation horizontale et s'affichent sous la forme d'une chaîne défilante continue de gauche à droite. Sur chaque bureau affiché en mode aperçu, les fenêtres disponibles sont représentées de manière visuelle, avec un panoramique et un zoom dynamique en fonction de l'interaction de l'utilisateur. Une transition fluide est assurée entre la liste des applications et les bureaux virtuels.
- GNOME utilise le gestionnaire power-profiles-daemon, qui permet de basculer à la volée entre le mode d'économie d'énergie, le mode d'alimentation équilibrée et le mode de performance maximale.
- Tous les flux audio ont été transférés vers le serveur multimédia PipeWire, qui est maintenant utilisé par défaut à la place de PulseAudio et JACK. L'utilisation de PipeWire permet dans l'édition de bureau standard d'offrir des capacités de traitement audio professionnel, d'éliminer la fragmentation et d'unifier l'infrastructure audio pour diverses applications.
- Par défaut, le menu de démarrage GRUB est caché si RHEL est le seul système d'exploitation installé et si le dernier démarrage s'est déroulé sans échec. Pour afficher le menu au démarrage, il suffit de maintenir la touche Shift ou d'appuyer plusieurs fois sur la touche Esc ou F8. Parmi les changements apportés au chargeur de démarrage, il convient également de noter que les fichiers de configuration de GRUB pour toutes les architectures sont désormais regroupés dans un seul répertoire /boot/grub2/ (le fichier /boot/efi/EFI/redhat/grub.cfg est maintenant un lien symbolique vers /boot/grub2/grub.cfg), c'est-à-dire qu'un même système installé peut être démarré à la fois en utilisant EFI et BIOS.
- Les composants de prise en charge de plusieurs langues ont été regroupés dans des paquets langpacks, permettant de varier le niveau de prise en charge linguistique installé. Par exemple, le paquet langpacks-core-font propose uniquement des polices, tandis que langpacks-core inclut la locale pour glibc, la police de base et la méthode de saisie, et enfin, langpacks contient les traductions, les polices supplémentaires et les dictionnaires pour la vérification orthographique.
- Les composants de sécurité ont été mis à jour. Une nouvelle branche de la bibliothèque cryptographique OpenSSL 3.0 est intégrée dans la distribution. Par défaut, des algorithmes cryptographiques plus modernes et fiables sont activés (par exemple, l'utilisation de SHA-1 est interdite dans TLS, DTLS, SSH, IKEv2 et Kerberos, et TLS 1.0, TLS 1.1, DTLS 1.0, RC4, Camellia, DSA, 3DES et FFDHE-1024 sont désactivés). Le paquet OpenSSH a été mis à jour vers la version 8.6p1. Cyrus SASL a été transféré sur le backend GDBM au lieu de Berkeley DB. Le support du format DBM (Berkeley DB) a été supprimé dans les bibliothèques NSS (Network Security Services). GnuTLS a été mis à jour vers la version 3.7.2.
- Les performances de SELinux ont été considérablement améliorées et la consommation de mémoire a été réduite. La configuration dans /etc/selinux/config a supprimé le support de l'option "SELINUX=disabled" pour désactiver SELinux (cette option désactive désormais uniquement le chargement des politiques, et pour désactiver effectivement la fonctionnalité de SELinux, le paramètre "selinux=0" doit désormais être transmis au noyau).
- Support expérimental ajouté pour VPN WireGuard.
- Par défaut, l'accès SSH avec l'utilisateur root est désactivé.
- Les outils de gestion du filtrage de paquets iptables-nft (les utilitaires iptables, ip6tables, ebtables et arptables) et ipset sont déclarés obsolètes. Pour la gestion du pare-feu, il est désormais recommandé d'utiliser nftables.
- Un nouveau démon mptcpd a été intégré pour configurer MPTCP (MultiPath TCP), une extension du protocole TCP pour gérer les connexions TCP avec livraison des paquets simultanément sur plusieurs chemins via différentes interfaces réseau liées à différents adresses IP. L'utilisation de mptcpd permet de configurer MPTCP sans utiliser l'outil iproute2.
- Le paquet network-scripts a été supprimé, pour configurer les connexions réseau il faut utiliser NetworkManager. Le support du format de configuration ifcfg est conservé, mais NetworkManager utilise par défaut le format basé sur le fichier keyfile.
- De nouvelles versions de compilateurs et d'outils pour les développeurs ont été ajoutées: 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.
- Les paquets serveur ont été mis à jour : Apache HTTP Server 2.4.48, nginx 1.20, Varnish Cache 6.5, Squid 5.1.
- Mise à jour des SGBD MariaDB 10.5, MySQL 8.0, PostgreSQL 13, Redis 6.2.
- Clang est utilisé par défaut pour compiler l'émulateur QEMU, ce qui permet d'appliquer dans l'hyperviseur KVM certains mécanismes de protection supplémentaires, tels que SafeStack pour protéger contre les méthodes d'exploitation basées sur la programmation orientée retour (ROP - Return-Oriented Programming).
- Dans SSSD (System Security Services Daemon), la granularité des journaux a été améliorée, par exemple, le temps de complétion des tâches est maintenant joint aux événements et le flux d'authentification est reflété. Des fonctions de recherche ont été ajoutées pour analyser les problèmes de configuration et de performance.
- Le support d'IMA (Integrity Measurement Architecture) a été élargi pour vérifier l'intégrité des composants du système d'exploitation via des signatures numériques et des hachages.
- Une hiérarchie unifiée unique de cgroup (cgroup v2) est activée par défaut. Les cgroups v2 peuvent être utilisés, par exemple, pour limiter la consommation de mémoire, les ressources CPU et les entrées/sorties. La principale différence entre cgroups v2 et v1 est l'application d'une hiérarchie commune de cgroups pour tous les types de ressources, au lieu de hiérarchies séparées pour la répartition des ressources CPU, pour la régulation de la consommation de mémoire et pour les entrées/sorties. Les hiérarchies séparées entraînaient des difficultés d'organisation de l'interaction entre les gestionnaires et des coûts supplémentaires pour le noyau lors de l'application de règles pour un processus mentionné dans différentes hiérarchies.
- Ajout du support de la synchronisation d'heure précise basée sur le protocole NTS (Network Time Security), qui utilise des éléments d'infrastructure à clé publique (PKI) et permet d'utiliser TLS et le chiffrement authentifié AEAD (Authenticated Encryption with Associated Data) pour protéger cryptographiquement l'interaction client et de serveurs par le protocole NTP (Network Time Protocol). Le serveur NTP chrony a été mis à jour vers la version 4.1.
- Un support expérimental pour KTLS (implémentation de TLS au niveau du noyau), Intel SGX (Software Guard Extensions), DAX (Direct Access) pour ext4 et XFS, ainsi que le support d'AMD SEV et SEV-ES dans l'hyperviseur KVM a été assuré.
Parallèlement, la branche CentOS Stream 8 continue de se développer, utilisée pour préparer de nouvelles versions de RHEL 8.x, et est recommandée pour migrer les systèmes utilisant la distribution classique CentOS 8.x, dont le support sera interrompu à la fin du mois. Pour passer à CentOS Stream, il suffit d'installer le paquet centos-release-stream (« dnf install centos-release-stream ») et d'exécuter la commande « dnf update ». Le support de la branche CentOS Stream 8 se poursuivra jusqu'au 31 mai 2024, tandis que le support de la version classique CentOS 7.x prendra fin le 30 juin 2024.
En alternative, les utilisateurs peuvent également se tourner vers les distributions qui ont poursuivi le développement de la branche CentOS 8 : AlmaLinux (script de migration), Rocky Linux (script de migration), VzLinux (script de migration) ou Oracle Linux (script de migration). De plus, Red Hat a permis (script de migration) l'utilisation gratuite de RHEL dans les organisations développant des logiciels open source et dans les environnements de développeurs individuels, comptant jusqu'à 16 systèmes virtuels ou physiques.
Source : opennet.ru
