Verbesserungen allerorten – Die Neuerungen von Linux 2.6.25

Seite 2: WLAN, Ext4, Scheduler

Inhaltsverzeichnis

Nach der Aufnahme von sieben neuen WLAN-Treibern in Linux 2.6.24 bringt die Kernel-Version 2.6.25 erneut eine Vielzahl weiterer wichtiger Verbesserungen für WLAN-Hardware mit. So integrierten die Entwickler etwa den Treiber ath5k für Atheros-Hardware – so manche Linux-Anwender schätzen Chips dieses Herstellers, da das Madwifi-Projekt für diese seit vielen Jahren einen recht ordentlichen Linux-Treiber bereitstellt.

Entwicklungslinien des Linux-Kernels Die Kernel-Hacker entwickeln den Linux-Kernel im Rahmen der 2.6-Serie stetig weiter. Dabei scheuen sie auch nicht vor umfangreichen Änderungen zurück. Es wird daher auf absehbare Zeit keinen 2.7-Entwicklerzweig geben, aus dem irgendwann ein Linux 2.8.0 oder 3.0.0 hervorgeht, wie Linux 2.6.0 aus dem 2.5-Entwicklerzweig entstand; stattdessen pflegen die Entwickler mehrere Kernel-Serien für verschiedene Anwenderkreise parallel. Die Hauptentwicklungslinie stellen die Versionen mit drei durch Punkte getrennten Nummern (2.6.x, also etwa 2.6.24) dar. Parallel zur Hauptentwicklung pflegen die Verwalter der Stable-Kernel-Serie die beiden jeweils neusten Versionen der Hauptentwicklungslinie weiter und kennzeichnen die Überarbeitungen durch eine zusätzliche Zahl (2.6.x.y, beispielsweise 2.6.22.10 oder 2.6.23.8). (...mehr...)

Der Madwifi-Treiber steht unter einer Open-Source-Lizenz, nutzt aber ähnlich wie die Kernel-Module der proprietären AMD- und Nvidia-Grafiktreiber einen nicht offen liegenden Kern – dessen Code wird in das Modul eingebaut und auf dem Prozessor des Systems ausgeführt. Das ist der für viele Open-Source-Entwickler der entscheidende Unterschied zu der von vielen andere WLAN-Treibern benötigten und meist ebenfalls nicht quelloffenen WLAN-Firmware, die lediglich auf den WLAN-Chip geladen und dort ausgeführt wird und nicht im Kontext im Linux-Kernels läuft.

Die Linux-Kernel-Entwickler und ausschließlich auf Open-Source-Software setzenden Linux-Distributionen integrierten den Madwifi-Treiber aufgrund des proprietären Kerns nicht. Der vom OpenBSD-Projekt gestartete und zwischenzeitlich auf den MAC80211-WLAN-Stack von Linux portierte Ath5k-Treiber hingegen kam für die Kernel-Entwickler in Frage, da er komplett einer Open-Source-Lizenz unterliegt; Ath5k unterstützt allerdings einige der neueren Atheros-WLAN-Chips (noch) nicht, mit denen der Madwifi-Treiber zusammenarbeitet. Die Madwifi-Entwicklung verläuft allerdings mittlerweile auf Sparflamme, da sich das Projekt und seine Entwickler jetzt vornehmlich auf Ath5k konzentrieren.

Mit rtl8180 stößt ein weiterer WLAN-Treiber für verbreitete WLAN-Hardware neu zum Linux-Kernel hinzu; der Treiber eignet sich für die von verschiedenen Herstellern eingesetzten WLAN-Chips RTL8180 und RTL8185 von Realtek. Ferner überarbeiten die Entwickler den Netzwerktreiber für die Playstation 3 (PS3), sodass er jetzt auch die WLAN-Chip der teilweise mit WLAN ausgerüsteten Spielkonsolen unterstützt (1, 2). Neu dabei ist der Treiber rndis_wlan für Rndis-WLAN-Chips wie den Broadcom 4320, der unter anderem in WLAN-Hardware von Asus, Linksys oder U.S. Robotics steckt. Ebenfalls stark überarbeitet sowie auf den WLAN-Stack MAC80211 portiert wurde der Treiber zd1211rw für WLAN-Chips von ZyDAS, den ebenfalls verschiedene Hardware-Hersteller einsetzen. Am noch jungen WLAN-Stack sowie den meisten der sieben mit Linux 2.6.24 integrierten WLAN-Treiber gab es zahlreiche Verbesserungen; einige von ihnen sorgen für Unterstützung der 802.11n-Übertragungsmodi im nun nicht mehr als experimentell gekennzeichneten WLAN-Stack (1, 2, 3, 4, 5, 6) und in den Treibern für Intels WLAN-Modul IPW4965 (1, 2, 3, 4, 5, 6, 7).

Das Ext4-Dateisystem – designierter und mit Linux 2.6.19 zu Test- und Entwicklungszwecken integrierter Nachfolger von Ext3 – erfuhr eine ganze Reihe von Neuerungen mit 2.6.24. Der Multi Block Allocator etwa soll die Performance verbessern, während der Kernel über Prüfsummen nun die Integrität des Journals sicherstellt, damit nach einem Systemabsturz beim Recovery-Vorgang keine fehlerhaften Daten auf der Platte landen.

Das On-Disk-Format von Ext4 soll mit diesen und einigen der anderen in 2.6.25 integrierten Änderungen (etwa Unterstützung größerer Dateien, Unterstützung für Blockgrößen bis zur PAGESIZE, 48 bit inode i_blocks oder inode version support) nun feststehen – mit dem Dateisystem experimentierten Anwender müssen daher nicht mehr ab und an die Daten vorübergehend auslagern, um das Volume für eine überarbeitete Ext4-Variante neu zu formatieren. Hundertprozentig ausschließen wollte der Ext4-Betreuer Theodore Ts'o weitere Änderungen aber nicht. Vom Einsatz auf Produktivsystemen raten die Ext4-Programmierer daher weiterhin ab; in der Ende April erwarteten Linux-Distribution Fedora 9 soll sich das neue Dateisystem allerdings bereits zu Testzwecken nutzen lassen, wenn man dem Installer den Parameter "ext4" übergibt.

Abgeschlossen ist die Ext4-Entwicklung auch nach diesen Änderungen noch nicht; mit einem Online-Defragmentierer und Delayed Allocation stehen weitere Verbesserungen am noch jungen Dateisystem auf der To-do-Liste, die aber wahrscheinlich keine Änderungen an den Datenstrukturen auf der Platte mit sich bringen werden.

Abermals überarbeitet und um neue Funktionen erweitert wurde der mit Linux 2.6.23 integrierte und bereits mit 2.6.24 weiter verbesserte Completely Fair Scheduler (CFS). Auf Desktop-Systemen dürfte man von vielen der Neuerungen aber nicht allzu viel merken, da sich viele der behobenen und teilweise Performance-relevanten Probleme nur in ungewöhnlichen Konfigurationen zeigten. Zu den weiteren Optimierungen zählen ein besseres Handling von Realtime-Tasks (1, 2, 3, 4), akkurateres Scheduling dank der exakter arbeitende High Resolution Timer und Optimierungen am noch recht neuen Group Scheduling (1, 2, 3, 4).

Der in Linux 2.6.25 enthaltene CFS bringt zudem erstmals Unterstützung für das Anfang dieses Jahres vorgestellte Programm LatencyTop mit – mit ihm und Kernel 2.6.25 kann man so in Zukunft grob verfolgen, in welchen Code-Bereichen der Linux-Kernel während der Abarbeitung einer Aufgabe am meisten Zeit verbringt. So kann man das System über zur Laufzeit veränderbare Einstellmöglichkeiten oder Änderungen am Quellcode selbst gezielt optimieren, falls etwa eine Server-Software bei bestimmten Aufgaben nicht schnell genug reagiert oder bei der Videowiedergabe und -bearbeitung Ruckler entstehen. Welchen positive Nutzen die Verfügbarkeit solcher Diagnose-Software hat, zeigte im vergangenen Jahr das ebenfalls von Intel-Programmierern entwickelte Programm Powertop. Mit dessen Hilfe durchforsteten einige Distributionen ihre kompletten Software-Ausstattung, um Programme zu finden und zu korrigieren, die der CPU unnötig Arbeit machen und so die Leistungsaufnahme erhöhten.