Original-URL des Artikels: https://www.golem.de/news/betriebssysteme-linux-4-0-patcht-sich-selbst-1504-113455.html    Veröffentlicht: 13.04.2015 08:49    Kurz-URL: https://glm.io/113455

Betriebssysteme

Linux 4.0 patcht sich selbst

Sich selbst im laufenden Betrieb reparieren, das ist ab der jetzt erschienenen Version des Linux-Kernels 4.0 möglich - zumindest rudimentär. Die Funktion ist allerdings noch umstritten. Außerdem gibt es Abhilfe bei Rowhammer-Angriffen.

Mit etwa 9.000 Änderungen sind die Neuerungen in Linux 4.0 vergleichsweise gering, im vergangenen Kernel 3.19 waren es noch 11.400. Mit der Schnittstelle für Suses Kgraft und Red Hats Kpatch lassen sich in Linux 4.0 künftig Reparaturen im laufenden Betrieb ausführen. Das soll Downtimes verhindern. Allerdings ist das Live-Patching noch umstritten. Mit 4.0 statt 3.20 steht hingegen die Versionsnummer der aktuellen Ausgabe des Linux-Kernels fest. Linus Torvalds folgt damit seinem 2011 formulierten Plan, die Kernel-Nummern zu kürzen.

Live-Patching noch nicht ausgereift

Die wohl herausragende Neuerung von Linux 4.0: Es kann ohne nennenswerte Unterbrechungen bestimmte Patches einspielen. Dazu bringt der Kernel ein Framework für Suses Kgraft und Red Hats Kpatch mit, die beide bereits in den jeweiligen angepassten Linux-Kerneln der Distributionen zum Einsatz kommen.

Wie Entwickler Jiri Kosina im Kommentar zum Merge-Commit schreibt, gibt es bislang eine API für die gepatchten Kernel-Module und eine Userspace-API/ABI, um die Patches anzuwenden oder zu deaktivieren. Red Hat und Suse müssen ihre Userspace-Tools noch für den Kernel anpassen, doch einfache Sicherheitspatches lassen sich bereits integrieren.

Umstrittene Konsistenzprüfung

Streit gibt es allerdings um die Konsistenzprüfung beim Live-Patching. Ingo Molnar hat auf der Kernel-Mailingliste die Implementierung und das Design von Kpatch und Kgraft kritisiert. Sie seien "unfreiwillig ein verlängerter Arm des Security-Theaters". Bisher wird die in Kgraft umgesetzte Variante verwendet. Statt wie bei Kpatch das gesamte System anzuhalten, leitet Kgraft jeden einzelnen Prozess vom alten auf den neu gepatchten Kernel-Code um. Um diesen Vorgang zu beschleunigen, wurde wiederum das Stack-Tracing aus Kpatch eingebaut, das Kernel Stack Backtraces verwendet. Denn diese gelten unter einigen Entwicklern als zu unzuverlässig. Es habe in der Vergangenheit dort etliche Fehler gegeben. Noch vorhandene Bugs könnten erst dann auftauchen, wenn ein Live-Patch angewendet werde, argumentiert Molnar.

Molnar will stattdessen eine umfassendere Lösung: Demnach solle der aktuelle Zustand des Systems gespeichert werden. Anschließend könnte der neue Kernel mit Kexec geladen und der gespeicherte Zustand mit diesem wieder gestartet werden. Diese Idee sei nicht neu, schreibt Corbet. Einige Entwickler arbeiten seit längerem an dem Konzept der Seamless Kernel Upgrades. Der Kgraft-Entwickler Vojtech Pavlik argumentiert jedoch, dass ein solch komplexes System noch etwa zehn Jahre brauche, um umgesetzt zu werden.

Wegen der andauernden Diskussion ist es eher unwahrscheinlich, dass ein funktionierendes Konsistenzmodell bereits im nächsten Kernel 4.1 umgesetzt wird. Möglicherweise müssen Nutzer noch bis mindestens bis Ende dieses Jahres warten, bis die Funktion wirklich nutzbar ist.

Rechteeinschränkung gegen Rowhammer-Angriff

Um den jüngst bekanntgewordenen Rowhammer-Angriff unter Linux zu erschweren, haben die Kernel-Hacker die Zugriffsrechte auf die Datei /proc/PID/pagemap eingeschränkt. Künftig darf darauf nur noch mit Root-Rechten zugegriffen werden. Allerdings müsste es möglicherweise später noch eine feinere Zugriffsverwaltung geben, um mögliche Probleme zu verhindern, schreibt Torvalds dazu. Allerdings funktioniert der für den Rowhammer-Angriff veröffentlichte Testcode auch ohne Zugriff auf Pagemap. Immerhin schränkt der Patch die Möglichkeiten eines solchen Angriffs ein und wird von den Kernel-Entwicklern begrüßt.

Verbesserungen in Grafiktreibern, Netzwerk und Dateisystemen

Der freie Radeon-Treiber für Grafikkarten von AMD erhält die Unterstützung für Audio über den Displayport. Ventilatoren solcher Grafikkarten sollen künftig leiser laufen beziehungsweise vom Treiber im laufenden Betrieb besser an die tatsächliche Hitzeentwicklung angepasst werden können. Der Carrizo genannte Nachfolger des Kaveri-Chips von AMD erhält eine erste Unterstützung im AMDKFD-HSA-Treiber. Für Intels Grafikkarten in der kommenden Skylake-Plattform gibt es ebenfalls erste Codeteile. Zudem erhält der Intel-Treiber Verbesserungen für aktuelle Grafikchips. Und der freie Nouveau-Treiber für Grafikkarten von Nvidia taktet die Kepler-basierten GK20A-Chips besser.

Neue Funktionen gegen Netzwerküberlastungen

Über die Routing-Tabelle lassen sich für jeden Host künftig Algorithmen einsetzen, die eine Überlastungssteuerung zur Verfügung stellen. Dazu wurden neue IP-Route-Befehle eingeführt. Beispiele lassen sich der Dokumentation entnehmen, die dem Patch beigelegt wurde. Die für den Einsatz von Linux in Clustern verwendete Transparent Inter-Process Communication (TIPC) lässt sich jetzt mit Namensräumen nutzen. Außerdem unterstützt das Subsystem zur Steuerung des Netzwerkverkehrs den Einsatz von Filtern, die für den erweiterten Berkeley Packet Filter (eBPF) geschrieben wurden.

Mehr Einsatz für Security-Frameworks

Im Bereich Sicherheit wurde der Android-Binder-Code so angepasst, dass er mit den Richtlinien des SELinux- und anderen Frameworks genutzt werden kann. Das gilt auch für das Unsorted Block Image File System (UBIFS), das auf Flashspeicher zum Einsatz kommt. Das Filtersystem für Netzwerke lässt sich künftig mit dem Sicherheitsframework Smack verwenden.

Außerdem feilten die Entwickler noch an anderen Komponenten. Die Btrfs-Macher haben ihr Maintainer-Team verstärkt und kümmern sich unter anderem um einen berüchtigten Speicherplatzfehler in dem Dateisystem, das als Nachfolger für Ext4 gehandelt wird. Aufgetreten ist der Fehler beispielsweise in Facebooks Rechenzentren, wo große Cluster mit Btrfs im Einsatz sind. Das Dateisystem meldet zu wenig Speicherplatz, obwohl genügend vorhanden ist. Solche Out-of-disc-space-Fehlermeldungen nannten kürzlich auch die Core-OS-Entwickler als einen der Gründe, von Btr-FS zurück auf Ext 4 zu wechseln.

Das I2O-Subsystem (Intelligent Input/Output) wurde aus dem Hauptzweig in den Staging-Bereich verschoben. Dort soll es nur noch so lange bleiben, bis sichergestellt ist, dass es nicht mehr benötigt wird. Soweit die Kernel-Entwickler beobachteten, kommt die Schnittstelle kaum noch zum Einsatz. Bereits im Oktober 2000 hatte sich die Special Interest Group (I20-SIG) aufgelöst.

Mehrheit für 4.0

Linus Torvalds hatte auf Google+ eine Umfrage zu der Vergabe der Versionsnummer 4.0 gestartet. Immerhin 56 Prozent der etwa 30.000 Teilnehmer hatten für den Sprung auf 4.0 gestimmt. Die Gegner hätten ohnehin nicht genügend stichhaltige Argumente gegen den Sprung bei der Nummerierung des Linux-Kernels geliefert, schreibt Torvalds an die Mailingliste der Kernel-Entwickler. Ohnehin sei eine spektakuläre Funktion bisher niemals ein Grund für einen neuen Kernel und einen damit verbundenen Sprung in der Nummerierung gewesen. Auch eine grundlegende Änderung an der Kompatibilität oder sogar dessen Bruch habe es beim Kernel nie gegeben, und die werde es auch nie geben.

Die meisten Unterstützer der Versionsnummer 4.0 freuten sich hingegen auf den dann möglicherweise folgenden Linux-Kernel 4.1.15. Denn diese Version kommt in Skynets Terminator T-800 in der gleichnamigen Spielfilmreihe zum Einsatz. Deshalb sollte nicht zu viel auf die Zahl 4.0 gegeben werden, schreibt Torvalds. Sie vereinfache lediglich die Zählweise künftiger Linux-Versionen.

Den Quellcode von Linux 4.0 gibt es bei Kernel.org zum Download.  (jt)


Verwandte Artikel:
Linux 4.0: Streit um das Live-Patching entbrennt   
(01.03.2015, https://glm.io/112661 )
Google: Chromebooks bekommen "Linux-VMs" und "Terminal"   
(27.02.2018, https://glm.io/133030 )
Bpfilter: Linux-Kernel könnte weitere Firewall-Technik bekommen   
(22.02.2018, https://glm.io/132933 )
Systemanalyse: Wie Dtrace auf Linux kommen könnte   
(15.02.2018, https://glm.io/132799 )
Freedreno: Google will Mainline-Linux-Support für Snapdragon 845   
(14.02.2018, https://glm.io/132774 )

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