Software::Kernel
Ausblick auf Linux-Kernel 4.0
Nachdem Linux 4.0 bereits in der Testphase steckt, lassen sich die Neuerungen der kommenden Kernel-Version absehen. Unter den Verbesserungen in nahezu allen Komponenten ragt die Einführung des Mechanismus des Live-Patchings heraus.
Linux Foundation
Linus Torvalds, Initiator des Linux-Kernels
Als Linux-Initiator Linus Torvalds am 23. Februar die Kernel-Version 4.0-rc1
freigab, stand auch fest, dass die Versionsnummer des kommenden Kernels 4.0 statt 3.20 sein wird. Nach vier Jahren mit Linux 3.x fanden es Torvalds und die Mehrheit der Teilnehmer an einer Online-Umfrage an der Zeit, die kleine Versionsnummer wieder auf eine handliche Zahl zurückzusetzen. Am Funktionsumfang ändert die Benennung jedoch nichts. Der kommende Kernel erhielt es handlichen Codenamen »Hurr durr I'ma sheep«.
Mit bisher rund 9.000 Änderungen seit Linux 3.19 ist die aktuelle Testversion von Linux 4.0 die mit den wenigsten Änderungen seit einiger Zeit. Für den generellen Trend zu immer mehr Änderungen hat dies allerdings keine Bedeutung. Mit Linux 4.0 ist in etwa fünf Wochen zu rechnen.
Die schlagzeilenträchtigste Neuerung in Linux 4.0 ist wohl der grundlegende Mechanismus zum Patchen des Kernels im laufenden Betrieb. Gemeinsam von Suse und Red Hat vorangetrieben, ist der Mechanismus die Grundlage sowohl für kGraft als auch für kpatch sowie alternative Lösungen. Kontroversen gibt es noch über das zu verwendende Konsistenzmodell, das Thema kann daher noch nicht als abgeschlossen bezeichnet werden.
Threads, die die Fristen für RCU handhaben, können jetzt mit Echtzeit-Priorität laufen. Der Netzwerk-Stack kann nun je nach Host über die Routing-Tabelle unterschiedliche Stau-Verhinderungsalgorithmen anwenden. Die TIPC-Implementation berücksichtigt jetzt Namespaces. Außerdem unterstützt das Traffic-Control-Subsystem Filter, die in der virtuellen eBPF-Maschine laufen. Open vSwitch erhielt die Möglichkeit, eigene Flow-IDs zur Identifikation von Netzwerkströmen zu verwenden, was die Geschwindigkeit teils deutlich steigern soll.
Das Overlay-Dateisystem unterstützt jetzt mehrere darunterliegende Dateisysteme, die nicht änderbar sind. In Btrfs wurden zahlreiche Stellen verbessert, die bei Speichermangel Probleme machten, die Arbeit ist aber noch nicht beendet. Parallel NFS (pNFS) unterstützt bereits das FlexFile-Layout, das noch in Entwicklung ist. Es soll bewirken, dass die Datei-Metadaten an einer anderen Stelle als die Datei-Inhalte gespeichert werden. Das Subsystem für persistente Speicherung kann optional eine Gerätedatei bereitstellen, mit der Programme Daten in diesen Speicher schreiben können. Das Dateisystem ubifs wurde stärker parallelisiert und unterstützt nun auch Security-Labels in den erweiterten Attributen.
Die Dateisystem-Option lazytime, die bisher nur in ext4 unterstützt wird, steht jetzt als Alternative zu relatime bereit. Das Zugriffkontrollsystem Smack erhielt eine Schnittstelle zum Netfilter-System, was es möglich macht, Sicherheits-Labels an Netzwerkpakete zu vergeben. Der von Android stammende Binder-Code wurde erweitert, um mit Zugriffkontrollsystemen wie SELinux, Smack und AppArmor zusammenzuarbeiten. Verbesserungen gab es auch wieder beim Analysewerkzeug »perf«.
Das I2O-Bus-Subsystem wurde in das Staging-Verzeichnis verschoben und soll bald komplett entfernt werden. I2O war ein gescheiterter Versuch von Intel, ein neues Bussystem einzuführen, und wird wohl nirgends mehr genutzt. Neu ist die Unterstützung für nichtflüchtigen Speicher, vor allem um Dateisysteme darin zu konstruieren.
Die PA-RISC-Architektur kann jetzt keine Binärprogramme mehr ausführen, die für 32 Bit HP-UX-Systeme geschrieben wurden. Der Treiber für die I/O-Speicherverwaltungseinheit (IOMMU) für ARM erhielt ein neues generisches API für die Verwaltung von Seitentabellen. Im LED-Subsystem gibt es nun eine neue Geräteklasse für LEDs, die als Blitzlicht eingesetzt werden. Das virtio-Subsystem entspricht jetzt dem Virtio-Standard 1.0.
Für Kernel-Entwickler ist der neue Kernel Address Sanitizer (KASan) von Interesse, der dabei hilft, Probleme mit der Speicherallokation und Speicherzugriffen zu finden. Er ist zunächst nur für x86_64 verfügbar.
Die zahlreichen weiteren Änderungen sind im Änderungslog von Git zu finden. Kernel und Patch-Dateien sind von zahlreichen Spiegelservern von kernel.org herunterzuladen.