Oracle hat den Unbreakable Enterprise Kernel 8 veröffentlicht.

Die Firma Oracle hat den ersten stabilen Release des Unbreakable Enterprise Kernel 8 (UEK R8) vorgestellt, eine Linux-Kernel-Variante, die für den Einsatz in der Oracle Linux-Distribution entwickelt wurde, um das standardmäßig verwendete Kernel-Paket von Red Hat Enterprise Linux zu ersetzen. Der Kernel ist nur für die Architekturen x86_64 und ARM64 (aarch64) verfügbar. Der Quellcode des Kernels, einschließlich der Aufteilung in separate Patches, wurde in einem öffentlichen Git-Repository von Oracle veröffentlicht.

Das Unbreakable Enterprise Kernel 8-Paket basiert auf dem Linux-Kernel 6.12 (die Version UEK R7 basierte auf dem Kernel 5.4, während in der Beta-Version von RHEL 10 der Kernel 6.11 angeboten wurde), ergänzt mit neuen Funktionen, Optimierungen und Bugfixes. Es wurde auf die Kompatibilität mit den meisten in RHEL laufenden Anwendungen geprüft und optimiert, um mit industrieller Software und Hardware von Oracle zu arbeiten. Installations- und Quellpakete des UEK R8-Kernels sind für Oracle Linux 9.5 bereitgestellt (es gibt keine Hürden für die Verwendung dieses Kernels in ähnlichen Versionen von RHEL, CentOS, Alma Linux und Rocky Linux).

Wesentliche Neuerungen des Unbreakable Enterprise Kernel 8:

  • Die Trennung der Komponenten des UEK-Kernels wurde in separate Pakete geändert. Die Kernel-Module wurden vom Basiskernel-Image getrennt und in sammelbaren Paketen geliefert: kernel-uek-modules-core (Basisminimum), kernel-uek-modules (für Server), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb und kernel-uek-modules-wireless. Begleitende Utilities wurden aus dem Basis-Paket kernel-uek-core in ein separates Paket kernel-uek-tools ausgelagert. Die Konfigurationsdateien mit der Liste der für das Laden gesperrten Module wurden im Rahmen der Initiative zur Verwendung inklusiver Terminologie von ‚blacklist‘ in ‚denylist‘ umbenannt.
  • Für ARM Ampere-Systeme, die in der Oracle Cloud verwendet werden, wurde ein separates Kernel-Build kernel-uek64k erstellt, dessen Basis-Seitengröße von 4 auf 64 KB erhöht wurde.
  • Es wurde Unterstützung für die in Intel SGX2 (Software Guard Extensions) bereitgestellte Hardware-Implementierung des Mechanismus EDMM (Enclave Dynamic Memory Management) hinzugefügt, der es ermöglicht, den Zugriff auf einzelne Seiten des Enklaven-Speichers zu steuern und Seiten für die Enklave dynamisch hinzuzufügen oder zu entfernen.
  • Im Intel QAT-Treiber mit Unterstützung für Intel Quick Assist Technology (QAT) wurde die Unterstützung für die 4. Generation der Intel Xeon-Prozessoren hinzugefügt.
  • Ein System zur Erkennung von Split-Lock-Bedingungen wurde eingeführt, das auftritt, wenn auf nicht ausgerichtete Daten im Speicher zugegriffen wird, da beim Ausführen einer atomaren Anweisung die Daten zwei CPU-Cache-Linien überschreiten. Solche Sperren führen zu erheblichen Leistungseinbußen (bis zu 1000 Zyklen langsamer als eine atomare Operation mit Daten, die in eine Cache-Linie passen).
  • Eine neue Methode zum Schutz gegen die Retbleed-Sicherheitsanfälligkeit in Intel- und AMD-CPUs wurde implementiert, die die Verfolgung der Aufruftiefe nutzt und nicht so sehr die Geschwindigkeit beeinträchtigt wie der zuvor vorhandene Schutz gegen Retbleed.
  • Auf x86-Systemen wurde die gleichzeitige Aktivierung von sekundären CPU-Kernen ermöglicht, wodurch die Boot-Zeit des Kerns auf Systemen mit vielen Kernen verkürzt wurde.
  • Ein neues Kern-Befehlszeilen-Parameter "ia32_emulation" wurde hinzugefügt, das es ermöglicht, die Unterstützung für die Emulation des 32-Bit-Modus während des Bootvorgangs in für x86-64-Architektur kompilierten Kernen ein- und auszuschalten.
  • Standardmäßig wird anstelle des CFS (Completely Fair Scheduler) der EEVDF (Earliest Eligible Virtual Deadline First) als Aufgabenplaner eingesetzt. Bei der Auswahl des nächsten Prozesses zur Ausführung berücksichtigt der neue Planer Prozesse, die zu wenig CPU-Ressourcen erhalten haben oder zu viel CPU-Zeit unverdient erhalten haben. Im ersten Fall wird die Kontrolle gezwungenermaßen an den Prozess übergeben, während sie im zweiten Fall verzögert wird. Der alte CFS-Planer verwendete Heuristiken und feine Anpassungen zur Bestimmung der Prozesse, die besondere Aufmerksamkeit benötigten, während der neue Planer diese klarer verfolgt und keine Feinabstimmung erfordert. EEVDF wird die Latenz bei der Ausführung von Aufgaben verringern, mit denen CFS Probleme bei der Planung hatte.
  • Die Bereitstellung des dynamischen Debugging-Systems DTrace 2.0 wurde fortgesetzt, das nun die eBPF-Kernel-Subsysteme nutzt. DTrace 2.0 läuft auf eBPF, ähnlich wie bestehende Tracing-Tools in Linux, die auf eBPF basieren.
  • Im KVM-Hypervisor können bis zu 4096 virtuelle CPUs (VCPU) verwendet werden.
  • Die Nutzung von KTLS, der Implementierung des TLS-Protokolls auf Kernel-Ebene, wird fortgesetzt.
  • Die Implementierung des RDRAND-Zufallszahlengenerators, der für das Gerät /dev/random zuständig ist, wurde aktualisiert. Jetzt verwendet er die Hash-Funktion BLAKE2s anstelle von SHA1 für die Entropiemischung. Diese Änderung hat die Sicherheit des Zufallszahlengenerators erhöht. Um die Generierung von Zufallszahlen über den Systemaufruf getrandom() zu beschleunigen, wird der Mechanismus vDSO (virtual dynamic shared object) eingesetzt, der den Systemaufruf-Handler vom Kernel in den Benutzerspeicher verlagert, um Kontextwechsel zu vermeiden.
  • Die Unterstützung für die BIG TCP-Erweiterung wurde hinzugefügt, die die maximale Größe von TCP-Paketen auf 4 GB erhöhen kann, um die Leistung von Hochgeschwindigkeits-Netzwerken in Rechenzentren zu optimieren. Diese Erhöhung der Paketgröße bei einer 16-Bit-Feldgröße im Header wird durch die Implementierung von Jumbo-Paketen erreicht, deren Größe im IP-Header auf 0 gesetzt wird, während die tatsächliche Größe in einem separaten 32-Bit-Feld in einem angehängten Header übermittelt wird.
  • Für Netzsockets wurde die Option SO_RESERVE_MEM implementiert, mit der ein bestimmter Speicherbereich für den Socket reserviert werden kann, der jederzeit verfügbar bleibt und nicht entnommen wird. Die Nutzung dieser Option ermöglicht eine Leistungssteigerung durch die Reduzierung der Speicherzuweisungs- und Rückgabeoperationen im Netzwerk-Stack, insbesondere unter Bedingungen, in denen der Speicher im System knapp ist.
  • Die Leistung des Paketplaners fq (Fair Queuing) wurde optimiert, was eine Steigerung der Durchsatzrate um 5 % bei hoher Last im tcp_rr (TCP Request/Response) Test und um 13 % bei unbegrenztem UDP-Paketfluss ermöglicht hat.
  • Die Netzstruktur des Kernels wurde reorganisiert, um die Effizienz der Datencache-Mechanismen des Prozessors zu verbessern, was die Leistung des TCP-Stacks auf Systemen, die eine große Anzahl paralleler Anfragen bedienen, erhöht hat.
  • Die Unterstützung der ASMLib 3-Bibliothek für die automatische Verwaltung von Speicher in Oracle-Datenbanken wurde hinzugefügt.
  • Die Leistung und Sicherheit des asynchronen I/O-Mechanismus io_uring wurden optimiert. Es wurden io_uring-basierte Optimierungen für die Dateisysteme XFS und Ext4 hinzugefügt, die die parallele direkte Schreiboperation in Dateien über mehrere Threads ermöglichen.
  • Die Unterstützung des Dateisystems Btrfs wurde verbessert. Für Geräte mit Trimm-/Discard-Unterstützung ist die Montageoption «discard=async» standardmäßig aktiviert, die es ermöglicht, diese Operationen sofort für alle Dateisysteme asynchron auszuführen. Es wurde Unterstützung für das Senden und Empfangen komprimierter Daten ohne Umwandlungen hinzugefügt. Außerdem wurde die Unterstützung für das Schreiben von Blöcken mit mehr als 64 KB implementiert. Die Verwaltung von Quoten wurde vereinfacht. Es wurde die Unterstützung für das Mounten von geklonten Geräten realisiert. Die Überprüfungen im NOCOW-Modus wurden verbessert (die Durchsatzrate stieg um 9%). Montageoptionen «ignoremetacsums» und «ignoresuperflags» wurden hinzugefügt, um ungültige Prüfziffern von Metadaten und Superblock-Flags zu ignorieren. Aufgaben zur Entfernung von Geräten, zur Lastverteilung und zur Blockneuverteilung werden nun im parallelen Modus durchgeführt.
  • Im XFS-Dateisystem ist die Verwendung einer Blockgröße erlaubt, die die Größe der Speicherseite übersteigt. Es wurden große Extent-Zähler für sehr große virtuelle Festplatten hinzugefügt. Zudem wurde ein atomarer Commit-Modus für den Inhalt von Dateien eingeführt. Eine experimentelle Implementierung der Dateisystemprüfung (fsck) und Wiederherstellung im Online-Modus wurde vorgeschlagen.
  • Im NFS wird standardmäßig die Operation READ_PLUS verwendet, die in der NFS 4.2-Spezifikation definiert ist und für ein effizienteres Auslesen von Daten aus Dateien mit Lücken eingesetzt wird.
  • Das Speichermanagementsystem wurde auf die Verwendung von Datenstrukturen namens Folios umgestellt. Folios ähneln kompaktierten Seiten, bieten jedoch eine verbesserte Semantik und eine klarere Organisationsstruktur.
  • Für die Speicher-Mapping-Operationen wird eine Datenstruktur namens "Maple Tree" verwendet, die als effizientere Alternative zur "Rot-Schwarz-Baum"-Struktur positioniert ist. Der Maple Tree ist eine Variante des B-Baums, die eine Indizierung nach Wertebereichen unterstützt und für eine effiziente Cache-Nutzung ausgelegt ist. modernen Prozessoren.
  • Im mmap werden Sperren auf Ebene einzelner VMA (Virtual Memory Area) implementiert, die die Leistung von mehrthreadigen Anwendungen steigern.
  • Eine Datenstruktur namens ptdesc wurde hinzugefügt, die die Arbeit mit Speicherseitentabellen optimiert, indem sie Metadaten- und Datensegmente für die Speicherseiten trennt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster