Linux 3.6 und 3.7: August bis Oktober im Kernel-Rückblick

Anzeige:

Der Linux-Kernel, auf den alle Distributionen wie Ubuntu, Fedora und Red Hat Enterprise Linux aufsetzen, ist in der Version 3.6 erschienen, zudem bietet 3.7 neue Energiesparmodi und Xen-Hypervisor für ARM-Platformen. Mathias Menzer durchleuchtet die Linux-Updates der vergangenen drei Monate.

 

Karte des Linux-Kernels. (pd)

 

Anzeige:

Der Juli endete mit der Freigabe des Kernels 3.5 (siehe: Juli im Kernel-Rückblick). Passend dazu startete Torvalds den August mit der ersten Entwicklerversion des kommenden Linux-Kernels 3.6. Die überwiegende Zahl der Pull Requests wurde auch bereits in den Kernel 3.6-RC1 (RC: Release Candidate) aufgenommen, so auch ein Protokoll zur Übergabe des Systemstarts durch den EFI-Bootloader. Damit können Bootloader vereinfacht werden, da sie nur den Kernel starten müssen. Zusätzlich dürfte dies auch die Startzeiten verkürzen.

Der Begriff des «Bufferbloat» wird sich auch im Zusammenhang mit Linux 3.6 nicht vermeiden lassen; «TSQ» (TCP Small Queues) sind ein weiterer Ansatz, der Latenzen bei der Datenübertragung in Netzwerken vermeiden soll. In diesem Fall wird die Grösse der Warteschlange für zu sendende Pakete begrenzt, auch werden weitere Puffer berücksichtigt, wie zum Beispiel die der Linux-eigenen Firewall Netfilter.

Linux 3.6-RC2 liess sich wieder etwas mehr Zeit und brachte wenige herausragende Änderungen mit. Dazu gehört lediglich «TCM vHost», der Gäste des Virtualisierers KVM direkt mit der Kernel-eigenen iSCSI-Target-Implementierung (einer Möglichkeit zur Anbindung von Datenträgern über das Netzwerk) verbinden kann.

Rechtzeitig vor dem diesjährigen Kernel Developers Summit und der darauf folgenden Linux Plumbers Conference in San Diego stellte Torvalds die dritte Entwicklerversion bereit. Sie war wieder grösser als vorherige. Dennoch liegen hier überwiegend Fehlerkorrekturen vor. Funktionen oder gar Treiber kamen keine hinzu, ausser von einzelnen Gerätekennungen oder Erweiterungen, wie die Unterstützung für Lenovos Ideapad Z570 oder das LTE-Modem K5006-Z des chinesischen Herstellers ZTE.

Linux 3.4 wird noch zwei Jahre unterstützt

Kurz und bündig fiel die E-Mail an die Mailingliste aus, in der der Entwickler Greg Kroah-Hartman den Stand der von ihm gepflegten Kernelversionen bekannt gibt. Demnach wird Linux 3.0 noch mindestens ein Jahr lang weiter gepflegt, 3.4 für mindestens zwei Jahre. Linux 3.5 wird mit Veröffentlichung von 3.6.1 seine letzte Aktualisierung erhalten.

Zusätzlich unterhält der Debian-Entwickler Ben Hutchings noch die Version 3.2, die unter anderem im kommenden Debian «Wheezy»und der aktuellen Ubuntu LTS-Version 12.04 zum Einsatz kommt. Sie erhalten weiterhin monatlich Aktualisierungen, ebenso wie die von Kroah-Hartman betreuten Langzeit-Versionen. 

Neuer Wein in alten Schläuchen

Manche Nutzer kennen das: Man setzt auf eine stabile bewährte Distribution und Teile der eigenen Hardware werden nicht erkannt oder funktionieren nicht korrekt. Gerade aktuelle Komponenten benötigen oftmals einen ebenfalls aktuellen Linux-Kernel und dessen Halbwertszeit sank in den letzten Jahren deutlich, was mit auf die teilweise drastisch verkürzten Entwicklungszeiten zurückzuführen ist.

Der Entwickler Luis Rodriguez stellte auf dem diesjährigen Linux Collaboration Summit in San Francisco einen Ansatz vor, um Treiber aktueller Linux-Kernel auf ältere Version zurück zu portieren. Das Projekt Compat-Wireless bewerkstelligt dies bereits seit Linux 2.6.36 für WLAN-Treiber, indem es eine Zwischenschicht zwischen den älteren Kernel und den aktuellen Treiber einzieht und die Kompatibilität zwischen beiden herstellt. Diese Zwischenschicht soll nun unter dem neuem Namen Compat für den Einsatz auch mit anderen als nur den Drahtlos-Treibern weiterentwickelt werden. Anders als der Wein im Bibelzitat soll Compat jedoch nicht zum Platzen des alten Kernels führen, sondern dank einer nur geringen zusätzlichen Last eine längere Lebensdauer für das System bedeuten.

Sieben Linux-RC-Versionen und Namenswechsel im September

Der September brachte sieben neue Entwicklerversionen von Linux 3.6 hervor und auch das finale Release brachte Torvalds gerade noch im September unter. Die verbleibenden Entwicklerversionen lieferten fast durchgehend kleinere Korrekturen und Verbesserungen, bedeutende neue Funktionen kamen nicht hinzu. Nach vier Kernel-Versionen wurde ein neuer Name vergeben: Aus dem Säbelzahn-Eichhörnchen (Saber-Toothed Squirrel) wurde nun das verschreckte Streifenhörnchen (Terrified Chipmunk).

Auch diese Linux-Version geht erneut gegen den «Bufferbloat», Verzögerungen der Datenübermittlung in Netzwerken, vor. Mit «TCP Small Queues» werden die Puffer für Netzwerkpakete begrenzt, die noch auf ihren Versand warten. Ebenfalls für mehr Geschwindigkeit im Netz soll «TCP Fast Open» (TFO) sorgen. Die Methode beschleunigt den Verbindungsaufbau zwischen zwei Rechnern, indem bei der ersten Anfrage gleich Nutzdaten mitgeschickt werden, wie beispielsweise die Anforderung einer Webseite. Dadurch wird eines von bislang drei notwendigen Paketen eingespart und die ersten Antwortpakete sind damit einige Millisekunden schneller da, je nachdem wie lange dieses erste Paket und seine Antwort für ihre jeweiligen Wege benötigt hätten.

TFO hat derzeit den Status eines Drafts (Vorschlags) bei der IETF (Internet Engineering Task Force). Der in Linux 3.6 eingeflossene Code liefert Unterstützung auf der Client-Seite, die Implementierung der Server-Seite soll in 3.7 erfolgen. Ebenfalls noch netzwerknah sind Ergänzungen am Dateisystem «CIFS», das nun um Unterstützung für das mit Windows Vista eingeführte proprietäre Protokoll «SMB2» ergänzt wurde. Es wird einige Vorteile mit sich bringen, da die verfügbaren Kommandos auf 19 reduziert wurden – «SMB1» kannte noch über 100. Daneben wird nun «Pipelining» unterstützt: dies beschleunigt umfangreiche Übertragungen, indem  zusätzliche Anfragen über das Netzwerk abgesetzt werden, bevor die Antworten auf die vorangegangenen eingehen,

Neue Energiesparmodi verlängern Laufzeit 

In Zeiten, in denen Arbeitsspeicher in Gigabyte gezählt wird, verliert «Swapping» an Bedeutung. Mit «Swapping» bezeichnet wird das Auslagern von Speicherseiten von Arbeitsspeicher auf einen weniger schnellen Datenträger. Doch einige spezielle Anwendungen, wie beispielsweise Thin Clients des Linux Terminal-Server-Projekts bedürfen mangels eigener Datenträger sogar eines Swap-Bereichs im Netzwerk. War eine solche Konstellation bislang zwar möglich, so konnte sie dennoch bei intensiver Nutzung zu Fehlern führen. Diese Probleme wurden nun durch Anpassungen der Speicherverwaltung und des Netzwerk-Dateisystems «NFS» beseitigt.

Den Rechner schlafen zu schicken, ist vor allem für Notebook-Nutzer interessant, Damit behält er seine aktuelle Umgebung und trotzdem benötigt das Gerät kaum Strom. Doch beim Ruhezustand (Suspend-to-Disk), wo das aktuelle Speicherabbild auf der Festplatte abgelegt wird, dauert der Aufwachvorgang nahezu so lange wie ein regulärer Startvorgang, während Bereitschaftsbetrieb (Suspend-to-Ram), bei dem alle Komponenten ausser dem Arbeitsspeicher (RAM) abgeschaltet sind, nur solange hält, wie der Akku den Arbeitsspeicher noch mit Strom versorgen kann. Linux 3.6 bietet nun eine Kombination an, wobei das Abbild des Arbeitsspeichers sowohl auf der Platte abgelegt als auch im weiterhin mit Energie versorgten Arbeitsspeicher vorgehalten wird. Geht der Strom aus und der Inhalt des RAM verloren, so wird das abgelegte Abbild von der Festplatte genutzt und der Anwender kann trotzdem dort weiterarbeiten, wo er zuvor unterbrochen hat.

Ebenfalls in Richtung Energiesparen zielt «PCIe D3cold». Dabei handelt es sich um den tiefsten Schlafmodus, in den der PCIe-Bus angeschlossene Geräte schicken kann. Die Unterstützung hierfür wurde nun nach mehreren Anläufen in den Linux-Kernel aufgenommen. Im Umfeld der Dateisysteme wurde insbesondere das vergleichsweise junge BTRFS wieder mit neuen Funktionen versorgt. So können nun Grössenbeschränkungen für Subvolumes und Gruppen von Subvolumes definiert werden. Ebenso wurde die Behandlung von «Disk Quotas» unter Ext4 verbessert.

Linux 3.7 setzt neue Bestmarke

Wenn ein Fenster zwei Wochen lang offen steht, kommt sicherlich jede Menge rein. Das galt diesmal auch für das Merge Window, das Torvalds nach 14 Tagen wieder schloss. Über 11’000 Commits und 15’000 geänderten Dateien sind Spitzenwerte in der Linie der 3.x-Kernel. Die Zahl der entfernten und hinzugefügten Code-Zeilen wird nur von Version 3.2 getoppt, wo grössere Umbauten an der Aufteilung der Bereiche vorgenommen wurden, vor allem bei der ARM-Architektur und den Netzwerk-Treibern. Ähnlich war der Fall auch diesmal gelagert, wo die Bibliotheken für UAPI jeweils in eigenen Bereichen unterhalb der spezifischen Architekturen zusammengefasst wurden.

Letztlich machen also nur Verschiebungen von Dateien das grösste Volumen aus. Doch führte die Umstellung auch zu vielen Problemen, die ersten Meldungen diesbezüglich schlugen schon nach kurzer Zeit auf der Mailingliste auf. So zogen sich die Nacharbeiten und Korrekturen auch durch die zweite und dritte Entwicklerversion und machten auch dort den Löwenanteil aus.

Xen-Hypervisor von Linux 3.7 unterstützt ARM

Die integrierte ARM-64-ARChitektur bietet 64-Bit-Unterstützung für ARM-Prozessoren. Multiplatform-Code für ARM soll es künftig ermöglichen, dass nicht für jeden ARM-Prozessortyp ein eigener Kernel kompiliert werden muss, sondern ein generischer Kernel in der Lage ist, auf verschiedenen Ausprägungen der ARM-ARChitektur zu starten und deren spezielle Gerätetreiber dann im Bedarfsfall nachzuladen. Und um den Eindruck vollständig zu machen, dass Linux 3.7 ein sehr ARM-lastiger Kernel werden wird, wurde auch der Grundstein dafür gelegt, dass der Hypervisor des Virtualisierers Xen auf ARM-Systemen ausgeführt werden kann.

Dateisystem Ext4 mit Patch-Problem

Mit seiner Meldung an die Linux Kernel Mailing List stiftete ein Nutzer namens «Nix» einiges an Aufregung. Er berichtete, dass sein Dateisystem durch die Aktualisierung von Linux 3.6.1 auf 3.6.3 zerstört wurde und grenzte den Fehler beim Reproduzieren auf Ext4 ein. Der Patch, der als Schuldiger verdächtigt wurde, war auch schon in andere produktive Kernel aufgenommen worden und so schlugen die Wellen schnell hoch. Doch wäre das Problem so schwerwiegend gewesen wie vermutet, wären mehr Anwender davon betroffen gewesen, da der entsprechende Patch von beispielsweise Fedora bereits verteilt worden war. Dies wies darauf hin, dass die Bedingungen für das Auftreten des Fehlers recht speziell waren.

Eine besonnene Überprüfung des Fehlers brachte dann den wahren Schuldigen an Licht: ein kleiner Patch von Ext4-Betreuer Ted T’so selbst, der den Ext4-Code eigentlich vereinfachen sollte. Im Nachhinein stellte sich dann auch heraus, dass das Dateisystem nicht wirklich beschädigt war, sondern lediglich wenige Daten, die beim Auftreten des Fehlers gespeichert wurden. Das Dateisystem selbst liess sich mit Bordmitteln wieder herstellen. Letzten Endes handelt es sich bei Ext4 dennoch um ein recht stabiles Dateisystem, dessen Änderungen umfangreichen Tests unterzogen werden.

(Mathias Menzer)

Creative Commons Lizenzvertrag

The following two tabs change content below.
Mathias Menzer
Mathias Menzer behält die Entwicklung des Linux- Kernels im Blick, um über kommende Funktionen von Linux auf dem Laufenden zu bleiben und immer mit interessanten Abkürzungen und komplizierten Begriffen dienen zu können.