Vorabversion von AlmaLinux 9, basierend auf der RHEL 9-Version

Die Beta-Version der AlmaLinux 9 Distribution wurde vorgestellt, die mit Paketen aus dem Red Hat Enterprise Linux 9 Branch erstellt wurde und alle in dieser Veröffentlichung vorgeschlagenen Änderungen enthält. Die Builds sind für die Architekturen x86_64, ARM64, s390x und ppc64le in Form eines bootfähigen (780 MB), minimalen (1,7 GB) und vollständigen Abbilds (8 GB) verfügbar. Die Veröffentlichungen von RHEL 9 und AlmaLinux 9 werden Anfang Mai erwartet.

Die Distribution ist funktional identisch mit RHEL, mit Ausnahme der Änderungen, die durch das Rebranding und die Entfernung von RHEL-spezifischen Paketen wie redhat-*, insights-client und subscription-manager-migration* verursacht wurden. AlmaLinux ist kostenlos für alle Benutzerkategorien, entwickelt sich mit Community-Beteiligung und nutzt ein Management-Modell, das der Organisation des Fedora-Projekts ähnelt. Die Schöpfer von AlmaLinux strebten ein optimales Gleichgewicht zwischen Unternehmenskunden und den Interessen der Community an – einerseits werden Ressourcen und Entwickler von CloudLinux herangezogen, die über umfangreiche Erfahrungen in der Unterstützung von RHEL-Forks verfügen, andererseits ist das Projekt transparent und unter Kontrolle der Community.

Die Distribution AlmaLinux wurde von CloudLinux gegründet, das trotz der Einbeziehung seiner Ressourcen und Entwickler das Projekt einer separaten Non-Profit-Organisation, der AlmaLinux OS Foundation, übergeben hat, um eine neutrale Plattform mit Community-Beteiligung zu schaffen. Für die Entwicklung des Projekts werden jährlich eine Million Dollar bereitgestellt. Alle Fortschritte von AlmaLinux werden unter freien Lizenzen veröffentlicht.

Wesentliche Änderungen in AlmaLinux 9 und RHEL 9 im Vergleich zum RHEL 8 Branch:

  • Die Systemumgebung und das Build-Tool wurden aktualisiert. Für den Paketbau wurde GCC 11 eingesetzt. Die Standard-C-Bibliothek wurde auf glibc 2.34 aktualisiert. Das Linux-Kernel-Paket basiert auf der Version 5.14. Der Paketmanager RPM wurde auf Version 4.16 mit Unterstützung für die Integritätsprüfung über fapolicyd aktualisiert.
  • Die Migration der Distribution auf Python 3 wurde abgeschlossen. Standardmäßig wird die Version Python 3.9 angeboten. Die Bereitstellung von Python 2 wurde eingestellt.
  • Der Desktop basiert auf GNOME 40 (in RHEL 8 wurde GNOME 3.28 geliefert) und der GTK 4-Bibliothek. In GNOME 40 wurden virtuelle Desktops im Überblicksmodus (Aktivitätenübersicht) auf eine horizontale Ausrichtung umgestellt und werden als fortlaufend von links nach rechts scrollende Kette angezeigt. Auf jedem Desktop, der im Überblicksmodus angezeigt wird, sind die verfügbaren Fenster klar dargestellt, für die dynamisches Panning und Zoomen bei der Benutzerinteraktion angewendet wird. Ein nahtloser Übergang zwischen der Programmliste und den virtuellen Desktops ist gewährleistet.
  • In GNOME wird der power-profiles-daemon verwendet, der die Möglichkeit bietet, zwischen Energiesparmodus, ausgewogenem Energieverbrauch und maximaler Leistung im laufenden Betrieb umzuschalten.
  • Alle Audio-Streams wurden auf den Multimedia-Server PipeWire umgestellt, der jetzt standardmäßig anstelle von PulseAudio und JACK verwendet wird. Die Verwendung von PipeWire ermöglicht es, in einer normalen Desktop-Edition professionelle Audioverarbeitungsmöglichkeiten zu bieten, Fragmentierung zu beseitigen und die Audio-Infrastruktur für verschiedene Anwendungen zu vereinheitlichen.
  • Das GRUB-Startmenü ist standardmäßig ausgeblendet, wenn RHEL das einzige installierte System ist und der letzte Start fehlerfrei war. Um das Menü während des Bootvorgangs anzuzeigen, genügt es, die Shift-Taste gedrückt zu halten oder mehrmals die Esc- oder F8-Taste zu drücken. Zu den Änderungen im Bootloader gehört auch die Ablage der GRUB-Konfigurationsdateien für alle Architekturen in einem Verzeichnis /boot/grub2/ (die Datei /boot/efi/EFI/redhat/grub.cfg ist jetzt ein symbolischer Link zu /boot/grub2/grub.cfg), d. h. dass dasselbe installierte System sowohl mit EFI als auch mit BIOS gebootet werden kann.
  • Komponenten zur Unterstützung verschiedener Sprachen wurden in langpacks-Pakete ausgelagert, die es ermöglichen, das Niveau der installierten Sprachunterstützung zu variieren. Zum Beispiel bietet das Paket langpacks-core-font nur Schriftarten an, während langpacks-core die Locale für glibc, eine Basis-Schriftart und eine Eingabemethode enthält, und in langpacks befinden sich Übersetzungen, zusätzliche Schriftarten und Wörterbücher zur Rechtschreibprüfung.
  • Die Komponenten zur Gewährleistung der Sicherheit wurden aktualisiert. Im Distribution wird ein neuer Zweig der Kryptographiebibliothek OpenSSL 3.0 verwendet. Standardmäßig sind modernere und zuverlässigere kryptographische Algorithmen aktiviert (zum Beispiel ist die Verwendung von SHA-1 in TLS, DTLS, SSH, IKEv2 und Kerberos untersagt, TLS 1.0, TLS 1.1, DTLS 1.0, RC4, Camellia, DSA, 3DES und FFDHE-1024 sind deaktiviert). Das OpenSSH-Paket wurde auf Version 8.6p1 aktualisiert. Cyrus SASL wurde auf das Backend GDBM anstelle von Berkeley DB umgestellt. In den NSS-Bibliotheken (Network Security Services) wurde die Unterstützung für das DBM-Format (Berkeley DB) eingestellt. GnuTLS wurde auf Version 3.7.2 aktualisiert.
  • Die Leistung von SELinux wurde erheblich verbessert und der Speicherverbrauch reduziert. In /etc/selinux/config wurde die Unterstützung für die Einstellung „SELINUX=disabled“ zur Deaktivierung von SELinux entfernt (die angegebene Einstellung schaltet nun nur das Laden von Richtlinien aus, um die Funktionalität von SELinux tatsächlich zu deaktivieren, ist es erforderlich, dem Kernel den Parameter „selinux=0“ zu übergeben).
  • Es wurde experimentelle Unterstützung hinzugefügt VPN für WireGuard.
  • Der SSH-Zugriff als Benutzer root ist standardmäßig verboten.
  • Die Tools zur Verwaltung des Paketfilters iptables-nft (die Programme iptables, ip6tables, ebtables und arptables) sowie ipset wurden als veraltet erklärt. Für die Verwaltung der Firewall wird jetzt empfohlen, nftables zu verwenden.
  • Ein neuer Daemon mptcpd zur Konfiguration von MPTCP (MultiPath TCP) wurde hinzugefügt, einer Erweiterung des TCP-Protokolls zur gleichzeitigen Zustellung von TCP-Verbindungen über mehrere Routen durch verschiedene Netzwerkschnittstellen, die an unterschiedliche IP-Adressen gebunden sind. Die Verwendung von mptcpd ermöglicht die Konfiguration von MPTCP ohne den Einsatz des Tools iproute2.
  • Das Paket network-scripts wurde entfernt, zur Konfiguration von Netzwerkverbindungen sollte jetzt NetworkManager verwendet werden. Die Unterstützung für das ifcfg-Konfigurationsformat bleibt erhalten, aber NetworkManager verwendet standardmäßig das keyfile-basierte Format.
  • Neue Versionen von Compilern und Entwicklertools wurden hinzugefügt: 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.
  • Die Serverpakete Apache HTTP Server 2.4.48, nginx 1.20, Varnish Cache 6.5, Squid 5.1 wurden aktualisiert.
  • Die Datenbankmanagementsysteme MariaDB 10.5, MySQL 8.0, PostgreSQL 13, Redis 6.2 wurden aktualisiert.
  • Für den Standardaufbau des QEMU-Emulators wird Clang verwendet, was es ermöglicht, im KVM-Hypervisor einige zusätzliche Schutzmechanismen wie SafeStack zur Abwehr von Rücksprung-orientierten Programmierung (ROP) anzuwenden.
  • Im SSSD (System Security Services Daemon) wurde die Protokollierung detaillierter gestaltet, beispielsweise wird nun die Abschlusszeit von Aufgaben und der Authentifizierungsfluss angehängt. Suchfunktionen zur Problemanalyse bei Konfigurationen und Leistung wurden hinzugefügt.
  • Die Unterstützung von IMA (Integrity Measurement Architecture) wurde erweitert, um die Integrität der Betriebssystemkomponenten anhand von digitalen Signaturen und Hashes zu überprüfen.
  • Standardmäßig wird eine einheitliche, vereinheitlichte cgroup-Hierarchie (cgroup v2) verwendet. Cgroups v2 können beispielsweise eingesetzt werden, um den Verbrauch von Speicher, CPU-Ressourcen und Ein-/Ausgabe zu beschränken. Der entscheidende Unterschied zwischen cgroups v2 und v1 besteht darin, dass cgroups v2 eine gemeinsame Hierarchie für alle Ressourcen anwendet, anstatt separate Hierarchien für die Verteilung von CPU-Ressourcen, die Regulierung des Speicherverbrauchs und die Ein-/Ausgabe. Die separaten Hierarchien führten zu Schwierigkeiten bei der Organisation der Interaktion zwischen Programmen und zu zusätzlichen Ressourcenbelastungen des Kernels bei der Anwendung von Regeln auf einen Prozess, der in verschiedenen Hierarchien erwähnt wird.
  • Die Unterstützung für die genaue Zeit-Synchronisation über das NTS-Protokoll (Network Time Security) wurde hinzugefügt, das Elemente der Infrastruktur für öffentliche Schlüssel (PKI) verwendet und TLS sowie authentifizierte Verschlüsselung AEAD (Authenticated Encryption with Associated Data) für den kryptografischen Schutz der Interaktion zwischen Client und Server über das NTP-Protokoll (Network Time Protocol). Der NTP-Server chrony wurde auf Version 4.1 aktualisiert.
  • Experimentelle Unterstützung für KTLS (Implementierung von TLS auf Kernel-Ebene), Intel SGX (Software Guard Extensions), DAX (Direct Access) für ext4 und XFS, Unterstützung für AMD SEV und SEV-ES im KVM-Hypervisor.
  • Quelle: opennet.ru

60GB SSD 8Gb DDR4