Der neu fertiggestellte Kernel 2.6.36 und die angelaufene Entwicklung des Nachfolgers sind Themen dieses Kernelrückblicks. Dieser ist, neben vielen anderen interessanten Themen, in der aktuellen Ausgabe von freiesMagazin enthalten.
Zwei Vorabversionen waren noch notwendig, bevor Torvalds den Kernel 2.6.36 endgültig veröffentlichen konnte. Der -rc7 [1] brachte außer dem Hoffnungsschimmer eines baldigen finalen Releases hauptsächlich kleinere Korrekturen, zum Teil im Bereich der Grafik-Komponente DRM (Direct Rendering Manager [2]), jedoch auch am Dateisystem xfs.
Mit dem -rc8 [3] bekam der neue Kernel dann auch seinen Namen „Flesh-Eating Bats with Fangs“ (Fleischfressende Fledermäuse mit Reißzähnen). Anscheinend hatte eine Fledermaus mit siebeneinhalb Zentimeter langen Zähnen („three-inch-long fangs“), die sich in sein Haus verirrt hatte, Torvalds entsprechend beeindruckt, um ein eigenes Kernel-Release gewidmet zu bekommen [4]. Außer Aktualisierungen der Dokumentation für den Treiber e1000e und dessen älteren Bruder e1000 finden sich kleinere Korrekturen quer durch den ganzen Kernel. Der Schritt zu 2.6.36 war ebenfalls in erster Linie von letzten, kleinen Korrekturen begleitet [5].
Die erste neue Funktion von 2.6.36 wurde gleich wieder deaktiviert. „fanotify“ stellt eine Schnittstelle bereit, die Benachrichtigungen über Änderungen am Dateisystem an Anwendungen und Prozesse versenden kann (siehe „Der August im Kernelrückblick“, freiesMagazin 09/2010 [6]) und langfristig das seit fünf Jahren erprobte „inotify“ ersetzen soll. Allerdings dauern die Diskussionen unter den Entwicklern über die letztendliche Ausgestaltung der ABI [7] noch an, weshalb man sich letztlich dazu entschloss, diese Funktion vorerst ruhen zu lassen.
Nicht abgeschaltet wurden dagegen die Verbesserungen an „Workqueue“. Diese Funktion verwaltet Funktionsaufrufe für den Kernel und stellt sie zur späteren Ausführung in eine Warteschlange. Die bisherige Gestaltung von Workqueue erzeugte durch eine fehlende Kontrollfunktion teilweise mehr Warteschlangen als Prozessoren oder Kerne im System zur Verfügung stehen und führte dazu, dass sich deren Prozesse gegenseitig im Weg standen. Ein neuer Pool-Manager soll dies künftig verhindern und gleichzeitig Codeteile ablösen, die für Spezialfälle entwickelt wurden, die durch die alte Workqueue-Implementierung nicht behandelt werden konnten.
Eine eigentlich ungeliebte Komponente ist der „Out-Of-Memory-Killer“ (OOM). Anders als der martialische Name vermuten lässt, handelt es sich hierbei jedoch nicht um ein wahllos marodierendes Unterprogramm, sondern mehr um eine meist still im Hintergrund wartende Komponente, die im Falle eines vollständig belegten virtuellen Speichers Prozesse beendet, um den fortlaufenden Betrieb des Systems zu gewährleisten. Hin und wieder trifft OOM eine schlechte Wahl und opfert eigentlich hilfreiche Prozesse, sodass der durchgehende Betrieb mit Einschränkungen oder gar Instabilität erkauft wird. Die Algorithmen zur Auswahl der zu opfernden Prozesse wurden von dem bei Google beschäftigten Entwickler David Rientjes verfeinert, der seine Änderungen nun nach mehreren Anläufen in den stabilen Kernel-Zweig einbringen konnte. Ebenfalls auf Situationen mit Speicherengpässen ausgerichtet ist eine weitere Verbesserung: Steht nur noch wenig Speicher zur Verfügung und es erfolgen gleichzeitig Schreibzugriffe auf ein sehr langsames Medium wie z.B. eine langsame USB-Festplatte, kann es zum völligen Stillstand des Systems aus Anwendersicht kommen. Der Intel-Entwickler Wu Fengguang führte eine Überprüfung ein, ob scheinbar belegte Speicherbereiche in einer solchen Situation bereinigt werden können ohne die Tätigkeit des Kernel Swap Deamon (kswapd) zu behindern, und verringert dadurch die Wahrscheinlichkeit, dass solche Fälle auftreten.
Der in 2.6.35 hinzugekommene Kernel-Debugger KDB lässt sich nun auch aus einer graphischen Umgebung heraus nutzen, indem mittels der Tastenkombination Sysreq-g [8] die KDB-Konsole aufgerufen wird. Hierzu wird Kernel Mode Setting (KMS) genutzt, jedoch derzeit nur für Grafik-Chipsätze von Intel.
Zu den bereits unterstützten Architekturen kommt nun die von Tilera entwickelte Tile64 [9] hinzu. Deren Prozessoren besitzen mehrere Kerne - nämlich 64 Stück - die in einer schachbrettartigen Struktur auf dem Prozessor-Die angeordnet sind, über eigene L1- und L2-Caches verfügen und sich zusammen verschiedene Schnittstellen wie Gigabit-Ethernet und PCIe sowie vier DDR2-Speichercontroller teilen. Obwohl die Prozessoren nur bis 900 MHz getaktet werden, soll dieser Aufbau eine sehr hohe Rechenleistung mit guter Energieeffizienz kombinieren.
Um die neuen Funktionen von Intels Core i3/i5-Reihe mit integrierter Grafik besser nutzen zu können, wurde „Intelligent Power Sharing“ implementiert. Hierbei wird die innerhalb der Leistungs- und Temperaturgrenzen der CPU maximal mögliche Leistung zwischen CPU und Grafik-Komponente so ausbalanciert, dass sich das Gesamtsystem innerhalb der TDP (Thermal Design Power), ein Grenzwert für die maximal mögliche Wärmeabfuhr eines Systems, bewegt.
Lange schon wird „AppArmor“, ein von einigen Distributoren bereits ausgiebig genutztes Werkzeug zur rollenbasierten Umsetzung von Zugriffbeschränkungen (Mandatory Access Control [10]) gepflegt und weiterentwickelt. Nun folgten die Kernel-Entwickler den Nutzern und nahmen AppArmor in den offiziellen Kernel auf.
Neben diesen Neuerungen wurden viele weitere Verbesserungen vorgenommen, so kann FS-Cache nun neben NFS und AFS auch auf das Netzwerk-Dateisystem CIFS aufsetzen und dessen Daten für schnellere Zugriffe zwischenspeichern. Verschiedene Treiber kamen hinzu und die Speicherverwaltung des Virtualisierungs-Werkzeugs KVM wurde überarbeitet. Wie immer liefert die englischsprachige Seite Kernel Newbies [11] einen ausführlichen Überblick.
Bereits am 1.November stellte Torvalds 2.6.37-rc1 [12] zur Verfügung. Er hebt hervor, dass nun die Kernkomponenten auf den Big Kernel Lock (BKL) verzichten, ein zunehmend ungeliebter Mechanismus zum Verhindern gleichzeitiger Zugriffe auf den Kernel. Es sei nun möglich, den Kernel selbst ohne Unterstützung für BKL zu kompilieren, trotzdem nutzen noch einige Treiber und Systeme diesen Locking-Mechanismus wie zum Beispiel die V4L-Umgebung, die für Video-Aufnahme und -Wiedergabe genutzt wird.
Die Freigabe der neuen Vorabversion nahm Torvalds vom aktuellen Linux Kernel Summit [13] in Cambridge vor, der sich die diesjährige Linux Plumbers Conference [14] direkt anschließt. Da viele der Hauptentwickler auf diesen beiden Veranstaltungen zu finden sind, dürften sich die Änderungen in dieser Woche in Grenzen halten. Absprachen, strategische Entscheidungen und auch die Koordinierung mit anderen Projekten und Komponenten rund um Linux stehen hier erst einmal im Vordergrund.
Quellen:[1] http://lkml.org/lkml/2010/10/6/406
[2] http://de.wikipedia.org/wiki/Direct_Rendering_Manager
[3] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commi...
[4] http://torvalds-family.blogspot.com/2010/10/early-halloween-guest.html
[5] http://lkml.org/lkml/2010/10/20/409
[6] http://www.freiesmagazin.de/freiesMagazin-2010-09
[7] [de.wikipedia.org]
[8] http://de.wikipedia.org/wiki/Systemabfrage-Taste
[9] http://en.wikipedia.org/wiki/TILE64
[10] http://de.wikipedia.org/wiki/Mandatory_Access_Control
[11] http://kernelnewbies.org/Linux_2_6_36
[12] http://lkml.org/lkml/2010/11/1/82
[13] https://events.linuxfoundation.org/events/linux-kernel-summit
[14] http://www.linuxplumbersconf.org/2010/
