Original-URL des Artikels: https://www.golem.de/news/vpn-linux-5-6-macht-wireguard-stabil-2003-147584.html    Veröffentlicht: 30.03.2020 17:10    Kurz-URL: https://glm.io/147584

VPN

Linux 5.6 macht Wireguard stabil

"Social-Distancing-Champion" Linus Torvalds hat Linux-Kernel 5.6 veröffentlicht - mit Wireguard, USB4 und einer Lösung für das Jahr-2038-Problem.

Für die Corona-Krise scheint Linux-Chefentwickler Linus Torvalds bestens gerüstet: Seine Tochter bezeichne ihn jedenfalls als "Social-Distancing-Champion", schreibt er in der Ankündigung der Version 5.6 des Linux-Kernel. Da er wie viele andere Linux-Entwickler sowieso von zuhause aus arbeite, erwarte er keine größeren Einschränkung bei der Kernel-Entwicklung und einen ziemlich gewöhnlichen nächsten Entwicklungszyklus für Linux 5.7. Torvalds 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.

Mit dem nun verfügbaren Linux 5.6 ist die moderne VPN-Technik Wireguard erstmals stabil im Kernel verfügbar. Mit der vorangegangenen Version 5.5 hatten die beteiligten Entwickler bereits den Unterbau der notwendigen Netzwerktechniken veröffentlicht. Nun folgt also nach mehreren Jahren Entwicklung auch offiziell der Rest.

Kurz vor Veröffentlichung der aktuellen Version 5.6 von Linux lieferte Wireguard-Initiator Jason Donenfeld noch ein paar Fehlerbehebungen im letzter Minute, die etwa den Umgang mit unzureichenden öffentlichen Schlüsseln verbessern und generell die "Tiefenverteidigung" stärken. Darüber hinaus zeigt sich Donenfeld erfreut über den erreichten Meilenstein und klärt auf der Wireguard-Mailingliste, wie die Technik auch auf älteren Kernel-Versionen genutzt werden kann.

Jahr-2038-Problem gelöst

Die aktuelle Kernel-Version löst für 32-Bit-Systeme außerdem das Jahr-2038-Problem. Das besteht darin, dass der für die sogenannte Unixzeit gewählte 32-Bit-Datentyp im Januar 2038 überlaufen würde. Dabei würde es sich dann um ein Datum im Jahr 1901 handeln.

Die im Linux-Kernel genutzten Typen time_t, timeval und timespec wurden daher aus dem Kernel entfernt sowie einige Treiber und verbliebene Dateisysteme gepatcht, die diese noch verwendeten. Laut Entwickler Arnd Bergmann gibt es in Linux 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 bis 2038 laufen sollen.

USB4 für Linux

Der Intel-Entwickler Mika Westerberg stammt der erste Linux-Code für USB4. Die Spezifikation orientiert sich am Thunderbolt-3-Protokoll, ist zudem abwä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.

Gefilterter Systemaufruf zum Öffnen

Als wichtige Neuerungen in Version 5.6 hob Torvals selbst in der Ankündigung des ersten Release Candidate den neuen Systemaufruf openat2() hervor, an dem die Kernelentwickler seit einiger Zeit arbeiten. Das Problem: Der Vorgänger openat() akzeptierte ungeprüfte Flags aus dem Userspace, was Sicherheits- und Stabilitätsprobleme nach sich ziehen kann.

Der neuere Aufruf 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.

Von Western Digital kommt ein neues Dateisystem namens Zone-FS, das sich für spezielle Geräte, sogenannte 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.

Darüber hinaus 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 gestalten, in der Vergangenheit gescheitert waren. Eingeführt worden ist die Technik erstmals mit Linux 5.1. Von Jens Axboe stammt nun der Support für verschiedene neue Opcodes, darunter fallocate, openat, close, statx und epoll_ctl. Entwickler können zudem prüfen lassen, welche Opcodes verfügbar sind und unterstützt werden.

Time Namespaces hinzugefügt

Der Entwickler Thomas Gleixner hat den Time-Namespace-Support hinzugefügt, der ein typisches Problem von Containern löst. Wechselt ein Container den Host, kann das zu Problemen 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 kommt es bei monotoner Zeitmessung zu Verstößen gegen die POSIX-Anforderungen.

Time Namespaces ermöglichen 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.

Kleinigkeiten am Grafikstack

Der Nouveau-Treiber bringt einige Fixes für die Turing-Reihe von Nvidia mit, zu der etwa Karten der RTX16-Serie gehören. Unter anderem gibt es Reparaturen am Modesetting und Fortschritte beim Secure-Boot-Support. Zusätzlich dazu bringt der AMDGPU-Treiber ersten Support für HDCP 2.x mit und unterstützt AMDs Pollock-Chip. Ebenfalls von den AMD-Entwicklern stammt die Unterstützung für die DSC (Display Stream Compression) aus Displayport, wenn diese im MST-Modus genutzt wird. MST steht für Multi-Stream-Transport und ermöglicht den Betrieb mehrerer Displays über ein Kabel. Die Intel-Entwickler haben ihre Arbeiten am Support für Ice Lake und Tiger Lake erweitert.

Diese und weitere Änderungen können in Linux 5.6 genutzt werden, dessen Quellcode unter kernel.org erhältlich ist.  (lm-kki)


Verwandte Artikel:
Kernel: US-Uni baut Linux-Support für verteilte Threads   
(30.04.2020, https://glm.io/148197 )
Panfrost: Freier Mali-Treiber läuft auf Bifrost-GPUs   
(28.04.2020, https://glm.io/148129 )
Focal Fossa: Ubuntu 20.04 erscheint mit Wireguard und Standard-Snap-Store   
(23.04.2020, https://glm.io/148052 )
USB-C: USB 4 bekommt Displayport 2.0 als Alt-Mode   
(29.04.2020, https://glm.io/148176 )
Emulatoren: Das neue Retropie läuft auf dem Raspberry Pi 4   
(30.04.2020, https://glm.io/148189 )

© 1997–2021 Golem.de, https://www.golem.de/