Der Linux-Kernel, auf den alle Distributionen wie Ubuntu, Suse und Red Hat Enterprise Linux aufsetzen, ist den Version 3.5 erschienen. Mathias Menzer berichtet über die neuen Funktionen, die beispielsweise das Netzwerk beschleunigen oder einen Tiefschlaf-Modus aus Android integrieren.
Die fünfte Entwicklungsversion von Linux 3.5 (RC5) bot fast nur Korrekturen und dazu neue Fehlererkennungsroutinen beim «Universal Disk Format. Die darauf folgende Version RC6 ergänzte die Dokumentation zum Device Mapper. Fehlerkorrekturen betrafen diesmal zumeist den ARM-Bereich. RC7 fiel etwas grösser aus, was unter anderem an der Rücknahme von Änderungen in der Speicherverwaltung liegt. Hier wurden einige Funktionen wieder entfernt, die Bereich innerhalb von Dateien aufspüren, die mit Nullwert gefüllt sind. Sie wurden als Ballast angesehen und somit wieder entfernt.
Linux 3.5 veröffentlicht
Linux 3.5 wurde nach 62 Tagen Entwicklungszeit veröffentlicht und damit sogar noch schneller als die vorherige Version. Es lässt sich nun darüber streiten, ob noch kürzere Entwicklungszeiträume sinnvoll oder dauerhaft machbar sind, jedoch bietet der Zeitraum von zwei Monaten einige Vorteile: Es ist genügend Zeit, um eine begrenzte Zahl neuer Funktionen zu stabilisieren, und die Zeit ist kurz genug, damit Entwickler ihre Patches eher etwas besser testen und im Zweifel auf das nächste Kernel-Release verschieben können.
Doch was macht die neue Version denn nun aus? Da wäre mit «Frontswap» zum Beispiel die bereits erwähnte Erweiterung des «Transcendent Memory» (siehe dazu auch den vergangenen Juni-Kernelrückblick». Auch auf Seite der Dateisysteme gab es einige interessante Neuerungen. Moderne Dateisysteme wie zum Beispiel Btrfs verfügen bereits über Mechanismen, um die Integrität der abgelegten Daten und Metadaten zu gewährleisten. Nun wurde Ext4 immerhin die Möglichkeit gegeben, mittels Prüfsummen zu untersuchen, ob die Metadaten unversehrt sind. Sie gegebenenfalls wiederherzustellen, oder dies auch für die eigentlichen Daten zu prüfen, wurde noch nicht implementiert.
Apropos Btrfs: Die Neuerungen sind hier weniger spektakulär, dennoch können die nun verfügbaren Fehlerstatistiken für Eingabe- und Ausgabe-Operationen, die für jedes Laufwerk erstellt werden, eine Aussage über die Gesundheit des Dateisystems zulassen. Zudem wurde die Speichernutzung von Btrfs verbessert sowie die Verzögerungen bei synchronem Schreiben verringert.
Netzwerk wird schneller
Eines der grossen Themen im Moment ist der «Bufferbloat» – ein Effekt, der entsteht, wenn Netzwerkhardware und Netzprovider versuchen, die Datenübertragung am Rande der bekannten Spezifikationen zu verbessern. Dabei kann es jedoch vorkommen, dass insbesondere durch das Zwischenspeichern von Netzwerkpaketen auf der Übertragungsstrecke Verzögerungen bei deren Übermittlung auftreten. Dies nennt man «Bufferbloat». Bereits seit Linux 3.3 wird an dem Problem mit unterschiedlichen Ansätzen gearbeitet, «Controlled Delay» ist nun der neueste Ansatz. Im Kern wird die Grösse des «Congestion Window», das die Anzahl der Pakete, die abgeschickt wurden und für die noch keine Empfangsbestätigung vorliegt, entsprechend des aktuellen Netzwerkdurchsatzes angepasst.
Auch «TCP Early Retransmit» soll sich positiv auf den Netzwerkdurchsatz auswirken, indem es nach Einbrüchen der Übertragungsrate zügig wieder auf höhere Werte kommen soll. Ebenfalls im Netzwerkbereich bewegt sich die Funktion «TCP Connection Repair». Sie soll das Wiederherstellen von Netzwerkverbindungen ermöglichen, wenn einer der Kommunikationspartner umgetopft wurde – ein Problem, das beim Migrieren von virtuellen Maschinen von einer Hardware auf eine andere auftritt. Hierbei müssen dauerhafte Verbindungen gehalten und möglichst unterbrechungsfrei wieder aufgenommen werden, um Abbrüche zu verhindern. Der Netzwerkstack von Linux wurde nicht vor diesem Hintergrund konzipiert und so wurde nun ein Reparatur-Modus nachgerüstet..
Energiespar-Modus aus Android fliesst in Linux 3.5 ein
Nun ziehen auch von Android bekannte Techniken in den Linux-Kernel ein: Die von Android bekannten Wakelocks schicken das gesamte System in den Tiefschlaf, lediglich einige Geräte, die das System wiederbeleben können und der Speicher werden weiterbetrieben. Eine solche Funktion bietet Linux nun von Haus aus an. Dies ist aber eher ein Angebot an die Android-Gemeinde, ihre Treiber nun mit der Linux-eigenen Schnittstelle zu nutzen und damit in den Linux-Kernel überführen zu können, und weniger interessant für PCs und normale Notebooks, denn diese nehmen sich beim Wiedererwachen einiges mehr an Zeit als zum Beipiel Smartphones. Wird die bislang notwendige Android-eigene Wakelock-API genutzt, ist eine Aufnahme des Treibers in Linux nicht möglich.
Im Umfeld der Leistungsanalysen gibt es nun «Uprobe», das die Möglichkeit bietet, die Speichernutzung und Systemstatistiken sowie Daten für das Debugging von Anwendungen im Userspace zu erhalten. Das ganze funktioniert analog zu dem schon länger existierenden Kprobe, das speziell Kernel- und Treiber-Entwicklern einen Blick auf die Leistungsfähigkeit ihrer Werke ermöglicht.
Neues gabs auch bei «Seccomp», das bereits mit Linux 2.6.12 eingeführt wurde. Es führt Prozesse in einer Art Sandbox aus, in der nur sehr eingeschränkte Operationen möglich sind. Mit Linux 3.5 steht ein sehr flexibler Satz an Filtern zur Verfügung, der sehr vielfältige Möglichkeiten zur Einschränkung von Prozessen bietet. Die Linux-Variante von Googles Browser Chromium kann dies bereits dazu verwenden, um Plug-ins in einer Sandbox zu betreiben.
Linus Torvalds warnt vor Ferienstress
Bereits zur siebten Entwicklerversion gab Torvalds seine Vorstellungen zu 3.6 bekannt: Da sich im August viele europäische Entwickler in den Urlaub verabschieden, warnte er sie davor, kurz vor Urlaubsantritt noch Beiträge, sogenannte «Merge-Requests», zu schicken und dann einige Wochen von der Bildfläche zu verschwinden. Stattdessen sollten sie ihre Merges für 3.7 aufheben. Insofern könnte Linux 3.7 wieder einen recht ruhigen Entwicklungszyklus erleben, der auch wieder einen Zweimonats-Kernel als Ergebnis hätte.
Nachtrag, 8.8.2012: Der neue Linux-Kernel 3.5 hat einen Fehler im Treiber für Intel-Grafiken (i915), der zu einem höheren Stromverbrauch führt. Also erstmal sollten wir die Finger davon lassen! (raten sie mal, wer ein Notebook mit Intel-Grafik hat und den entsprechenden Treiber braucht?).
(Mathias Menzer)
Weitere Themen:
Neueste Artikel von Mathias Menzer (alle ansehen)
- Fortschritte von Linux 4.5: Februar im Kernelrückblick - 29. März 2016
- Linux 4.4 ist da: Jahreswechsel im Kernel-Rückblick - 8. Februar 2016
- Grossumbau für Linux 4.2: Juli im Kernel-Rückblick - 18. August 2015