Die erste Test-Version des kommenden Linux-Kernels konnte ich leider nicht gebührend würdigen. Aus diesem Grund finden sich die Links, wo dieser zu beziehen ist, an das Ende dieses Artikels. Es sei allerdings jedem empfohlen, den -rc1 nur auf entbehrlichen Systemen anzutesten, keinesfalls auf einem produktiven Rechner. Dieser Kernel-Rückblick ist, neben vielen anderen interessanten Themen, in der aktuellen Ausgabe von freiesMagazin enthalten.
Linux 2.6.31
Etwas später als in der vergangenen freiesMagazin-Ausgabe angekündigt (siehe „Der August im Kernel-Rückblick“, freiesMagazin 09/2009 [1]) wurde der Kernel 2.6.31 veröffentlicht [2]. Zu den herausragenden Neuerungen zählt die Unterstützung für USB 3.0, was dank der von der Intel-Entwicklerin Sarah Sharp beigesteuerten Treiber für xHCI (Extensible Host Controller Interface) ermöglicht wird (siehe „Der Juni im Kernel-Rückblick“, freiesMagazin 07/2009 [3]). Zwischenzeitlich ist auch Hardware in greifbare Nähe gerückt, die den neuen Standard nutzt, darunter ein Controller [4] sowie eine Festplatte [5].
Fastboot stammt ebenfalls aus Intels Schmiede und soll den Systemstart beschleunigen, indem die Suche und Initialisierung von Geräten und Partitionen sowie der Start von Diensten parallel abgewickelt wird. Die Verfügbarkeit der Kompressionsmethoden LZMA und BZIP2 bringen zwar keinen Leistungs- wohl aber einen Platzgewinn, da hierdurch das kompilierte Kernel-Abbild bis zu 33 Prozent gegenüber der herkömmlichen GZIP-Kompression verkleinert wird.
CUSE (Character Devices in Userspace) ist ebenfalls ein neuer Treiber, der aufbauend auf FUSE (Filesystem in Userspace) die Implementierung zeichenorientierter Geräte im Berechtigungskontext des Anwenders erlaubt. Erstes Beispiel ist die mitgelieferte Umsetzung von OSS Proxy [6], der eine Emulation des veralteten, jedoch noch immer weit verbreiteten, Open Sound Systems darstellt. Besitzer älterer ATI Radeon-Karten werden sich freuen, denn die Unterstützung für das in 2.6.29 eingeführte Kernel Mode Setting wurde für die Chipsätze R1xx, R2xx, R3xx, R4xx und R5xx erweitert, R6xx und R7xx befinden sich noch in Entwicklung. Verbesserungen beim Freigeben von Speicherbereichen sollen verhindern, dass Komponenten wie zum Beispiel verlinkte Bibliotheken, die von noch laufenden Programmen benötigt werden, aus dem Arbeitsspeicher entfernt werden. Dadurch wird ein flüssigeres Arbeiten am Desktop ermöglicht, da die langsameren Zugriffe auf die Festplatte zum Nachladen dieser Komponenten entfallen bzw. auf ein Minimum reduziert werden können.
Con Kolvias
Ein Comic (siehe rechts) [7] hat den australischen Anästhesisten Con Kolvias dazu inspiriert, einen neuen Scheduler zu entwickeln, der insbesondere Systemen mit bis zu vier Prozessoren oder Kernen - also vorrangig Desktop-Systemen - besonders gute Leistungen zeigt [8]. Der „Brain Fuck Scheduler“ zeigt bei Anwendungen, die mit vier Threads auf einem Vier-Kern-System ausgeführt werden bessere Leistungen, als mit beliebig vielen Threads gestartete Anwendungen mit dem aktuellen CFS (Completely Fair Scheduler). Kolvias, der sich bereits vor zwei Jahren mit dem Scheduler des Linux-Kernels beschäftigte und sich aus der Entwicklergemeinde im Streit über den CFS zurückzog, sieht das Problem darin, dass ein Scheduler nicht allen Anforderungen genügen kann: Ein Scheduler, der auf 4096 CPUs skaliert, kann trotzdem daran scheitern, ein Flash-Video auf einem System mit weniger als vier Kernen im Vollbildmodus flüssig abzuspielen.
Ingo Molnar, Author des von Kolvias angegriffenen Completely Fair Schedulers, hat sich BFS mittlerweile angeschaut, bescheinigt ihm jedoch schlechtere Resultate [9]. Er erachtet BFS als spannenden und wagemutigen Ansatz. Die Priorität sieht auch er bei kleineren Systemen liegend, da 4096-CPU-Systeme eher selten sind und der Scheduler für diese dann auch optimiert würde. In diesem Zusammenhang bietet Molnar Kolvias die Zusammenarbeit an und verspricht, gute Ideen, die BFS liefert, auch zu folgen und in den Mainline-Kernel aufzunehmen.
Hyper-V/Staging-Treiber
Beim Aufräumen seines staging-Zweiges, ein Bereich der Kernel-Code-Verwaltung, der der Aufnahme und Pflege kommender Treiber dient, stolperte Kroah-Hartmann über einige schlecht oder ungepflegte Treiber. „drivers/staging ist KEINE Mülldeponie für toten Code“ beklagte er sich [10] und kündigte an, die nicht mehr gewarteten Treiber wieder aus dem Kernel zu entfernen. Traurig war dabei die Tatsache, dass auch der erst kürzlich von Microsoft freigegebene Treiber für Hyper-V (siehe „Der Juli im Kernel-Rückblick“, freiesMagazin 08/2009 [11]) davon betroffen war. Nachdem mit über 200 Patches der Treiber in eine Form gebracht wurde, die die Aufnahme in 2.6.32 ermöglichen, sollte er schon zu 2.6.33 wieder aus dem Kernel fliegen. Allein das Wiederauftauchen der Microsoft-Entwickler mit neuen Patches [12] nach dieser Ankündigung könnte Hyper-V vor diesem Schicksal bewahren. Für manche der 22 anderen Treiber auf Kroah-Hartmanns Abschussliste haben sich ebenfalls Maintainer gefunden, den verbliebenen wird jedoch der Rausschmiss blühen.
Torvalds: „Linux ist aufgebläht“
Einer Intel-Studie zufolge verliert der Linux-Kernel mit jeder Version etwa zwei Prozent an Geschwindigkeit. Auf der in Portland stattfindenden LinuxCon äußerte Torvalds, dass er den Kernel inzwischen für zu aufgebläht halte. Eine Lösung dafür habe er jedoch nicht [13]. Tatsächlich nimmt das Volumen des Kernel immer weiter zu, wie auch die Studie „Who Writes Linux and Who Supports It“ (siehe „Der August im Kernel-Rückblick“, freiesMagazin 09/2009 [1]) belegt. Dies ist der stetig steigenden Anzahl an Funktionen und Treibern geschuldet, die mit einer ebenfalls größer werdenden Entwicklergemeinde einhergeht. Allerdings sieht Torvalds dies nicht als so großes Problem, da die Stabilität des Kernels gut sei und Fehler rasch beseitigt würden.
Echtzeit-Kernel für Debian
Pengutronix [14], Dienstleister für Embedded-Systeme unter Linux, stellt seit kurzem vorkompilierte Echtzeit-Kernel für Debian zur Verfügung [15]. Diese wurden mit PREEMPT_RT [16], einer Echtzeit-Erweiterung für den Linux-Kernel, modifiziert und sollen Anwendern, die diese Funktionalität benötigen, das eigenhändige Kompilieren des Kernels ersparen. Einen Wermutstropfen gibt es allerdings: Die von Pengutronix bereitgestellten Kernel-Pakete basieren auf dem Vanilla-Kernel und enthalten nicht die Debian-spezifischen Kernel-Patches.
Kernel 2.6.32-rc1
Fast drei Wochen nach Veröffentlichung von 2.6.31 beendete Torvalds das Zeitfenster, in welchem Neuerungen in den nächsten Kernel aufgenommen werden [17]. Der überwiegende Anteil der Änderungen von 2.6.32-rc1 liegen im Bereich der Treiber, gefolgt von Firmware und den Architekturen, wobei bei letzteren die ARM-Architektur stark im Vordergrund steht [18].
Links:
[1] http://www.freiesmagazin.de/freiesMagazin-2009-09
[2] http://ikhaya.ubuntuusers.de/2009/09/10/der-kern-fuer-karmic-2-6-31-1673/
[3] http://www.freiesmagazin.de/freiesMagazin-2009-07
[4] http://www.heise.de/newsticker/meldung/145672
[5] http://www.heise.de/newsticker/meldung/145828
[6] http://userweb.kernel.org/~tj/ossp/
[7] http://xkcd.com/619/
[8] http://www.linux-magazin.de/NEWS/Con-Kolivas-meldet-sich-mit-neuem-Scheduler-zurueck
[9] http://www.linux-magazin.de/NEWS/Ingo-Molnar-testet-neuen-Brain-Fuck-Scheduler
[10] http://lkml.org/lkml/2009/9/3/3
[11] http://www.freiesmagazin.de/freiesMagazin-2009-08
[12] http://lkml.org/lkml/2009/9/10/297
[13] http://www.pro-linux.de/news/2009/14727.html
[14] http://www.pengutronix.de/index_de.html
[15] http://www.pro-linux.de/news/2009/14750.html
[16] http://rt.wiki.kernel.org/
[17] http://lkml.org/lkml/2009/9/27/166
[18] http://www.linux-magazin.de/NEWS/Kernel-2.6.32-geht-in-die-abschliessende-Testphase
Der Kernel 2.6.32-rc1 für Ubuntu im Mainline-Kernel-Archiv:
Das Ubuntu-Kernel-Team stellt ein Archiv mit dem Mainline-Kernel zur Verfügung, der ohne die spezifischen Anpassungen der regulären Ubuntu-Versionen erstellt wird.
Achtung! Die Installation des nicht angepassten Kernels kann die Systemstabilität beeinträchtigen!
Die Pakete 2 und 3 müssen nur installiert werden, wenn Anwendungen vorhanden sind, die die Headerdateien benötigen um z.B. Kernelmodule zu kompilieren. Die Pakete sollten dann in der jeweils aufgeführten Reihenfolge installiert werden. Die Kernel-Quellen werden nicht benötigt.
Architektur i386 (32 Bit):
- linux-image-2.6.32-020632rc1-generic_2.6.32-020632rc1_i386.deb
- linux-headers-2.6.32-020632rc1_2.6.32-020632rc1_all.deb
- linux-headers-2.6.32-020632rc1-generic_2.6.32-020632rc1_i386.deb
Architektur amd64 (64 Bit):
- linux-image-2.6.32-020632rc1-generic_2.6.32-020632rc1_amd64.deb
- linux-headers-2.6.32-020632rc1_2.6.32-020632rc1_all.deb
- linux-headers-2.6.32-020632rc1-generic_2.6.32-020632rc1_amd64.deb
Kernel-Quellen:
- Aus dem Ubuntu-Mainstream-Kernel-Archiv (installierbar): linux-source-2.6.32_2.6.32-020632rc1_all.deb
- Direkt von Kernel.org: gzip (ca. 80 MB) / Bzip2 (ca. 60 MB)