Il progetto CentOS ha ufficialmente annunciato la disponibilità della distribuzione CentOS Stream 9, che viene utilizzata come base per la creazione della distribuzione Red Hat Enterprise Linux 9 nell'ambito di un nuovo processo di sviluppo più aperto. CentOS Stream è una distribuzione continuamente aggiornata e consente di accedere prima ai pacchetti sviluppati per il futuro rilascio di RHEL. Le build sono preparate per le architetture x86_64, Aarch64 e ppc64le (IBM Power 9+). È stata inoltre dichiarata la supporto per l'architettura IBM Z (s390x Z14+), ma le build per essa non sono ancora disponibili.
CentOS Stream è posizionato come un progetto upstream per RHEL, che consente ai partecipanti esterni di controllare la preparazione dei pacchetti per RHEL, proporre le proprie modifiche e influenzare le decisioni prese. In passato, come base per un nuovo ramo di RHEL veniva utilizzato uno snapshot di una delle versioni di Fedora, che veniva lavorato e stabilizzato a porte chiuse, senza possibilità di controllare il progresso dello sviluppo e le decisioni adottate. Durante lo sviluppo di RHEL 9, basato sullo snapshot di Fedora 34, è stata formata la branch CentOS Stream 9 con la partecipazione della comunità, nella quale si svolgono i lavori preparatori e si gettano le basi per un nuovo ramo significativo di RHEL.

Si segnala che per CentOS Stream vengono pubblicati gli stessi aggiornamenti preparati per il futuro rilascio intermedio di RHEL ancora non rilasciato, e l'obiettivo principale degli sviluppatori è raggiungere un livello di stabilità di CentOS Stream identico a quello di RHEL. Prima che un pacchetto venga offerto in CentOS Stream, passa attraverso vari sistemi di test automatici e manuali e viene pubblicato solo se il suo livello di stabilità è considerato conforme agli standard di qualità dei pacchetti destinati alla pubblicazione in RHEL. Allo stesso tempo di CentOS Stream, gli aggiornamenti preparati vengono inseriti nelle build notturne di RHEL.
Le principali modifiche in CentOS Stream 9 rispetto alla precedente importante release:
- L'ambiente di sistema e gli strumenti di assemblaggio sono stati aggiornati. Per la creazione dei pacchetti è stato utilizzato GCC 11. La libreria standard C è stata aggiornata a glibc 2.34. Il pacchetto con il kernel Linux si basa sulla versione 5.14. Il gestore di pacchetti RPM è stato aggiornato alla versione 4.16 con il supporto per il controllo dell'integrità tramite fapolicyd.
- È completata la migrazione del sistema a Python 3. Di default è proposta la versione Python 3.9. La fornitura di Python 2 è stata interrotta.
- Il desktop è basato su GNOME 40 (in RHEL 8 veniva fornito GNOME 3.28) e sulla libreria GTK 4. In GNOME 40, i desktop virtuali nella modalità panoramica (Activities Overview) sono stati traslati in orientamento orizzontale e mostrati come una catena continua che scorre da sinistra a destra. Su ogni desktop visualizzato nella modalità panoramica, vengono chiaramente mostrate le finestre aperte, per le quali viene applicato lo zoom dinamico e lo spostamento durante l'interazione con l'utente. È garantito un passaggio fluido tra l'elenco delle applicazioni e i desktop virtuali.
- In GNOME è utilizzato il gestore power-profiles-daemon, che consente di passare al volo tra la modalità di risparmio energetico, modalità bilanciata e modalità massima prestazione.
- Tutti i flussi audio sono stati migrati al server multimediale PipeWire, che ora è utilizzato di default al posto di PulseAudio e JACK. L'uso di PipeWire consente di fornire nella normale edizione desktop funzionalità di elaborazione audio professionale, eliminando la frammentazione e uniformando l'infrastruttura audio per diverse applicazioni.
- Di default, il menu di avvio GRUB è nascosto se RHEL è l'unico sistema operativo installato e se il precedente avvio è avvenuto senza errori. Per visualizzare il menu durante l'avvio, basta tenere premuto il tasto Shift oppure premere ripetutamente il tasto Esc o F8. Tra le modifiche al bootloader, si segnala anche la collocazione dei file di configurazione di GRUB per tutte le architetture in un'unica directory /boot/grub2/ (il file /boot/efi/EFI/redhat/grub.cfg ora è un collegamento simbolico a /boot/grub2/grub.cfg), cioè lo stesso sistema installato può essere avviato sia utilizzando EFI che BIOS.
- I componenti per il supporto di diverse lingue sono stati estratti in pacchetti langpacks, che consentono di variare il livello di supporto linguistico installato. Ad esempio, nel pacchetto langpacks-core-font sono disponibili solo i caratteri, in langpacks-core ci sono le impostazioni locali per glibc, il carattere di base e il metodo di input, mentre in langpacks sono inclusi traduzioni, caratteri aggiuntivi e dizionari per il controllo ortografico.
- I componenti sono stati aggiornati per garantire la sicurezza. La distribuzione utilizza un nuovo ramo della libreria crittografica OpenSSL 3.0. Sono attivati per impostazione predefinita algoritmi crittografici più moderni e affidabili (ad esempio, l'uso di SHA-1 in TLS, DTLS, SSH, IKEv2 e Kerberos è vietato; TLS 1.0, TLS 1.1, DTLS 1.0, RC4, Camellia, DSA, 3DES e FFDHE-1024 sono disattivati). Il pacchetto OpenSSH è stato aggiornato alla versione 8.6p1. Cyrus SASL è stato spostato su backend GDBM invece di Berkeley DB. Nelle librerie NSS (Network Security Services) il supporto per il formato DBM (Berkeley DB) è stato interrotto. GnuTLS è stato aggiornato alla versione 3.7.2.
- Le prestazioni di SELinux sono state significativamente migliorate e il consumo di memoria è stato ridotto. Nel /etc/selinux/config è stata rimossa la possibilità di impostare "SELINUX=disabled" per disattivare SELinux (questo parametro ora disattiva solo il caricamento delle politiche, mentre per disabilitare effettivamente la funzionalità di SELinux è ora necessario passare al kernel il parametro "selinux=0").
- Supporto sperimentale aggiunto VPN WireGuard.
- L'accesso SSH come utente root è disabilitato per impostazione predefinita.
- Sono stati dichiarati obsoleti gli strumenti di gestione del filtraggio dei pacchetti iptables-nft (utility iptables, ip6tables, ebtables e arptables) e ipset. Per la gestione del firewall ora si raccomanda di utilizzare nftables.
- È stato incluso un nuovo demone mptcpd per la configurazione di MPTCP (MultiPath TCP), un'estensione del protocollo TCP per la gestione delle connessioni TCP che permettono la consegna dei pacchetti simultaneamente su più percorsi attraverso diverse interfacce di rete collegate a indirizzi IP differenti. L'uso di mptcpd consente di configurare MPTCP senza utilizzare l'utility iproute2.
- È stato rimosso il pacchetto network-scripts; per configurare le connessioni di rete si deve utilizzare NetworkManager. Il supporto per il formato di configurazione ifcfg è stato mantenuto, ma NetworkManager utilizza per impostazione predefinita un formato basato su file keyfile.
- Sono state incluse nuove versioni di compilatori e strumenti per sviluppatori: 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.
- Aggiornati i pacchetti server Apache HTTP Server 2.4.48, nginx 1.20, Varnish Cache 6.5, Squid 5.1.
- Aggiornati i DBMS MariaDB 10.5, MySQL 8.0, PostgreSQL 13, Redis 6.2.
- Per impostazione predefinita, l'emulatore QEMU utilizza Clang, consentendo l'implementazione di meccanismi di protezione aggiuntivi nel hypervisor KVM, come SafeStack, per proteggere contro gli exploit basati su Return-Oriented Programming (ROP).
- In SSSD (System Security Services Daemon) è aumentata la granularità dei log; adesso, gli eventi includono il tempo di completamento delle operazioni e mostrano il flusso di autenticazione. Sono state aggiunte funzionalità di ricerca per analizzare i problemi legati alle configurazioni e alle prestazioni.
- È stata ampliata la supporto per IMA (Integrity Measurement Architecture) per verificare l'integrità dei componenti del sistema operativo tramite firme digitali e hash.
- Per impostazione predefinita è attivata un'unica gerarchia unificata cgroup (cgroup v2). Le cgroup v2 possono essere utilizzate, ad esempio, per limitare il consumo di memoria, le risorse CPU e l'input/output. La principale differenza tra cgroups v2 e v1 è l'applicazione di un'unica gerarchia cgroup per tutti i tipi di risorse, invece di gerarchie separate per la distribuzione delle risorse CPU, per la gestione del consumo di memoria e per l'input/output. Le gerarchie separate portavano a difficoltà nella gestione delle interazioni tra i gestori e a costi aggiuntivi nelle risorse del kernel nell'applicazione delle regole per i processi menzionati in diverse gerarchie.
- Aggiunta la supporto per la sincronizzazione dell'ora esatta basata sul protocollo NTS (Network Time Security), che utilizza elementi dell'infrastruttura a chiave pubblica (PKI) e consente di utilizzare TLS e crittografia autenticata AEAD (Authenticated Encryption with Associated Data) per la protezione crittografica delle interazioni tra client e server secondo il protocollo NTP (Network Time Protocol). Il server NTP chrony è stato aggiornato alla versione 4.1.
- Il supporto sperimentale per KTLS (implementazione TLS a livello di kernel), Intel SGX (Software Guard Extensions), DAX (Direct Access) per ext4 e XFS, e il supporto per AMD SEV e SEV-ES nel hypervisor KVM sono garantiti.
Parallelamente continua a svilupparsi il ramo CentOS Stream 8, utilizzato per la preparazione delle nuove versioni di RHEL 8.x. È raccomandato per il passaggio dei sistemi che utilizzano la classica distribuzione CentOS 8.x, il cui supporto terminerà alla fine di questo mese. Per passare a CentOS Stream, è sufficiente installare il pacchetto centos-release-stream («dnf install centos-release-stream») ed eseguire il comando «dnf update». Il supporto per il ramo CentOS Stream 8 sarà garantito fino al 31 maggio 2024, mentre il supporto per la classica CentOS 7.x terminerà il 30 giugno 2024.
In alternativa, gli utenti possono anche passare a distribuzioni che hanno continuato lo sviluppo del ramo CentOS 8: AlmaLinux (script per la migrazione), Rocky Linux (script per la migrazione), VzLinux (script per la migrazione) o Oracle Linux (script per la migrazione). Inoltre, Red Hat ha fornito la possibilità (script per la migrazione) di utilizzare gratuitamente RHEL nelle organizzazioni che sviluppano software open source e negli ambienti di sviluppatori individuali con un massimo di 16 sistemi virtuali o fisici.
Fonte: opennet.ru
