Linux 5.6 ist fertig

Seit einiger Zeit gibt es Zoff zwischen Linus Torvalds und dem Entwickler von Bcachefs, Kent Overstreet.

“Social-Distancing-Champion” Linus Torvalds hat den neuen Kernel 5.6 freigegeben. Mit von der Partie: Wireguard mit ein paar Last-Minute-Fixes, USB-4-Code, das neue Zone-FS-Dateisystem, ein Systemaufruf, der beim Sandboxing hilft und eine Lösung für das 2038-Problem.

Für die Corona-Krise scheint Linus Torvalds bestens gerüstet: Seine Tochter bezeichne ihn jedenfalls als “Social-Distancing-Champion”, schreibt er in der Ankündigung. Er erwarte einen ziemlich gewöhnlichen nächsten Entwicklungszyklus für Kernel 5.7, weil die meisten Kernel-Entwickler ohnehin von zu Hause arbeiten. Er verstehe aber auch, wenn Entwickler momentan andere Sorgen haben als das nächste Merge Window. Schließlich sei ihre Gesundheit und die ihres Umfelds wichtiger.

Wireguard

Eine lange erwartete Neuerung von Kernel 5.6 ist der Einzug von Wireguard. Die machte offenbar auch den Wireguard-Erfinder Jason Donenfeld nervös, der noch ein paar Last-Minute-Fixes lieferte, die etwa den Umgang mit unzureichenden öffentlichen Schlüsseln verbessern und generell die “Tiefenverteidigung” stärken.

So löst der Kernel für 32-Bit-Systeme das Jahr-2038-Problem. Das besteht darin, dass der für das Datum gewählte 32-Bit-Datentyp nicht genügt und das Datum ohne Änderungen im Jahr 2038 auf vielen Systemen auf 1901 umspringen würde. Die Typen “time_t/timeval/timespec” wurden daher aus dem Kernel entfernt, einige Treiber und verbliebene Dateisysteme gepatcht. Laut Entwickler Arnd Bergmann gibt es im neuen Kernel 5.6 keine Referenzen mehr auf “time_t”, so dass sich der Kernel prinzipiell erstmals für 32-Bit-Systeme einsetzen lässt, die länger als 2038 laufen sollen.

Linus selbst hob in der Ankündigung des ersten Release Candidate den neuen System Call “openat2()” hervor, an dem die Kernelentwickler seit geraumer Zeit arbeiten. Das Problem: Der Vorgänger “openat()” akzeptierte ungeprüfte Flags aus dem Userspace, was Sicherheits- und Stabilitätsprobleme nach sich ziehen kann. “openat2()” setze hingegen auf eine Path Resolution. Laut Torvalds sei es also möglich, nach Dateinamen zu suchen, ohne Symlinks und Mountpoints zu folgen. Entwickler können ihren Code anweisen, Pfade nur dann zu öffnen, wenn sich diese nicht außerhalb eines bestimmten Sandboxing-Bereiches befinden.

Zone-FS

Von Western Digital kommt ein neues Dateisystem namens Zone-FS, das sich für spezielle Gerät, so genannte Zoned Storage Devices (ZSD), eignet. Dank dieser Technologie möchte Western Digital künftig in großen Infrastrukturen, die heute bereits viele HDDs und SSDs einsetzen noch mehr Daten speichern und hat dafür sogar eine eigene Zoned Storage Initiative gegründet. Linus Torvalds hat den Code für ZSD für Kernel 5.6 akzeptiert.

Nicht zuletzt gibt es von Greg Kroah-Hartman ersten Code für USB4. Die Spezifikation orientiert sich am Thunderbolt-3-Protokoll, ist zudem rückwärtskompatibel zu Thunderbolt 3 und USB 3.x. Der im Kernel gelandete Code unterstützt unter anderem PCIe- und Display-Port-Tunneling, P2P-Networking und Host- sowie Device-seitige NVM-Firmware-Upgrades. Auch im Ökosystem zu USB4 gibt es einige Änderungen: Einige kommen von Intel und helfen beim Initialisieren von USB4-Geräten und liefern Support für die Time Management Unit in USB4-Routern, andere betreffen die Dokumentation.

“io_uring” und Time Namespaces

Daneben schreitet die Arbeit an asynchronen, nicht-blockierenden Systemaufrufen über “io_uring” weiter voran. Das ist für Kernel-Entwickler eine größere Sache, nachdem andere Versuche, den Kernel asynchron zu machen, in der Vergangenheit gescheitert waren. Von Jens Axboe kommt Support für verschiedene neue Opcodes, darunter “fallocate”, “openat”, “close”, “statx” und “epoll_ctl”. Entwickler können nun zudem prüfen lassen, welche Opcodes verfügbar sind und unterstützt werden.

Von Thomas Gleixner kommt Time-Namespace-Support, der ein typisches Problem von Containern löst. Wechselt ein Container den Host, kann das zu Irritationen führen, wenn die neue Zeit von der alten abweicht. Das betrifft die auf Linux-Systemen verwendeten “CLOCK_MONOTONIC” und “CLOCK_BOOTTIME”. Erstere misst die Zeit im Suspend-Modus nicht, letztere schon. Dennoch komme es bei monotoner Zeitmessung zu Verstößen gegen die POSIX-Anforderungen.

Time Namespaces erlauben es laut Gleixner, für die beiden Uhrzeiten Versatzzeiten (Offsets) zu setzen — nach dem Erzeugen des Namespace und vor dessen Inanspruchnahme. Diese Offsets beachten die Timer im späteren Verlauf. Für “REALTIME/TAI” lassen sich diese Offsets hingegen bewusst nicht erzeugen.

Grafisches

Der Nouveau-Treiber bringt einige Fixes für die Turing-Reihe von Nvidia mit (die bei Nouveau unter “tu11x” laufen), zu der etwa Karten der RTX16-Serie gehören. Unter anderem gibt es Reparaturen am Modesetting und Fortschritte beim Secure-Boot-Support. Auch die AMD-Entwickler waren nicht untätig. So bringt AMDGPU ersten Support für HDCP 2.x mit und für AMDs Pollock-Chip. Wer den Kernel testen möchte, wird wahlweise auf Kernel.org fündig oder auf Github.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben