Die Neuerungen von Linux 4.12

Linux 4.12 verbessert das Live Patching und unterstützt AMDs neue High-End-Grafikchips. Zwei neue I/O Scheduler versprechen die Redaktionsfreude von Desktops und Servern zu steigern. Die Netzwerk-Schnellstrecke Express Data Path (XDP) lässt sich jetzt universell nutzen.

In Pocket speichern vorlesen Druckansicht 30 Kommentare lesen
Linux-Kernel 4.11
Lesezeit: 38 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Zum Start der ersten Juli-Woche hat Linus Torvalds die Linux-Version 4.12 freigegeben. Wie seine Vorgänger wartet auch der neue Kernel mit zahlreichen Neuerungen auf. Die wichtigsten im Kurzüberblick, bevor dieser Text in die Details geht:

  • Das neue "Per-Task Consistency Model" legt das Fundament, durch das sich mit Kernel Live Patching (KLP) letztlich alle Lücken des Linux-Kernels beheben lassen sollen, ohne das System neu starten zu müssen.
  • Den Netzwerk-Schnellverarbeitungsweg Express Data Path (XDP) kann man Dank "Generic XDP" jetzt mit beliebigen Netzwerkschnittstellen nutzen.
  • Der Treiber Amdgpu unterstützt nun AMDs Grafikprozessoren der "Vega"-Generation, die kürzlich mit der AMD Radeon Vega Frontier Edition debütierten.
  • Nouveau beherrscht jetzt 3D-Beschleunigung bei Nvidias Pascal-Grafikchips der GeForce-1000er-Serie.
  • Der neue Storage-I/O Scheduler "Budget Fair Queueing" (BFQ) verspricht bessere Datenträger-Performance und reaktionsfreudige Systeme – insbesondere bei solchen mit Magnetfestplatten. Manchmal ist BFQ aber auch kontraproduktiv und standardmäßig oft inaktiv.
  • Einen gefühlten Geschwindigkeitsgewinn verspricht auch der ebenfalls neue I/O-Scheduler Kyber. Er ist allerdings vornehmlich auf den Einsatz in Servern mit besonders schnellen SSDs ausgelegt.
  • Der Device Mapper kann dank Authenticated Encryption (AE) jetzt erkennen, wenn ein verschlüsseltes Volume manipuliert wurde.
  • Einige Änderungen an der Sicherheits-Infrastruktur versprechen, die Unterstützung für UEFI Secure Boot zu verbessern.
  • Das neue "Generic TEE Subsystem" ermöglicht einen Austausch mit dem Mini-Betriebssystem, das bei manchen ARM-SoCs mithilfe von TrustZone im Hintergrund läuft – ähnlich, wie es die Management Engine bei Intel-Chips tut.
  • Ein neues Analyse-Tool kann Entwicklern beim Optimieren der Startzeit helfen, denn es zeigt, welche Subsysteme des Kernels wie lange zur Initialisierung benötigen.
Das Kernel-Log

Durch diese und zahlreiche weitere Umbauten wuchs der Quellcode von Linux um über 1 Millionen Zeilen auf 24,2 Millionen "Lines of Code". Die Kernel-Entwickler haben für die neue Version außerdem rund fünfzehntausend Änderungen ins Quellcodeverwaltungssystem eingepflegt. Mit beiden Werten bricht Linux 4.12 zwar keine Rekorde, erklimmt aber einen der vorderen Plätze in der Top-Ten von Linux-Releases mit den meisten Änderungen.

Änderungen an der Infrastruktur zum Kernel Live Patching (KLP) legen Grundlagen, durch die sich in Zukunft deutlich mehr Sicherheitslücken des Linux-Kernels im Betrieb beheben lassen. Mit dem vor zwei Jahren bei Linux 4.0 eingeführten KLP gelang das bislang nur bei zirka 90 Prozent der typischen Sicherheitslücken – das sind weniger als bei den indirekten Vorläufern Kpatch und Kgraft, mit denen sich schon zuvor rund 95 Prozent der Lücken stopfen ließen. Die jetzigen Änderungen legen mit dem "Per-Task Consistency Model" ein Fundament, um mit KLP letzten Endes alle Lücken zur Laufzeit beheben zu können. Der neue Ansatz kann in mehr Situationen als zuvor sicherstellen, dass KLP keinen Codeabschnitt modifiziert, der gerade irgendwo ausgeführt wird. Das neue, seit vielen Monaten entwickelte Konsistenzmodell ist ein Hybrid der Herangehensweisen von Kpatch und Kgraft.

Mehr Infos

Dies war ein schrittweise aktualisierter Artikel

Dieser Text wurde mehrfach erweitert, um nach und nach alle wesentlichen Änderungen Linux 4.12 zu beschreiben. Zur jüngst erfolgten Freigabe dieser Kernel-Version haben wir die Absätze umsortiert und Abschnitte zu wichtigeren Neuerungen an den Anfang gestellt. Von nun an behält der Text seine jetzige Form. Details zur Versionshistorie des Artikels finden Sie am Artikelende.

Durch den neuen Ansatz lassen sich nun auch Lücken stopfen, bei denen ein Live-Patch die im Speicher liegenden Funktions- oder Daten-Semantiken modifizieren muss. Das Ganze klappt aber nur auf Architekturen, die verlässliche Stack-Traces bieten – das ist ab 4.12 lediglich beim x86-Code der Fall. Durch die Änderungen lassen sich nun auch Kernel-Module mit Live-Patches entladen, die nicht mehr benötigt werden.

Der bei Linux 4.8 eingeführte Express Data Path (XDP) lässt sich Dank "Generic XDP" jetzt mit beliebigen Netzwerkschnittstellen nutzen. XDP ist grob gesagt ein Schnellstraße für bestimmte Netzwerk-Pakete, über die sich manche Aufgaben deutlich schneller erledigen lassen, weil sie die Verarbeitung durch den mächtigen und komplexen Netzwerk-Stack umgeht.

Einen großen Performance-Gewinn verspricht Generic XDP aber nicht, denn es ist unter anderem als Referenzimplementation gedacht. Er richtet sich außerdem an Entwickler, damit die ihre auf den XDP zurückgreifenden Programme mit beliebigen Netzwerk-Chips schreiben und testen können. Details hierzu und zu XDP im Allgemeinen finden sich im Blog-Beitrag eines der Entwickler des Netzwerk-Codes. Dieser hat zudem kürzlich in einem frei abrufbaren Vortrag gezeigt, wie man bestimmte Pakete mit XDP früh fallen lassen kann, um so die Auswirkungen eines DDoS-Angriffs erheblich zu lindern (Videoaufzeichnung, Präsentationsfolien).