Auf den letzten Metern hätte sich Linus Torvalds etwas weniger Änderungen am Linux-Kernel gewünscht. Dennoch erschien das fertige Linux 5.9 pünktlich am gestrigen Abend.
Vor allem im Netzwerkbereich habe es noch eine Reihe von Fixes gegeben, gibt Torvalds in der Release-Mitteilung zum Kernel 5.9 an. Allerdings hätten die Änderungen keine weitere Entwicklungsrunde für den Kernel gerechtfertigt. Also sei Kernel 5.9 nun fertig und stehe das Merge-Window für Kernel 5.10 offen. Der vorliegende Text fasst nur die wichtigsten Änderungen zusammen, einen ausführlicheren Überblick liefert der Vorab-Bericht zum Kernel 5.9-rc1.
Lizenz-Bug geschlossen
Der fertige Kernel bringt unter anderem kleinere Neuerungen von Christoph Hellwig mit, die eine große Wirkung erzielen — zumindest lizenzrechtlich. Eine bisherige Lücke, um GPL Exports über ein so genanntes Shim-Modul zu umgehen, ist geschlossen. Auslöser für den Schritt war wohl ein Facebook-Entwickler. Der hatte versucht, Patches für ein Interface unterbringen, über das das NetGPU-Core-Modul und Nvidias proprietärer Kerneltreiber kommunizieren.
Inline-Verschlüsselung
Im Crypto-Bereich kennt der Kernel einen neuen Crypto-Treiber („sa2ul“) und drei neue Hardware-RNG-Treiber („BA431“, „JZ4780“ und „X1000“). Hinzu kommen Device-Mapper-Updates von Mike Snitzer. Die Device-Mapper-Verschlüsselung unterstützt nun auch Zoned Block Devices.
Apropos Zoned Block Devices: Im Zoned-Storage-Modell für NVMe-Datenträger lassen sich üblicherweise alle Sektoren in einer Zone beschreiben. Bei SSDs, die den Zoned-Namespaces-Standard (ZNS) unterstützen, besteht hingegen die Möglichkeit, ausgewählte Zonen beschreibbar zu machen. Das steigert die Performance in bestimmten Use Cases und erlaubt es Anwendungen, ihre Daten gezielt in den Zonen zu platzieren. Linux bringt für Zoned Block Devices ein eigenes Dateisystem namens ZoneFS mit. Mit Kernel 5.9 erhält ZoneFS Support für Zone Capacity und verwendet dabei das „zone capacity field“ anstelle von „blk_zone“, um die maximalen Inode-Größen und -Blöcke in ZoneFS zu ermitteln.
Eric Biggers liefert derweilen Aktualisierungen für FScrypt, allen voran der Support für Inline-Verschlüsselung über das „blk-crypto“-Framework. Gibt der Admin den Dateisystemen Ext4 und F2FS die Mount-Option „-o inlinecrypt“ mit auf den Weg, ver- und entschlüsselt „blk-crypto“ die Dateien und verwendet dafür nicht direkt das Crypto-API.
Besser prozessieren
Um das Steuern separat arbeitender Prozessoren kümmert sich im Kernel das Remote Processor Framework. Das führt in Kernel 5.9 einen „Entkoppelt“-Zustand für entfernte Prozessoren ein, die beim Booten von Linux auf einem der Prozessoren ebenfalls einbezogen werden sollen. Konkret klappe das nun dank Entwickler Bjorn Andersson für die STM32-Plattform.
Daneben unterstützt Kernel 5.9 unter anderem Intels AI-Prozessor Gaudi besser. Dessen Konfiguration braucht laut Greg Kroah-Hartman keinen Rate Limiter mehr, auch den partiellen SoC-Reset haben die Entwickler entfernt.
Läuft bei ihnen
Linux läuft auf zahlreichen Plattformen, daher ist auch in diesem Bereich immer Neues angesagt. So kündigt Palmer Dabbelt „viele neue Kernel-Features“ für die noch recht junge freie Architektur RISC-V an. Unter anderem lässt sich nun über “NO_HZ_FULL” im Echtzeitbetrieb ein Tickless-System aktivieren, bei dem der lokale Timer die CPU nicht unterbrechen darf. Und es gibt “JUMP_LABEL”-Support, der sinnvoll im Zusammenhang mit Tests ist.
Andere Architekturen hingegen verlassen den Kernel bereits wieder, weil sie nicht mehr zum Einsatz kommen. So erging es diesmal Unicore32, einer chinesischen 32-Bit-RISC-Architektur, die aus dem Kernel flog.
ARM, aber sexy
Support für drei neue ARM-SoCs (32 und 64 Bit) zählt der Pull Request von Arnd Bergmann auf. Auch neu sind Device Trees für drei neue SoCs in existierenden Produktfamilien. Der Allwinner Sunxi bietet ein neues Board für einen existierenden SoC an. Dabei handelt es sich um die Revision 1.2 des auch in Deutschland häufiger erwähnten Pine64 Pine-Phones, ein günstiges Smartphone, das kein Android mitbringt. Auch bei den ARM-SoC-Treibern gibt es Neues: So unterstützt der „Turris Mox“-Firmware-Treiber nun signierte Blobs.
Nicht so sichere Enklaven
Nutzer von x86-Intel-Prozessoren dürfen sich über Support für FSGSBASE freuen. Der komme laut Thomas Gleixner fünf Jahre nach dem ersten RFC zum Thema. Entwickler Sasha Levin hatte entdeckt, dass ausgerechnet Intels Sicherheitsenklaven (SGX, Software Guard Extensions) „hinter dem Rücken des Kernels“ Kernel-Module laden, die FSGSBASE aktivieren und damit einen nicht-privilegierten Root-Zugriff erlauben. Andererseits beschleunigen die FSGSBASE-Instruktionen Kontext-Switches signifikant und erlauben es dem Userspace, ohne Kernel-Interaktion GSBASE zu schreiben.
Dank Boot-Updates von Ingo Molnar kommt die x86-Architektur nun zudem auch mit Kernel- und Initrd-Images zurecht, die Zstd zum Komprimieren verwenden. Der Grund: Zstd habe einen sehr schnellen Dekompressor, packe die Daten dennoch zugleich optimaler als Gzip.
Fanotify schneller
Updates erhielten auch Fanotify und FSnotify. Einerseits erzeuge FSnotify nun weniger Overhead, wenn es nicht im Gebrauch sei. Andererseits habe ein Entwickler Fanotify-Ereignisse mit Namen implementiert. Dies erlaube nun ein effektives Monitoring von ganzen Dateisystemen, das etwa auch Änderungen auf einem Mirror bemerke.
Bei den Perf-Tools überwachen nun Control File Descriptor die Arbeit von „perf stat“ und „perf record“. Das ermöglicht es, auf Kommando vom Control File Descriptor hin mit Events zu starten, die zwar eingerichtet, aber inaktiv sind.
Um echt asynchrone Puffer-Lesevorgänge zu erreichen, brachte Jens Axboe Änderungen am „io_uring“-Code ein. Eric Biederman hingegen widmete sich „exec“ und möglichen Verbesserungen daran. Im Entwicklungszyklus für Kernel 5.7 sei er auf Probleme mit „exec“ gestoßen. Er habe nun unter anderem „kernel_execve“ implementiert, was den Umgang mit Kernel Threads erleichtere.
Im Virtualisierungsbereich profitiert Xen von Kernel 5.9. Der Hypervisor läuft nun auch auf dem Raspberry Pi 4, weil dieser — anders als die Vorgänger — einen standardisierten GIC-400 Interrupt Controller verwendet, der Virtualisierung unterstützt.
BPF und Syscalls
Neu im Kernel ist ein BPF-Iterator für Map-Elemente. Programme in derselben Cgroup dürfen nun ihre lokale „CPU_STORAGE“-Map teilen. Anstatt jeden Storage mit einer einzigen Verknüpfung zu verbinden, teilt der Code den Storage nun über verschiedene Verknüpfungen mit derselben Cgroup. Diese Verknüpfung hält bis zur Auflösung von Map oder Cgroup.
Entwickler Christian Brauner lieferte fehlende Teile nach, um Time Namespaces mit „pidfds“ zu verknüpfen. Der Entwickler hat auch Code eingereicht, der unprivilegierte Checkpoint- und Restore-Aktionen für Prozesse erlaubt. Use Cases für das Feature gibt es auch schon: Die JVM-Entwickler hätten Checkpoint/Restore in die Java VM integriert, um die Startzeit zu verringern.
Dateisysteme
Bei den Dateisystemen erhält NFS über das NFSv4.2-Protokoll Unterstützung für Extended Attributes für Benutzer („user xattrs“). Der NFS-Server („nfsd“) unterstützt die Extended Attributes für User ebenfalls.
In XFS funktioniert Inode-Flushing nun vollständig asynchron. Die Entwickler haben einen alten Bug im Quota-Code behoben, der dafür sorgte, dass XFS Soft-Limit-Warnungen und Inode-Limits nicht sauber verfolgt hat. Außerdem wurden die Reflink-Kontrollschleifen auf Effizient getrimmt und das Verhalten von DAX unter Ext4 und XFS weiter stabilisiert.
Laut Ilja Drjomow ist in Sachen Ceph die Arbeit an den Client-Dateisystem-Metriken von Xiubo Li beendet. Ceph sendet die Metriken nun sekündlich an alle verfügbaren Metadata Server (MDS).
Besseres Netz
Im Netzwerk-Bereich erhalten die Atlantic NICs neue Features, darunter 64-Bit-Operationen und IPv6-Support für TCP LSO und UDP GSO. Bei den Drahtlos-Patches von Kalle Valo gelten die Microchip „wilc1000“-Treiber als größte Neuerung, die den Staging-Bereich verlassen.
Auch Besitzer gewöhnlicher Consumer-Hardware profitieren zum Teil von Kernel-Updates. Dank solchen von Jiri Kosina für die Benutzerschnittstellen, klappt das Testen von Eingabegeräten nun schneller. Außerdem gibt es Support für das Thinkpad 10 Ultrabook Keyboard.
Pavel Machek hat sich Gedanken über RGB-LEDs gemacht, die im Gegensatz zu Multicolor-LEDs das volle Spektrum an Farben abdecken. Geht es nach ihm, sollte der Kernel beide LED-Varianten unterstützen, erster Code dafür ist im Kernel 5.9 gelandet.
Malkasten
Bleiben noch die Grafikupdates. Von Dave Airlie floss ein Pull Request ein, der einen neuen Displayport-Treiber für Xilinx ZynqMP anbietet, zwei neue AMD-GPUs (Sienna Cichlid und Navy Flounder) und ersten Support für RocketLake im „i915“-Treiber für Intel-Grafik. Auch die Arbeit am DG1-Chip, der Intels neue XE-Grafikarchitektur unterstützen soll, hat im Kernel bereits begonnen. Nouveau erhält CRC-Support über neu eingeführte Vblank Worker. Zudem unterstützt Nouveau nun 2 MiB große Systemspeicher-Pages ab der Pascal-Serie von Nvidia-Karten.
Der fertige Kernel wartet auf Github noch auf Kernel.org. Profis können ihn selbst übersetzen, Einsteiger sollten besser warten, bis die Distribution der Wahl den Kernel anbietet .



