È stato presentato il rilascio beta della distribuzione AlmaLinux 9, costruito utilizzando pacchetti dalla branca Red Hat Enterprise Linux 9 e contenente tutte le modifiche proposte in questo rilascio. Le build sono state preparate per le architetture x86_64, ARM64, s390x e ppc64le sotto forma di immagine di avvio (780 MB), immagine minima (1.7 GB) e immagine completa (8 GB). I rilasci di RHEL 9 e AlmaLinux 9 sono attesi all'inizio di maggio.
Il distributore è identico a RHEL per funzionalità, ad eccezione delle modifiche legate al rebranding e alla rimozione di pacchetti specifici di RHEL, come redhat-*, insights-client e subscription-manager-migration*. AlmaLinux è gratuito per tutte le categorie di utenti, si sviluppa con il coinvolgimento della comunità e utilizza un modello di gestione simile all'organizzazione del progetto Fedora. I creatori di AlmaLinux hanno cercato di raggiungere un equilibrio ottimale tra supporto aziendale e interessi della comunità: da un lato, le risorse e gli sviluppatori della CloudLinux, che ha una vasta esperienza nel supporto di fork RHEL, sono stati coinvolti nello sviluppo, dall'altro il progetto è trasparente e sottoposto al controllo della comunità.
Il distributore AlmaLinux è basato sulla CloudLinux, che nonostante il coinvolgimento delle proprie risorse e sviluppatori, ha trasferito il progetto a una separata organizzazione no-profit, l'AlmaLinux OS Foundation, per lo sviluppo su una piattaforma neutrale con il coinvolgimento della comunità. Un milione di dollari all'anno è stato dedicato allo sviluppo del progetto. Tutti i progressi di AlmaLinux sono pubblicati sotto licenze libere.
Le principali modifiche in AlmaLinux 9 e RHEL 9 rispetto alla branca RHEL 8:
- È stato aggiornato l'ambiente di sistema e gli strumenti di compilazione. Per la compilazione dei pacchetti è stato utilizzato GCC 11. La libreria standard C è stata aggiornata a glibc 2.34. Il pacchetto con il kernel Linux è stato costruito sulla base della versione 5.14. Il gestore di pacchetti RPM è stato aggiornato alla versione 4.16 con supporto per il controllo dell'integrità tramite fapolicyd.
- È stata completata la migrazione della distribuzione a Python 3. Di default è stata 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à di panoramica (Activities Overview) sono stati convertiti in orientamento orizzontale e vengono visualizzati come un elenco continuo scorrevole da sinistra a destra. Su ogni desktop, mostrato nella modalità di panoramica, sono evidenziate le finestre disponibili, per le quali si applicano panoramizzazione e ridimensionamento dinamici in base all'interazione dell'utente. È garantito un passaggio fluido tra l'elenco dei programmi e i desktop virtuali.
- In GNOME è presente il gestore power-profiles-daemon, che consente di passare al volo tra la modalità di risparmio energetico, la modalità di consumo energetico bilanciato e la modalità di massima performance.
- Tutti i flussi audio sono stati trasferiti al server multimediale PipeWire, che ora viene utilizzato di default al posto di PulseAudio e JACK. L'uso di PipeWire consente di fornire, nella normale edizione desktop, funzionalità di elaborazione audio di livello professionale, eliminando la frammentazione e unificando l'infrastruttura audio per diverse applicazioni.
- Per impostazione predefinita, il menu di avvio GRUB è nascosto, se RHEL è l'unica distribuzione installata nel sistema e se l'ultimo avvio è avvenuto senza errori. Per visualizzare il menu durante l'avvio, è sufficiente tenere premuto il tasto Shift o premere più volte il tasto Esc o F8. Tra le modifiche al bootloader, si segnala anche che i file di configurazione di GRUB per tutte le architetture sono collocati in un'unica cartella /boot/grub2/ (il file /boot/efi/EFI/redhat/grub.cfg ora è un collegamento simbolico a /boot/grub2/grub.cfg), ovvero la stessa installazione può essere avviata sia utilizzando EFI sia BIOS.
- I componenti per supportare diverse lingue sono stati separati 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 la locale per glibc, il carattere di base e il metodo di input, mentre in langpacks ci sono traduzioni, caratteri aggiuntivi e dizionari per il controllo ortografico.
- Aggiornati i componenti per garantire la sicurezza. Nel distributore è stata attivata una nuova branch della libreria crittografica OpenSSL 3.0. Sono abilitati per impostazione predefinita algoritmi crittografici più moderni e sicuri (ad esempio, è vietato l'uso di SHA-1 in TLS, DTLS, SSH, IKEv2 e Kerberos, disabilitati TLS 1.0, TLS 1.1, DTLS 1.0, RC4, Camellia, DSA, 3DES e FFDHE-1024). Il pacchetto OpenSSH è stato aggiornato alla versione 8.6p1. Cyrus SASL è stato spostato sul backend GDBM invece di Berkeley DB. Nelle librerie NSS (Network Security Services) è stata interrotta la supporto per il formato DBM (Berkeley DB). GnuTLS è stato aggiornato alla versione 3.7.2.
- Le prestazioni di SELinux sono state significativamente migliorate e il consumo di memoria ridotto. In /etc/selinux/config è stata rimossa la supporto per la configurazione "SELINUX=disabled" per disabilitare SELinux (l'impostazione specificata ora disabilita solo il caricamento delle politiche, mentre per disattivare effettivamente la funzionalità di SELinux ora è necessario passare al kernel il parametro "selinux=0").
- È stato aggiunto il supporto sperimentale VPN WireGuard.
- Per impostazione predefinita è vietato l'accesso SSH come utente root.
- Gli strumenti di gestione del filtro dei pacchetti iptables-nft (utilità iptables, ip6tables, ebtables e arptables) e ipset sono stati dichiarati obsoleti. Per gestire il 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 gestire le connessioni TCP con la consegna dei pacchetti simultaneamente su più percorsi attraverso diverse interfacce di rete, collegate a diversi indirizzi IP. L'uso di mptcpd consente di configurare MPTCP senza utilizzare l'utilità iproute2.
- È stato rimosso il pacchetto network-scripts; per configurare le connessioni di rete si deve utilizzare NetworkManager. È stato mantenuto il supporto per il formato di configurazione ifcfg, ma NetworkManager per impostazione predefinita utilizza un formato basato su file keyfile.
- Sono state incluse nuove versioni dei compilatori e degli 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 database MariaDB 10.5, MySQL 8.0, PostgreSQL 13, Redis 6.2.
- Per la compilazione dell'emulatore QEMU è stato utilizzato Clang per impostazione predefinita, il che ha permesso di applicare nel hypervisor KVM alcuni meccanismi di protezione aggiuntivi, come SafeStack per proteggere contro metodi di sfruttamento basati su programmazione orientata al ritorno (ROP - Return-Oriented Programming).
- In SSSD (System Security Services Daemon) è aumentato il livello di dettaglio dei log, ad esempio, ora il tempo di completamento del lavoro è allegato agli eventi e riflette il flusso di autenticazione. Aggiunte funzioni di ricerca per analizzare problemi di configurazione e prestazioni.
- Espanso il supporto per IMA (Integrity Measurement Architecture) per la verifica dell'integrità dei componenti del sistema operativo tramite firme digitali e hash.
- Per impostazione predefinita è stata attivata un'unica gerarchia unificata di cgroup (cgroup v2). I cgroup v2 possono essere utilizzati, ad esempio, per limitare il consumo di memoria, le risorse CPU e l'input/output. La principale differenza tra i cgroup v2 e v1 è l'applicazione di una gerarchia comune di cgroup per tutti i tipi di risorse, invece di gerarchie separate per la distribuzione delle risorse CPU, la regolazione del consumo di memoria e l'input/output. Le gerarchie separate portavano a difficoltà nell'organizzazione dell'interazione tra i gestori e a un costo aggiuntivo di risorse del kernel nell'applicazione di regole per il processo, menzionato in diverse gerarchie.
- Aggiunto il supporto per la sincronizzazione del tempo preciso basata sul protocollo NTS (Network Time Security), che utilizza elementi dell'infrastruttura a chiave pubblica (PKI) e consente l'uso di TLS e crittografia autenticata AEAD (Authenticated Encryption with Associated Data) per la protezione crittografica dell'interazione client e server del protocollo NTP (Network Time Protocol). Il server NTP chrony è stato aggiornato alla versione 4.1.
- È stata fornita una supporto sperimentale per KTLS (implementazione TLS a livello di kernel), Intel SGX (Software Guard Extensions), DAX (Direct Access) per ext4 e XFS, supporto per AMD SEV e SEV-ES nel hypervisor KVM.
Fonte: opennet.ru
