Zum Hauptinhalt Zur Navigation

Linux-Kernel 2.6.25 erweitert Scheduler

Neue Architektur wird unterstützt, Madwifi-Nachfolger integriert. Wieder einmal ist es so weit: Linus Torvalds hat eine neue Version des Linux-Kernels freigegeben. In der Version 2.6.25 kommen neue Funktionen hinzu, von denen Virtualisierungslösungen profitieren und der mit dem Linux-Kernel 2.6.23 eingeführte neue Scheduler wurde erweitert. Der Entwicklungsprozess wirft zudem die Frage auf, wie es mit externen Kernel-Komponenten weitergeht, die nicht unter der GPL stehen.
/ Julius Stiebert
54 Kommentare News folgen (öffnet im neuen Fenster)

Der Linux-Kernel 2.6.23 brachte erstmals den neuen Completely Fair Scheduler (CFS) von Ingo Molnar mit. Darin werden viele, in den letzten Jahren vorgeschlagene, Verbesserungen für den zeitgesteuerten Prozessablauf vereint. Dazu zählen hierarchisch aufgebaute Klassen, die Regeln zur Steuerung unterstützen. CFS verwendet zudem eine Nanosekunden-Granularität und ist unabhängig von Jiffies oder anderen Hz-Werten.

In Kernel 2.6.24 folgte dann die Möglichkeit zum "Fair Group Scheduling", um Prozessgruppen Prioritäten zuzuweisen, was auf Basis der User-ID erfolgt. Neu ist nun die Echtzeitfunktion ("Real Time Group Scheduling"), mit der sich RT-Prozessen garantierte Scheduling-Zeiten zuweisen lassen, was in erster Linie für den Enterprise-Einsatz interessant ist.

Auch die RCU-Preemption soll das Echtzeitverhalten von Linux weiter verbessern. RCU (Read-Copy-Update) ist ein Locking-Mechanismus, durch den Linux auf Systemen mit sehr vielen Prozessoren gut skaliert. Allerdings war RCU bisher eher nachteilig für Echtzeitaufgaben. Durch die nun enthaltenen Änderungen sollen jedoch die Ursachen für hohe Latenzzeiten eliminiert werden und so die Echtzeitfähigkeit erhöhen.

Passend dazu wurden die von Intel entwickelten LatencyTop -Patches aufgenommen. Stockende Audiowiedergabe und ruckelnde Videos sind Symptome, die auftreten, wenn ein Prozess auf eine noch nicht freigegebene Ressource wartet. Häufig stellt so etwas kein Problem dar, in manchen Bereichen, wie der Multimedia-Bearbeitung, können sie hingegen mehr als ärgerlich sein. Mit LatencyTop können Kernel-Entwickler Ursachen für hohe Latenzzeiten aufspüren, um diese zu beheben. Die zusätzlich nötigen Userspace-Tools stehen auf Intels Projektseite zum Download(öffnet im neuen Fenster) bereit.

Mit dem neuen "Memory Ressource Controller" lässt sich der Speicherbedarf einer Prozessgruppe vom Rest des Systems isolieren. Das kommt etwa Virtualisierungslösungen zugute, die so kontrollieren können, wie viel Speicher sie ihren virtuellen Instanzen zuweisen wollen. Aber auch beim Brennen einer CD kann hiermit der Speicher, der dem restlichen System zur Verfügung steht, festgelegt werden, damit der Brennvorgang nicht durch Speichermangel abbricht. Ebenso kann speicherhungrigen Anwendungen so zugewiesen werden, wie viel Systemspeicher sie maximal beanspruchen dürfen.

Mit SMACK (Simplified Mandatory Access Control Kernel for Linux) ist neben SELinux nun ein zweites Sicherheits-Framework im Kernel, das Mandatory Access Control(öffnet im neuen Fenster) (MAC) implementiert. Es verzichtet aber auf einige Teile, die SELinux einsetzt, wie rollenbasierte Zugriffskontrolle. SMACK ist somit auch nicht so mächtig wie SELinux, soll aber vor allem durch eine einfachere Konfiguration auffallen und ist damit eher für kleinere Sicherheitsprobleme gedacht.

Bei SMACK legt der Administrator Labels für Kernel-Objekte fest, die als erweitertes Dateisystemattribut gespeichert werden. Versucht ein Prozess darauf zuzugreifen, wird das Label verglichen - und standardmäßig nur der Zugriff erlaubt, wenn es passt.

Das direkt im Kernel-Zweig entwickelte Dateisystem Ext4 - der Nachfolger von Ext3 - erhielt ebenfalls ein Update. Hinzugekommen sind unter anderem die Large-File- und Large-Filesystem-Unterstützung sowie Prüfsummen für das Journal, in dem die Änderungen am Dateisystem protokolliert werden, um die Daten nach einem Absturz wieder herzustellen. Durch die neue Funktion wird vorher überprüft, ob das Journal noch intakt ist. Hinzu kommen einige grundlegende Änderungen wie die Inode-Versionierung, durch die das On-Disk-Format nun komplett sein sollte.

Dennoch: Für den Produktiveinsatz ist Ext4 derzeit noch nicht geeignet und es wird wohl auch noch eine Weile dauern, bis es so weit ist. Die Ende April 2008 erscheinende Linux-Distribution Fedora 9 wird trotzdem schon eine Vorschau auf Ext4 enthalten, so dass Anwender das neue Dateisystem einfach ausprobieren können.

Unterstützt wird nun auch die MEI/Panasonic-Architektur MN10300/AM33, wobei verschiedene Boards, aber bisher nur der Prozessor MN103E010 laufen.

Während ACPI nun die Wärmeregelung durch die Kontrolle verschiedener Geräte, wie der Lüfter, beherrschen soll, unterstützt nun auch der Grafiktreiber i915 Resume und Suspend. Damit soll der Treiber die Energiesparmodi auch korrekt umsetzen, wenn kein X-Server läuft. Ferner können durch den Radeon-Treiber nun Karten mit r500- und rs690-Chips den Direct Rendering Manager (DRM) verwenden, um zumindest 2D-Beschleunigung zu erhalten. Die Entwicklung steht hier noch am Anfang, in Zukunft sind weitere Fortschritte zu erwarten.

Wie üblich sind einige neue Treiber in den Kernel eingeflossen. Etwa für ENC28J60- und RDC-R6040-Netzwerkkarten und für Marvell-6440-SAS/SATA-Chips. Darüber hinaus sind wieder einige neue Audiotreiber hinzugekommen, unter anderem für Asus VX1, RV610/RV630-HDMI-Audio und Dell-OEM-Laptops mit ALC268.

Freuen dürfte einige Anwender die Aufnahme des WLAN-Treibers Ath5k . Er ist der Nachfolger des bekannten Madwifi-Treibers für Atheros-Chips, der jedoch selbst durch seine Abhängigkeit von einem proprietären Modul nie in den Kernel gelangen konnte. Ath5k hingegen nutzt OpenHAL und ist GPL-lizenziert. Zudem ist der Treiber für rtl8180- und rtl8185-WLAN-Karten enthalten.

Spannend war es auch während der Kernel-Entwicklung. Die Programmierer integrierten nämlich einen Patch, der nur noch GPL-lizenzierter Software den Zugriff auf das USB-System im Kernel gibt . Das führte beispielsweise dazu, dass sich der Ndiswrapper, mit dem sich Windows-Netzwerktreiber laden lassen, nicht mehr nutzen ließ. Das funktioniert derzeit wieder, da die Entwickler doch noch eine Änderung am Kernel durchführten. Der Ndiswrapper selbst ist nämlich GPL-kompatibel, ruft dann aber die Windows-Treiber auf, die natürlich nicht der GPL unterliegen. Nach Ansicht der Kernel-Programmierer liegt so jedoch kein Lizenzverstoß vor. Über den Entwickler-Kernel stolperten allerdings auch Nvidias Grafiktreiber, da die Schnittstelle init_mm zeitweise nicht mehr exportiert wurde. Das wirft zunehmend die Frage auf, wie es für Closed-Source-Treiber weitergeht.

Das USB-System ist für solche Treiber nun schon tabu, in der nächsten Version könnte es auch endgültig die proprietären Grafiktreiber treffen. Greg Kroah-Hartman macht sich dafür jedenfalls weiterhin stark. Die Vorgehensweise beim Ndiswrapper könnte den Herstellern aber weiter freie Hand gewähren - indem sie einen Lader unter der GPL veröffentlichen würden, der schließlich den eigentlichen Treiber aufruft, der weiter nur binär vorliegt.

Der Linux-Kernel 2.6.25 steht wie gewohnt als komplettes Archiv(öffnet im neuen Fenster) und als Patch(öffnet im neuen Fenster) zum Download bereit. Auch auf diversen Mirror-Servern(öffnet im neuen Fenster) liegen die Dateien.


Relevante Themen