Zuletzt aktualisiert am

Linux-Kernel 6.18 veröffentlicht – das ist neu

Der Linux-Kernel 6.18 bietet erweiterte Architekturunterstützung, BPF-Updates, neue Namespace-Datei-Handle-Funktionen und umfassende Hardware-Unterstützung für CPUs, GPUs und Sensoren.
Eine Übersetzung von 🇬🇧 Linuxiac.com

Linus Torvalds hat soeben die offizielle Veröffentlichung des neuen Linux-Kernels 6.18 bekannt gegeben.

Ich muss zugeben, dass ich mich über etwas weniger Bugfixing-Lärm in dieser letzten Woche vor der Veröffentlichung gefreut hätte, aber obwohl es ein paar mehr Korrekturen gab, als ich mir gewünscht hätte, gab es nichts, was mir das Gefühl gegeben hätte, dass mehr Zeit nötig wäre. Daher wurde 6.18 getaggt und veröffentlicht.

Wichtigste Funktionen in Linux 6.18

Auf hoher Ebene führt der Linux-Kernel 6.18 eine neue PSP-basierte Verschlüsselungsoption für TCP-Verbindungen, eine schnellere Slab-Zuweisung und -Auslagerung, erhebliche Verbesserungen auf der UDP-Empfangsseite, ein persistentes Cache-Device-Mapper-Ziel, Namespaces, die über Datei-Handles verwaltet werden können, Unterstützung für Accurate ECN in TCP und signierte BPF-Programme ein, zusätzlich zu vielen kleineren Änderungen am Kernel und an den Treibern.

Eine der wichtigsten Änderungen ist die Einführung von „Sheaves“ im SLUB-Allokator. Einfach ausgedrückt, verwaltet der Kernel nun pro CPU Caches mit kleinen Speicherobjekten, sodass die meisten Zuweisungen und Freigaben lokal abgewickelt werden können, ohne dass eine Synchronisation zwischen den CPUs erforderlich ist. Dies reduziert Konflikte in Hot Paths und beschleunigt sowohl die Zuweisung als auch die Freigabe, wodurch die Leistung für Workloads verbessert wird, die stark auf RCU angewiesen sind.

Die Swap-Leistung ist ein weiterer Bereich, der verbessert wurde. Linux 6.18 bringt die erste Phase der „Swap-Tabelle”, die eine neue Abstraktion als Backend für den Swap-Cache einführt. Das Ziel ist es, Swap-Lookups und -Verwaltung effizienter zu gestalten, insbesondere unter Speicherbelastung.

Vor diesem Hintergrund zeigen die in den Merge Notes angegebenen Benchmarks Durchsatz- und Anfragen-pro-Sekunde-Steigerungen von 5–20 % für repräsentative Workloads sowie ein besseres Verhalten unter Belastung bei der Zuweisung großer Seiten.

Auf der Speicherseite ermöglicht ein neues Device-Mapper-Ziel, dm-pcache, die Verwendung von persistenten Speichern – beispielsweise CXL-basierte oder DAX-fähige Geräte – als Hochgeschwindigkeits-Cache vor langsameren Blockgeräten. Damit steht Systementwicklern eine Möglichkeit auf Kernel-Ebene zur Verfügung, persistente Speicher als Ebene zwischen DRAM und SSDs oder Festplatten zu behandeln, ohne dass dafür benutzerdefinierter Code im Benutzerbereich erforderlich ist.

Gleichzeitig erhält der NFS-Server eine Option, um seinen eigenen I/O-Cache vollständig zu deaktivieren. Das mag kontraintuitiv klingen, aber bei großen, stark ausgelasteten Servern oder sehr kleinen Cloud-Instanzen kann das Überspringen des serverseitigen Cachings tatsächlich die Skalierbarkeit verbessern und eine Überlastung des lokalen Speichers vermeiden.

Die Prozess- und Namespace-Verwaltung wurde hinsichtlich ihrer Benutzerfreundlichkeit deutlich verbessert. Der Kernel unterstützt seit Linux 5.1 pidfds, also Dateideskriptor-Handles für Prozesse, die sich für eine robuste Prozessverwaltung als sehr nützlich erwiesen haben.

Der Linux-Kernel 6.18 erweitert dieses Konzept auf Namespaces: Der Userspace kann nun Namespace-Identifikatoren mit den vorhandenen APIs name_to_handle_at() und open_by_handle_at() codieren und decodieren. Dadurch ist es möglich, während der gesamten Lebensdauer des Systems konsistent auf Namespaces zu verweisen, sie zuverlässig zu vergleichen und weiterzugeben, ohne zusätzliche Ressourcen zuzuweisen.

Im Bereich Netzwerk gibt es mehrere wesentliche Änderungen, da die neue Version eine erste Unterstützung für Accurate Explicit Congestion Notification bietet, die das klassische ECN erweitert, indem sie detailliertere Rückmeldungen darüber liefert, wie viele Überlastungsmarkierungen pro RTT festgestellt wurden.

Hinsichtlich UDP wurde der Empfangspfad überarbeitet, um Konflikte zu reduzieren und NUMA-fähige Sperren sowie bessere Datenstruktur-Layouts zu verwenden. Die im Änderungsprotokoll genannten Tests zeigen eine um etwa 50 % bessere UDP-RX-Leistung, mit noch größeren Gewinnen unter attackenähnlichen Bedingungen, bei denen eine kleine Gruppe von Sockets sehr hohe Paketraten empfängt.

Darüber hinaus wurde die Standardgröße des Socket-Empfangspuffers auf 4 MB erhöht und frühere Arbeiten zur direkten internen Pufferfreigabe (dibs) wurden integriert, wodurch die Skalierbarkeit für Netzwerke mit hohem Datenaufkommen weiter verbessert wurde.

Die Sicherheit und Transportverschlüsselung werden durch die Unterstützung von PSP-verschlüsselten TCP-Verbindungen verstärkt. PSP, ein von Google entwickeltes Protokoll, nimmt eine Mittelstellung zwischen IPsec und TLS ein: Es weist einige architektonische Ähnlichkeiten mit beiden auf, ist jedoch für eine starke Hardware-Entlastung ausgelegt, einschließlich Tunneling-Modi, was es für den Einsatz in Rechenzentren attraktiv macht, in denen Entlastungs-Engines üblich sind.

Das BPF-Subsystem erhält die Fähigkeit, kryptografisch signierte BPF-Programme zu laden. Derzeit besteht die wichtigste Änderung in der Infrastruktur: Der Kernel kann Programmsignaturen beim Laden überprüfen. Darüber hinaus entwickelt sich das Audit-Subsystem weiter in Richtung einer robusten Multi-LSM-Unterstützung, da der Linux-Kernel 6.18 seine Ereignisbehandlung verbessert, wenn mehrere Linux-Sicherheitsmodule gleichzeitig aktiviert sind.

Im Bereich der Virtualisierung führt diese Version einen virtio-SPI-Treiber ein, mit dem Hypervisoren SPI-Geräte über den Standard-virtio-Mechanismus direkt für virtuelle Maschinen verfügbar machen können. Auf x86-Hosts steht nun SEV-SNP CipherText Hiding zur Verfügung, wodurch verhindert wird, dass CPUs, die nicht für den Zugriff auf den privaten Speicher eines Gastes autorisiert sind, überhaupt den Chiffretext in diesem Speicher sehen können.

Hinsichtlich KVM kann es nun Shadow Stacks und indirekte Verzweigungsverfolgung auf Intel-Hardware sowie Shadow Stacks auf AMD bereitstellen, wodurch Gäste Zugriff auf moderne Kontrollfluss-Schutzmaßnahmen erhalten.

Dateisysteme und die Blockschicht wurden sowohl hinsichtlich neuer Funktionen als auch hinsichtlich Bereinigungen überarbeitet. Das neue dm-pcache-Ziel passt ebenfalls hierher und bietet persistentes Caching vor Blockgeräten. Ext4 wird weiter modernisiert, mit erweiterter Unterstützung für reservierte IDs und einer neuen ioctl-Schnittstelle zum Abrufen und Ändern von Superblock-Parametern, während die letzten Überreste separater ext3-Konfigurationsoptionen entfernt wurden.

OverlayFS erhält Unterstützung für Case-Folding, und FUSE-Dateisysteme können nun Kopien großer Bereiche direkt verarbeiten. Unabhängig davon wird eine Reihe veralteter XFS-Optionen standardmäßig deaktiviert, veraltete Mount-Optionen werden entfernt und Online-fsck ist nun standardmäßig aktiviert und wird nicht mehr als experimentell behandelt. Der Linux-Kernel 6.18 entfernt außerdem das Bcachefs-Dateisystem vollständig, und einige Dateisysteme übernehmen neue lockless-Bitmap-Implementierungen, um Konflikte bei gemeinsam genutzten Metadaten zu reduzieren.

Was schließlich die Hardwareunterstützung angeht, so enthält die neue Version neue oder verbesserte Treiber für eine Vielzahl von GPUs (einschließlich neuerer Mali-Varianten und zusätzlicher SoC-Grafikblöcke), Display-Brücken und -Panels, eingebettete SoCs, Netzwerkkarten, Leistungsregler und -steuerungen, industrielle E/A-Sensoren, Speichercontroller, USB-PHYs und -Repeater, Audiogeräte sowie Eingabe- und haptische Controller.

Für diejenigen, die den Linux-Kernel 6.18 selbst kompilieren möchten, steht er jetzt unter kernel.org zum Download bereit. Wie üblich werden Nutzer von Rolling-Release-Distributionen als Erste den neuen Kernel erhalten, wobei das Update voraussichtlich in den nächsten Wochen in ihren Repositories verfügbar sein wird.

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments