Mitte Mai segnete Linux-Vater Linus Torvalds Kernel 2.6.39 ab. Damals war noch keine Rede von einer neuen großen Version. Doch urplötzlich steht Kernel 3.0 zur Verfügung. Man könnte meinen, dass die Presse geschlafen hat, aber dem ist nicht so.
Torvalds hat Ende Mai quasi über Nacht beschlossen, die Versionierung zu ändern. Erstens würde eine 3.0 gut zum nahenden 20. Geburtstag von Linux passen. Zweitens findet der Linux-Vater, dass 39 Ausgaben für die 2.6.x-Serie mehr als genug sind.
Somit ist es auch nicht besonders überraschend, dass es keine großen Änderungen oder revolutionäre Funktionen gibt. Wie Torvalds schreibt, ändert sich bis auf die üblichen Aktualisierungen nichts. Im Klartext heißt das, es wird die üblichen Fehlerverbesserungen und diverse Treiber-Updates geben, um neuere Hardware zu unterstützen. Ein paar nennenswerte Änderungen befinden sich trotzdem im Herzstück des Linux Kernel 3.0.
Neuerungen und erwähnenswerte Verbesserungen
Interessant sind die Verbesserungen in den Dateisystem-Modulen ext4 und Btrfs. Einige Linux-Distributoren, darunter Fedora und Ubuntu, liebäugeln bereits mit Btrfs als Standard-Dateisystem. Gerade Geschwindigkeits-Verbesserungen im Dateisystem Btrfs könnten den Ausschlag geben, dass einige Distributionen künftig auf Btrfs als Dateisystem der Wahl setzen. Ebenso wurde eine automatische Defragmentierung für Btrfs eingepflegt. Auch das Erzeugen und Löschen von Dateien wurde aufgemöbelt. Bisher war Btrfs darin eher mittelmäßig, weil es mit vielen b+-Tree-Einträgen zu kämpfen hat. Diese Einträge kann das Dateisystem nun verzögern und somit lassen sich gewisse Aufgaben bündeln. Die Entwickler erreichen damit einen Geschwindigkeitsschub von bis zu 15 Prozent beim Erzeugen und 20 Prozent beim Löschen von Dateien.
Einen Performance-Schub könnte CleanCache mit sich bringen, das in Linux-Kernel 3.0 eingepflegt wurde. Hierbei handelt es sich um einen transzendenten Speicher, der von der VFS-Schicht genutzt wird. Die Effektivität des Page-Caching könnte sich bei vielen Arbeitslasten drastisch beschleunigen und die Kosten dafür wären vernachlässigbar. Zu der Thematik gibt es eine Dokumentation auf git.org, beziehungsweise im Kernel.
Weiterhin erwähnenswert ist, dass Linux-Kernel 3.0 endlich Unterstützung für Xen dom0 (initial domain) hat. Daran haben die Entwickler doch einige Zeit gearbeitet. Es sind zwar noch einige Arbeiten ausstehend, wie zum Beispiel Unterstützung für ACPI S3, S5 und 3D-Grafik, aber die Hauptkomponenten funktionieren alle. Sie finden eine ausführliche Abhandlung dieser Neuerung im Xen-Blog.
Recvmsg() und sendmsg() sind System-Aufrufe, um Daten via Netzwerk zu versenden oder zu empfangen. Mit der neu eingeführten Funktion sendmmsg() lassen sich sendmsg()-Aufrufe bündeln. Recvmmsg(), das Äquivalent für recvmsg(), wurde bereits in Kernel 2.6.33 eingeführt. In einem kleinen Benchmark-Test konnten die Entwickler eine Beschleunigung von 20 Prozent bei UDP und 30 Prozent beim Senden durch Raw Socket messen.
Unterstützung für „Wake on WLAN“ ist ebenfalls vorhanden. Der Rechner kann sich somit in einem Schlafmodus befinden, zum Beispiel über ACPI S3, aber die WLAN-Karte bleibt aktiv. Das heißt auch, dass diese mit einem Access-Point verbunden bleiben kann. Somit lässt sich der Rechner via drahtloser Netzwerkkarte wieder aufwecken.
In Sachen CIFS wurde auch nachgebessert und es gibt Unterstützung für das Einbinden von „Windows 2008 DFS“-Freigaben.
Was nicht ausgebessert wurde
Michael Larabel von Phoronix hat im Kernel 2.6.38, der auch in Ubuntu 11.04 „Natty Narwhal“ verwendet wird, eine böse Überraschung festgestellt. Auf tragbaren Rechnern verbrät der Kernel einiges an Akku-Leistung. Larabel fand heraus, dass dies mit einer Änderung in ASPM (Active-State Power Management für PCI Express) zusammenhängt. Sollten sich im System unbenutzte PCI-Express-Komponenten befinden, versorgt das System diese mit weniger Strom, was der Lebensdauer einer Akkuladung zu Gute kommt. Das BIOS muss dem Kernel aber mitteilen, ob ASPM unterstützt ist oder nicht. Laut Larabel sind viele BIOSe falsch konfiguriert. Sie unterstützen ASPM zwar, teilen dies aber nicht korrekt über die BIOS ACPI FADT (Fixed ACPI Description Table) mit.
Leider wurde dieser Umstand in Linux-Kernel 3.0 nicht beseitigt und es scheint, als würde auch der kommende Linux-Kernel 3.0 unter diesem Missstand leiden. Der Stromhunger macht laut Messungen von Phoronix zehn bis 40 Prozent kürzere Akkulaufzeiten aus.
Microsoft führt anscheinend Extra-Prüfungen durch, ob Windows ASPM behandeln soll oder nicht. Linux-Anwender könnten ASPM derzeit höchstens manuell mit dem GRUB-Eintrag pcie_aspm=force erzwingen. Wie Sie das unter GRUB 2 bewerkstelligen, finden Sie hier. Diese Änderung geschieht natürlich auf eigene Gefahr.
Mit 3.0 wieder RT-Kernel verfügbar
Das hängt zwar nur indirekt mit dem Vanilla-Kernel 3.0 zusammen, ist aber trotzdem ein paar Zeilen wert. Der Real-Time-Kernel wurde für einige Kernel-Ausgaben nicht aktualisiert. Dieser Umstand gilt für 3.0 nicht mehr. Thomas Gleixner hat ein RT-Patch-Set für Linux-Kernel 3.0 zur Verfügung gestellt.
Ausblick auf Linux-Kernel 3.1
Mit der Ankündigung von Kernel 3.0 hat Linus Torvalds gleichzeitig das Merge-Fenster für 3.1 geöffnet. Dieses bleibt unter Umständen etwas länger als geplant offen, weil es in Torvalds Jahresurlaub fällt. Er würde es laut eigener Aussage bevorzugen, alle Änderungen (Pulls) in zwei Wochen unter Dach und Fach gebracht zu haben.
Eine erste recht interessante neue Funktion wurde bereits abgesegnet. Linux-Kernel 3.1 wird einen Treiber für die Bluetooth-betriebenen Controller der Nintendo Wii (Wiimote) erhalten. Eine Benutzung war schon länger möglich, allerdings mussten Anwender selbst Hand anlegen und die entsprechenden Treiber einspielen. Die Wiimote lässt sich damit als Eingabegerät benutzen. Zusätzlich wird Kernel 3.1 die Stati der vier LEDs auslesen können. Was man damit anstellen kann, bleibt der Fantasie der Entwickler überlassen.
Fazit
Im Prinzip ist Linux Kernel 3.0 nicht die spannendste Kernel-Ausgabe, die es je gegeben hat, bringt aber dennoch einige Vorzüge mit sich. Das gilt vor allen Dingen für Anwender des Dateisystems Btrfs.
Wer den neuesten Kernel selbst kompilieren und einsetzen möchte, findet den Quellcode wie üblich unter kernel.org. Kommende Linux-Distributionen werden Kernel 3.0 ebenfalls einsetzen. Wer damit experimentieren möchte, kann das zum Beispiel mit einer Live-CD von openSUSE 12.1 Milestone 3 tun. Diese Testversion bringt Linux-Kernel 3.0-rc7 mit sich. Diese Ausgabe ist der letzte Release-Kandidat vor der finalen Version und sollte somit ziemlich nahe am finalen Produkt sein.