Zum Hauptinhalt Zur Navigation Zur Suche

Kernel: Linux 5.9 schließt Lizenzlücke

Der aktuelle Linux-Kernel 5.9 macht RISC-V Tickless, unterstützt Xen auf dem Raspberry Pi 4 und schließt eine Lizenzlücke.
/ Kristian Kißling (Linux Magazin)
4 Kommentare News folgen (öffnet im neuen Fenster)
Linux 5.9 ist erschienen. (Bild: Pixabay)
Linux 5.9 ist erschienen. Bild: Pixabay

Linux-Chefentwickler Linus Torvalds hat Version 5.9 des freien Kernel veröffentlicht. Vor allem im Netzwerkbereich habe es zuletzt noch eine Reihe 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. Linux 5.9 ist damit fertig und das Merge-Window für Kernel 5.10 offen.

Der aktuelle Kernel bringt viele kleinere Neuerungen von Christoph Hellwig(öffnet im neuen Fenster) mit, die eine große Wirkung erzielen – zumindest lizenzrechtlich. Eine bisherige Lücke, um sogenannte GPL Exports über ein sogenanntes Shim-Modul zu umgehen, wurde geschlossen. Auslöser für den Schritt war wohl ein Facebook-Entwickler, der versucht hatte, Patches für ein Interface unterzubringen, über das das NetGPU-Core-Modul und Nvidias proprietärer Kerneltreiber kommunizieren. Mit den Änderungen sollte die Nutzung oder Entwicklung proprietärer Treiber künftig deutlich schwerer werden.

Neue Crypto-Treiber und Inline-Verschlüsselung

Der Kernel bekommt außerdem einen neuen Crypto-Treiber (Sa2ul) und drei neue Hardware-RNG-Treiber (BA431, JZ4780 und X1000). Hinzu kommen Device-Mapper-Updates von Mike Snitzer(öffnet im neuen Fenster). Die Device-Mapper-Verschlüsselung unterstützt nun auch Zoned Block Devices.

Eric Biggers liefert(öffnet im neuen Fenster) außerdem Aktualisierungen für FScrypt, allen voran den Support für Inline-Verschlüsselung über das Blk-Crypto-Framework. Mithilfe der Mount-Option -o inlinecrypt für die Dateisysteme Ext4 und F2FS ver- und entschlüsselt die neue Block-Crypto die Dateien und verwendet dafür nicht direkt das Crypto-API.

Bessere Unterstützung für Zonen

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 Leistung in bestimmten Nutzungsszenarien und ermöglicht 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(öffnet im neuen Fenster) und verwendet dabei das Zone Capacity Field anstelle von blk_zone, um die maximalen Inode-Größen und -Blöcke in ZoneFS zu ermitteln.

Besser prozessieren

Um die Steuerung 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 klappt das nun dank Entwickler Bjorn Andersson(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) keinen Rate Limiter mehr, auch den partiellen SoC-Reset haben die Entwickler entfernt.

Tickless RISC-V

Linux läuft auf zahlreichen Plattformen, daher ist auch in diesem Bereich immer Neues angesagt. So kündigt Palmer Dabbelt(öffnet im neuen Fenster) "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(öffnet im neuen Fenster).

Besserer ARM-Hardware-Support

Support für drei neue ARM-SoCs (32 und 64 Bit) zählt der Pull Request von Arnd Bergmann(öffnet im neuen Fenster) 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 Pine64 Pine-Phones, ein günstiges Smartphone, das kein Android mitbringt. Auch bei den ARM-SoC-Treibern gibt es Neues: So unterstützt der Firmware-Treiber des Turris Mox nun signierte Blobs.

Nicht so sichere Enklaven

Nutzer von x86-Intel-Prozessoren dürfen sich über Support für FSGSBASE freuen. Der kommt laut Thomas Gleixner(öffnet im neuen Fenster) 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 ermöglichen 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. Als Grund wird genannt, dass Zstd einen sehr schnellen Dekompressor habe, die Daten dennoch zugleich optimaler packe als Gzip.

Fanotify schneller

Updates erhielten auch Fanotify und FSnotify(öffnet im neuen Fenster). Einerseits erzeugt FSnotify nun weniger Overhead, wenn es nicht im Gebrauch sei. Andererseits hat ein Entwickler Fanotify-Ereignisse mit Namen implementiert. Dies erlaubt ein effektives Monitoring von ganzen Dateisystemen, das etwa auch Änderungen auf einem Mirror bemerkt.

Bei den Perf-Tools überwachen Control File Descriptors(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) 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 unter anderem kernel_execve implementiert, was den Umgang mit Kernel Threads erleichtere.

Im Virtualisierungsbereich profitiert Xen von Kernel 5.9(öffnet im neuen Fenster). Der Hypervisor läuft auch auf dem Raspberry Pi 4, weil dieser – anders als die Vorgänger – einen standardisierten GIC-400 Interrupt Controller verwendet, der Virtualisierung unterstützt.

Checkpoint-Restore für Prozesse

Neu im Kernel ist ein BPF-Iterator für Map-Elemente(öffnet im neuen Fenster). 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 ü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(öffnet im neuen Fenster), um Time Namespaces mit Pidfds zu verknüpfen. Der Entwickler hat auch Code eingereicht(öffnet im neuen Fenster), der unprivilegierte Checkpoint- und Restore-Aktionen für Prozesse erlaubt. Die JVM-Entwickler haben Checkpoint/Restore bereits in die Java VM integriert, um die Startzeit zu verringern.

Dateisystem-Neuerungen

Bei den Dateisystemen erhält NFS über das NFSv4.2-Protokoll(öffnet im neuen Fenster) Unterstützung für Extended Attributes für Benutzer (user xattrs). Der NFS-Server unterstützt die Extended Attributes für User ebenfalls.

In XFS funktioniert Inode-Flushing(öffnet im neuen Fenster) 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 wurden. Außerdem wurden die Reflink-Kontrollschleifen auf Effizienz getrimmt und das Verhalten von DAX unter Ext4 und XFS weiter stabilisiert.

Laut Ilja Drjomow(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) 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(öffnet im neuen Fenster) für die Benutzerschnittstellen klappt das Testen von Eingabegeräten 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(öffnet im neuen Fenster).

Grafikupdates für neue Hardware

Bleiben noch die Grafikupdates. Von Dave Airlie floss ein Pull Request ein(öffnet im neuen Fenster), der einen neuen Displayport-Treiber für Xilinx ZynqMP anbietet, zwei neue AMD-GPUs (Sienna Cichlid und Navy Flounder) und erster Support für Rocket Lake 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. Der Nouveau-Treiber für Nvidia-Karten erhält CRC-Support über neu eingeführte Vblank Worker. Zudem unterstützt Nouveau 2 MiB große Systemspeicher-Pages ab der Pascal-Serie von Nvidia-Karten. Der Code für Linux 5.9 steht auf Kernel.org(öffnet im neuen Fenster) bereit.


Relevante Themen