Das Unternehmen Oracle erste stabile Version (UEK R6), eine erweiterte Version des Linux-Kernels, die für die Verwendung im Oracle Linux-Distribution als Alternative zum Standardpaket des Kernels aus Red Hat Enterprise Linux positioniert ist. Der Kernel ist nur für die Architekturen x86_64 und ARM64 (aarch64) verfügbar. Der Quellcode des Kernels, einschließlich der Aufteilung in einzelne Patches, im öffentlichen Git-Repository von Oracle.
Das Paket Unbreakable Enterprise Kernel 6 basiert auf dem Kernel (UEK R5 basierte auf Kernel 4.14), der um neue Funktionen, Optimierungen und Fehlerbehebungen ergänzt wurde, sowie auf die Kompatibilität mit den meisten in RHEL betriebenen Anwendungen getestet und speziell für den Einsatz mit Oracle-Industriesoftware und -hardware optimiert ist. Installations- und src-Pakete mit Kernel UEK R6 wurden für Oracle Linux vorbereitet. und . Der Support für die Version 6.x wurde eingestellt, um UEK R6 anzuwenden, sollte das System auf Oracle Linux 7 aktualisiert werden (es gibt keine Einschränkungen für die Verwendung dieses Kernels in ähnlichen Versionen von RHEL, CentOS und Scientific Linux).
Hauptmerkmale Unbreakable Enterprise Kernel 6:
- Erweiterte Unterstützung für Systeme auf Basis der 64-Bit-Architektur ARM (aarch64).
- Die Unterstützung für alle Funktionen von Cgroup v2 wurde implementiert.
- Ein Rahmenwerk für ktask wurde implementiert, um rechenintensive Aufgaben im Kernel parallel auszuführen. Zum Beispiel kann mit ktask das Parallelisieren von Operationen zur Bereinigung von Speicherbereichseiten oder zur Verarbeitung von Inode-Listen organisiert werden;
- Eine parallele Version von kswapd wurde implementiert, um Seitenersetzungsoperationen asynchron zu verarbeiten, wodurch die Anzahl der direkten (synchronen) Ersetzungen reduziert werden kann. Wenn die Anzahl der freien Seiten im Speicher abnimmt, führt kswapd einen Scan durch, um nicht verwendete Seiten zu identifizieren, die freigegeben werden können.
- Unterstützung für die Überprüfung der Integrität von Kernel-Images und Firmware durch digitale Signatur beim Laden des Kernels mit dem Kexec-Mechanismus (Laden des Kernels aus einem bereits geladenen System).
- Die Leistung des Virtual Memory Managements wurde optimiert, die Effizienz der Bereinigung von Speicherseiten und des Caches verbessert, und die Verarbeitung von Zugriffen auf nicht zugewiesene Speicherseiten (page faults) verbessert.
- Die Unterstützung für NVDIMM wurde erweitert, der angegebene nichtflüchtige Speicher kann jetzt als traditionelles RAM verwendet werden.
- Der Übergang zu einem DTrace 2.0-Dynamik-Debugging-System wurde vollzogen, das für die Nutzung des eBPF-Kernsubsystems. DTrace funktioniert nun über eBPF, ähnlich wie bestehende Trace-Tools in Linux, die über eBPF arbeiten.
- Verbesserungen im OCFS2-Dateisystem (Oracle Cluster File System).
- Die Unterstützung für das Btrfs-Dateisystem wurde verbessert. Es wurde die Möglichkeit hinzugefügt, Btrfs auf Root-Partitionen anzuwenden. Der Installer hat eine Option zur Auswahl von Btrfs beim Formatieren von Geräten hinzugefügt. Die Möglichkeit, Swap-Dateien auf Btrfs-Partitionen zu platzieren, wurde hinzugefügt. Btrfs unterstützt jetzt auch die Komprimierung mit dem ZStandard-Algorithmus.
- Die Unterstützung für die Schnittstelle für asynchronen I/O – io_uring wurde hinzugefügt, die für das Polling von I/O und die Möglichkeit, sowohl mit Puffern als auch ohne Puffer zu arbeiten, bemerkenswert ist. In Bezug auf die Leistung ist io_uring sehr nah an SPDK und übertrifft libaio erheblich, wenn Polling aktiviert ist. Für die Nutzung von io_uring in Endanwendungen, die im Benutzerspeicher laufen, wurde die Bibliothek liburing vorbereitet, die eine hochgradige Bindung an die Kernschnittstelle bereitstellt;
- Die Unterstützung für den Modus zum schnellen Verschlüsseln von Speichermedien wurde hinzugefügt.
- Die Unterstützung für die Komprimierung mittels (zstd).
- Im ext4-Dateisystem wurden 64-Bit-Zeitstempel in den Feldern des Superblocks aktiviert.
- In XFS wurden Mittel hinzugefügt, um den Status der Dateisystemintegrität während des Betriebs zu melden und den Status von fsck in Echtzeit zu erhalten.
- Der TCP-Stack wurde standardmäßig auf das Modell „“ anstelle von „As Fast As Possible“ beim Versenden von Paketen umgestellt. Für UDP wurde die Unterstützung für GRO (Generic Receive Offload) hinzugefügt. Die Unterstützung für den Empfang und das Senden von TCP-Paketen im Zero-Copy-Modus wurde hinzugefügt.
- Die Implementierung des TLS-Protokolls auf Kernel-Ebene (KTLS) wurde aktiviert, die nun nicht nur für gesendete, sondern auch für empfangene Daten verwendet werden kann.
- Standardmäßig wird nftables als Backend für die Firewall verwendet.
Optional wurde die Unterstützung für . - Die Unterstützung für das XDP (eXpress Data Path)-Subsystem wurde hinzugefügt, das es ermöglicht, BPF-Programme auf Kernel-Ebene im Netzwerktreiber in Linux auszuführen, mit direktem Zugriff auf den DMA-Puffer von Paketen und in der Phase vor der Zuweisung des skbuff-Puffers durch den Netzwerk-Stack.
- Verbesserungen wurden vorgenommen und aktiviert, wenn UEFI Secure Boot verwendet wird. , der den Zugriff des Benutzers root auf den Kernel einschränkt und Umgehungswege des UEFI Secure Boot blockiert. Im Lockdown-Modus wird der Zugriff auf /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, den Debugmodus von kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), einige ACPI-Schnittstellen und MSR-Register der CPU eingeschränkt, kexec_file und kexec_load-Anrufe werden blockiert, der Übergang in den Energiesparmodus wird verboten, die Verwendung von DMA für PCI-Geräte wird limitiert, der Import von ACPI-Code aus EFI-Variablen ist nicht erlaubt, und Manipulationen an Ein-/Ausgabeports, einschließlich der Änderung der Interrupt-Nummer und des Ein-/Ausgabeports für serielle Ports, sind nicht gestattet.
- Die Unterstützung für erweiterte IBRS-Instruktionen (Enhanced Indirect Branch Restricted Speculation) wurde hinzugefügt, die es ermöglichen, spekulative Ausführungen von Anweisungen während der Verarbeitung von Interrupts, Systemaufrufen und Kontextwechseln adaptiv zuzulassen oder zu verbieten. Bei Unterstützung von Enhanced IBRS wird diese Methode zum Schutz vor Angriffen der Klasse Spectre V2 anstelle von Retpoline verwendet, da sie eine höhere Leistung ermöglicht.
- Der Schutz in für alle schreibbaren Verzeichnissen wurde verbessert. In solchen Verzeichnissen ist die Erstellung von FIFO-Dateien und Dateien, die nicht dem Besitzer des Verzeichnisses mit dem sticky-Flag gehören, untersagt.
- Standardmäßig ist auf ARM-Systemen die Randomisierung des Adressraums des Kernels (KASLR) aktiviert. Für Aarch64 ist eine Pointer-Authentifizierung aktiviert.
- Die Unterstützung für „NVMe über Fabrics TCP“ wurde hinzugefügt.
- Ein Treiber für virtio-pmem wurde hinzugefügt, der Zugriff auf Speichergeräte bietet, die im physikalischen Adressraum abgebildet sind, wie z.B. NVDIMM.
Quelle: opennet.ru
