Viel bewegt – Die Neuerungen von Linux 2.6.27

Seite 3: Kernel-Infrastruktur

Inhaltsverzeichnis

Linux 2.6.27 bringt erstmals das für Flash-Speichermedien ohne Wear Leveling gedachte und auf die mit 2.6.22 eingeführten Unsorted Block Images (UBI) aufsetzende Dateisystem Ubifs (Commit, Dokumentation, Hintergrundartikel) mit. Das Ext4-Dateisystem beherrscht mit 2.6.27 nun erstmals Delayed Allocations (1, 2). Das soll die Performance steigern und eine Fragmentierung von Dateien eindämmen; eine detaillierte Beschreibung zu den Hintergründen dieser Technik findet sich in einem der zahlreichen Vorträge zum Linux-Kernel und dessen Umfeld des diesjährigen Ottawa Linux Symposium (OLS). Der Ext3-Nachfolger bleibt aber fürs Erste weiter als nicht für den Produktiveinsatz geeignetes Entwicklerdateisystem gekennzeichnet; lange dürfte das aber wohl nicht mehr so bleiben.

Linux-Kernel herunterladen Neue Linux-Versionen sind über die in Amerika und Europa stationierten Server von Kernel.org erhältlich; deren Inhalt spiegeln auch zahlreiche deutsche Mirror. Linux-Anwender, die sich nicht intensiv mit dem Kernel und dessen Umfeld beschäftigen, sollten neue Linux-Treiber und -Kernel aber normalerweise nicht auf eigene Faust einspielen, sondern auf die Vorarbeit der Linux-Distributoren zurückgreifen. (...mehr...)

Mit AXFS (Advanced XIP filesystem), btrfs und nilfs2 (New Implementation of a Log-structured Filesystem Version 2]) streben indes zahlreiche weitere für Flash-Medien, SSDs oder Festplatten optimierte Dateisysteme über kurz oder lang die Aufnahme in den Linux-Kernel an – zusammen mit anderen in Entwicklung befindlichen Dateisystemen wie Tux3 oder dem weiter vor sich hin köchelnden, aber nicht wieder richtig in Gang kommenden Reiser4 bieten die nächste Monate und Jahre damit genug Stoff für endlose Debatten und Geschwindigkeitstest für die immer wieder gern ausführlichst diskutierte Frage nach dem "besten Dateisystem".

Mehrere mit 2.6.27 integrierte Patches verändern die Handhabung der unter anderem von vielen LAN-, WLAN- und SCSI-Chips benötigten Firmware erheblich. Einige dieser Patches modifizieren vorwiegend ältere Treiber, sodass diese genau wie die meisten modernen Treiber die Firmware über den Firmware-Loader von Initrd oder aus dem Root-Dateisystem nachladen, statt die Firmware direkt in das Kernel-Modul oder den Kernel einzubinden – Letzteres lässt sich aber weiterhin konfigurieren. Durch andere Patches lassen sich die Firmware-Images nun jedoch auch an das Kernel-Image anhängen, damit speziell die früh im Bootvorgang benötigten Treiber diese nun auch über den Firmware-Loader nachfordern können, noch bevor Initrd oder Root-Dateisystem eingebunden sind; bislang mussten solche Treiber die Firmware direkt enthalten.

All diese Änderungen waren alles umstritten und resultierten in länglichen, teils hitzig geführten Diskussionen. Insbesondere die beiden Verwalter des Netzwerksubsystems und der Netzwerktreiber sträubten sich nachhaltig gegen die Änderungen, sodass Netzwerktreiber wie tg3 oder bnx2 vorerst weiter die Firmware direkt enthalten. Dadurch können Open-Source-Puristen und Linux-Distributionen auch in naher Zukunft wohl keinen universellen Kernel kompilieren, der zwar alle auf Firmware angewiesenen Treiber enthält, nicht aber die häufig nur als vorkompiliertes Binary ohne Quellcode erhältliche Firmware selbst – das hatten einige Open-Source-Verfechter auf einer Fedora-Mailingliste mehrfach lautstark gefordert und den früheren Red-Hat-Entwickler David Woodhouse schließlich zur Entwicklung der jetzt in den Hauptentwicklerzweig eingepflegten Änderungen bewogen.

Auch die die Treiber umgebenen Subsyssteme bieten einige neue Funktionen, auf die Anwender und Treiber-Programmierer in Zukunft zurückgreifen können. Neu in Linux 2.6.27 ist die vom Verwalter des Netzwerk-Subsystems David S. Miller größtenteils selbst programmierte "Linux TX Multiqueue Implementation". Durch sie bietet der Netzwerk-Stack nun grundlegende Funktionen für Netzwerk-Hardware mit mehreren Transmit Queues. Viele der modernen WLAN-Chips bieten sie, um etwa Video- oder Audio-Daten bevorzugt zu übermitteln.

Umfangreiche Änderungen gab es bei der Infrastruktur rund um die Nutzung der Systemschlafzustände. Treiber können durch eine der Änderungen nun beim Wechsel in oder aus dem Bereitschaftsmodus (ACPI S3/Suspend to RAM) andere Arbeiten durchführen als vor oder nach der Nutzung des Ruhezustands (Hibernate/Suspend to Disk); das soll einige der grundlegenden Probleme rund um die beiden Schlafzustände beseitigen. Der bereits im Rahmen des heise-open-Artikels "Tiefe Einblicke – Informationen in den Vorträgen vom Ottawa Linux Symposium (OLS) 2008" erwähnte Vortrag "Suspend-to-RAM in Linux – State of the Union Address" beschreibt die Hintergründe für diese Änderungen und liefert einige weitere Informationen rund um ACPI und den Code zur Nutzung der Systemschlafzustände.

Auch den mit 2.6.27 aufgenommene "Block layer data integrity support" (Commit, Dokumentation, Hintergrundartikel) erklärt einer der OLS-Vorträge detailliert – durch diese Technik sollen insbesondere Storage-Controller für Server mit passendem Treiber besser sicherstellen können, ob Daten auch korrekt auf den Datenträgern landen. Das SCSI-Subsystem unterstützt dazu nun das SCSI disk (SBC) Data Integrity Field.

Zahlreiche Änderungen eliminieren Aufrufe des Big Kernel Lock (BKL) in den höheren Schichten des Kernels oder verlagern diese weiter nach unten – also beispielsweise aus den verschiedenen Treibersubsystemen in die Hardwaretreiber selbst. Letztere sollen sich dann möglichst individuell und nur wenn unbedingt nötig um die im Mehrprozessorbetrieb unerlässliche Absicherung kritischer Codebereiche kümmern. Durch dieses feiner abgestufte Locking soll der Kernel gerade auf Systemen mit vielen Prozessoren besser skalieren; aber auch auf Desktop-PCs dürften diese Änderungen ab und an Performance-Vorteile bieten. Langfristig wollen die Kernel-Entwickler das Big Kernel Lock komplett entfernen – die jetzt aufgenommenen Änderungen sind aber nur die ersten Schritte dieses Vorhabens, dessen komplette Umsetzung wohl mehrere Jahre in Anspruch nehmen dürfte.