Die Neuerungen von Linux 2.6.32
Unter den tausenden Neuerungen der jüngsten Kernel-Version stechen 3D-Unterstützung für neuere Radeon-Grafikchips, bessere Nutzung der Stromspartechniken moderner Hardware und zahlreiche Verbesserungen an KVM und Btrfs hervor. Durch verschiedene Optimierungen soll sich Linux 2.6.32 zudem schneller anfühlen.
- Thorsten Leemhuis
Knapp drei Monate nach der Freigabe des Linux-Kernel 2.6.31 hat Linus Torvalds nun die Entwicklung von Linux 2.6.32 abgeschlossen . Die neue Version wartet genau wie ihre Vorgänger der Hauptentwicklungslinie mit einer Unmenge von Neuerungen auf – so trägt die engere Zusammenarbeit zwischen AMDs Grafikchip-Abteilung und der Open-Source-Community weitere Früchte, denn Linux 2.6.32 ermöglicht 3D-Unterstützung und Kernel-based Mode-Setting (KMS) nun auch mit den verbreiteten Radeon-Karten der Serien 2000, 3000 und 4000.
Neu bei Linux 2.6.32 ist auch KSM (Kernel Samepage Merging), das identische Speicherbereiche in virtuellen Maschinen zusammenführt und so die Hardware effizienter nutzt. Dank devtmpfs soll der Linux-Kernel schneller starten und ohne Udev arbeiten – und durch neue Make-Targets können Tester in Zukunft recht einfach eine gut zum eigenen Systemen passende Kernel-Konfiguration erstellen.
Neu ist auch Unterstützung für Intels Moorestown-Plattform und deren ACPI-Alternative SFI sowie für ACPI 4.0 und die früher als "LaGrande" bezeichnete Trusted Execution Technology (TXT). Einige umfangreichere Änderungen am Power-Management-Code legen ferner die Basis zur besseren Nutzung der zur Laufzeit nutzbaren Stromsparmechanismen moderner I/O-Geräte. Verschiedene Optimierungen am Cpuidle-Framework, dem Block-Layer und Btrfs lassen zudem auf besseren Datendurchsatz hoffen. Mit Linux 2.6.32 sollen PCs aber nicht nur mehr Daten hin- und herschaufeln, sondern sich auch schneller anfühlen, denn einige andere Änderungen am Block-Layer und Modifikationen am Prozess Scheduler versprechen ein besseres Reaktionsvermögen.
Das folgende Kernel-Log bietet einen Überblick über diese und viele weitere Neuerungen der frisch erschienenen Linux-Version. Von denen profitieren über kurz oder lang auch Linux-Anwender, die sich sonst nicht weiter mit dem Kern ihres Linux-Distribution auseinander setzten, denn zukünftige Linux-Distributionen werden auf Linux 2.6.32 oder dessen Nachfolger einsetzen.
Grafik
Der Kernel und sein Direct Rendering Manager (DRM) beherrschen mit 2.6.32 nun 3D-Unterstützung und Kernel-based Mode-Setting (KMS) auch mit den AMD-GPUs der Baureihen R600 und R700. Die kommt in den Radeon-Modellen der Serien 2000, 3000 und 4000 zum Einsatz – also bei den meisten der in den letzten zwei bis drei Jahren verkauften Radeon-Grafikkarten sowie verschiedenen AMD-Mainboard-Chipsätzen der 700er-Baureihe. Damit 3D-Unterstützung und KMS funktionieren, sind allerdings darauf abgestimmte (Entwickler-)Versionen von Libdrm und Mesa 3D sowie dazu passende Radeon-Grafiktreiber für X.org erforderlich. Diesen Software-Stack passend zusammenzustellen erfordert fortgeschrittene Kenntnisse der Materie und einige Arbeit – das kürzlich veröffentlichte Fedora 12 bringt alles Nötige bereits mit, nur die experimentelle Mesa-Unterstützung muss man über die Paket-Depots der Distribution noch nachinstallieren.
Über den Parameter "video=" kann man dem KMS-Code zukünftig eine bestimmte Ausgabe-Bildschirmauflösung für einzelne oder alle Monitore vorgeben. Der Intel-KMS-Code komprimiert nun den Framebuffer-Speicher, was die Leistungsaufnahme laut den Entwicklern um bis zu 0,5 Watt senkt; die neue dynamische Taktanpassung ("Dynamic Clock Frequency Control") soll bei unbelastetem System die Stromaufnahme durch Senken der LCD-Bildwiederholrate, Self-Memory-Refresh und Taktreduzierung weiter vermindern und so die Akku-Laufzeit von Net- und Notebooks verlängern.
Aufgenommen haben die Kernel-Hacker auch die VGA-Arbitration-Patches (1, 2, Dokumentation). Bei Systemen mit mehreren Grafikkarten stellen sie zusammen mit einem X-Server ab Version 1.7 sicher, dass die jeweils richtige Grafikkarte die ihr zugedachten VGA-Kommandos des X-Servers auch erhält – das soll deutlich mehr Flexibilität beim Aufsetzen von Multiseat-Umgebungen ermöglichen.
Dateisysteme, Block-Layer, Devtmpfs
Dateisysteme
Btrfs, das noch experimentelle "Next Generation File System for Linux", soll auf schneller Hardware nun mehr als 1 Gigabyte Daten pro Sekunde schreiben können. Auf einem für Test herangezogenen Server liegt es dadurch nun auf dem Niveau von XFS – zuvor hatte Btrfs nur rund 400 Megabyte Daten pro Sekunde übertragen, da es die CPU voll auslastete. Btrfs reserveriert bei Delayed Allocations jetzt zuverlässig ausreichend Speicherplatz für die zu erwartenden Metadaten. Neu dabei ist noch experimenteller Code für "Discard-Operationen", über die das Dateisystem SSDs langfristig mitteilen soll, welche Blöcke durch das Löschen von Dateien frei wurden – die dazu nötige Unterstützung in den SCSI- und Libata-Subsystemen ist allerdings noch in Arbeit, könnte aber bei 2.6.33 in den Kernel einziehen
Über Theodore Ts'o fanden zahlreiche Änderungen an Ext3 und Ext4 den Weg in den Hauptentwicklungszweig (1, 2). Eine von ihnen soll den Benchmark "fs_mark" in bestimmten Konfigurationen um fünfzig Prozent beschleunigen. Den seit längerem in Entwicklung befindlichen Betriebsmodus "data=guarded" für das Ext3-Dateisystem ließen die Kernel-Hacker aber auch diesmal außen vor.
Informationsquelle Quellcodeverwaltung
Viele der Links im Artikel verweisen auf den für die Neuerung jeweils relevanten Commit im Web-Frontend des von Linus Torvalds mit Git verwalteten Linux-Quellcodes. Dort finden sich viele weitere Informationen zur jeweiligen Änderungen – speziell der Commit-Kommentar im oberen Bereich der vom Git-Web-Frontend angezeigten Webseite ist häufig eine überaus ergiebige Quelle für weitere Informationen, denn dort erklärt der Autor des Patches normalerweise die Hintergründe der Änderungen und deren (erhoffte) Auswirkung. Gelegentlich finden sich dort auch Benchmark-Ergebnisse oder Verweise auf weitere Informationsquellen.
Auf den Commit-Kommentar folgt eine Auflistung der durch den Patch veränderten Dateien. Über den hinter dem Dateinamen zu findenden Link "patch" kann man sich anzeigen lassen, wie der Commit die Datei verändert; "history" zeigt frühere Änderungen der Datei an. Unter der Auflistung finden sich alle im Rahmen des Commits durchgeführten Änderungen im Unified-diff-Format. Dabei handelt es sich Größtenteils um Quellcode-Modifikationen – es sind aber nicht selten auch Anpassungen an Dokumentation oder Code-Kommentaren darunter, daher sind finden dort auch Anwender oder Programmierkenntnisse viele hilfreiche Informationen.
Der VFAT-Code des Kernels bindet FAT-Datenträger zukünftig nicht mehr mit dem bislang durch die Mount-Option "shortname=lower" aktivierten Verhalten ein, sondern verwendet stattdessen nun "shortname=mixed". Dadurch soll sich die Groß-/Kleinschreibung von Dateinamen beim Kopieren mit Linux nicht mehr wie bisher verändern.
Block-Layer
Der von vielen Distributionen verwendende I/O-Scheduler CFQ (Completely Fair Queuing) optimiert die Anfragen nun für kurze Reaktionszeiten. Dadurch sollen Desktop-Anwendungen nicht mehr so stark von im Hintergrund laufenden Programmen, die größere Mengen Daten verarbeiten, abgebremst werden und sich so schneller anfühlen. Manche Zugriffsmuster arbeiten durch das neue Verhalten aber etwas langsamer, daher kann man den Low-Latency-Mode von CFQ via Sysfs deaktivieren.
Der für den Block-Layer zuständige Jens Axboe brachte zudem eine größere, über Monate erarbeitete Überarbeitung der Writeback-Infrastruktur ein. Durch sie kümmert sich nun um jeden Datenträger ein eigener Thread. Durch diese und andere Änderungen soll der Datendurchsatz bei Writeback-lastigen Zugriffsszenarien deutlich steigen und gleichmäßiger verlaufen, was der Entwickler mit zwei Benchmark-Grafiken und einigen Messwerten im Commit-Kommentar unterstreicht. Das neu aufgenommene blk-iopoll soll ferner den maximalen Datendurchsatz durch das Reduzieren von IRQs mit einen NAPI-ähnlichen Ansatz steigern.
Devfs im zweiter Anlauf
Nach längeren Diskussionen im Sommer schaffte das gelegentlich als "Devfs 2.0" verspottete devtmpfs den Sprung in den Kernel. Mit seiner Hilfe kann der Kernel beim Start eine mit einem Device-Dateisystem bestückte RAM-Disk nun selbst anlegen und einbinden – das kann den Systemstart beschleunigen und ermöglicht das Booten ohne eine mit Udev bestückte Initrd.
Das sind aber nur einige der Vorteile des in einem älteren LWN.net-Artikel näher erläuterten devtmps, das von manchen Kernel-Entwicklern allerdings heftig kritisiert wurde. Torvalds gefiel an dem Konzept jedoch, dass der Kernel nun alles zum Systemstart Benötige selbst erledigen kann.
Virtualisierung, Architektur-Code, Power-Management
Virtualisierung und Memory-Management
KVM unterstützt jetzt den "unrestricted guest"-Modus von Intels nächster Generation von Desktop- und Notebook-Prozessoren (Westmere), die Anfang 2010 unter Produktnamen wie Core i3 oder Core i5 in den Handel kommen sollen. Der Haupt-Git-Pull-Request von KVM-Entwickler Avi Kivity erläutert einige weitere Verbesserungen für KVM – darunter bessere Möglichkeiten zum Tracing und die Eventfd-basierten Mechanismen zum Verbinden von User- und Kernel-Software mit Gastsystemen über irqfd und ioeventfd.
Neu dabei ist auch das im Umfeld der KVM-Entwickler entstandene KSM. Das Kürzel steht für "Kernel Shared Memory" oder "Kernel SamePage Merging" und bezeichnet ein Framework, das den Speicher mehrerer Userland-Prozesse nach identischen Bereichen absucht; findet es welche, führt es sie zusammen und reduziert durch Freigabe der nun unnützen Kopien den Speicherverbrauch. Das ist etwa bei der Virtualisierung mit KVM interessant, wenn mehrere ähnliche Gastbetriebssysteme mit gleichen Software-Bibliotheken und Programmen auf einem Rechner laufen und dadurch größere Teile der im Arbeitsspeicher der Gäste gespeicherten Daten identisch sind. Der Artikel zum Linux Symposiums 2009 und die dort verlinkte Textfassung eines OLS-2009-Vortrags erläutern die Technik näher.
Durch das neue und von Intel-Entwickler Andi Kleen eingebrachte HWPOISON unterstützt der Linux-Kernel 2.6.32 außerdem einige der Techniken zur Behandlung und Umgehung von Speicherfehlern, die die Anfang 2010 erwarteten Server-Prozessoren aus Intels Nehalem-EX-Reihe bieten sollen.
X86-Systeme, Tracing
Neu zum Kernel gestoßen ist Unterstützung für Intels früher als LaGrande Technology bezeichnete Trusted Execution Technology (TXT). Vor dem Ausführen des Kernels können TXT-Systeme zusammen mit den Komponenten des Projekts Trusted Boot (tboot) sicherstellen, dass der Kernel nicht von einem Angreifer modifiziert wurde.
Der Linux-Kernel lässt sich beim Kompilieren nun speziell für Atom-CPUs optimieren. Die Kernel-Hacker haben außerdem die Unterstützung für Intels Simple Firmware Interface (SFI) integriert. Dabei handelt es sich um eine von Intel entwickelte ACPI-Alternative, die bei der für Smartphones, Mobile Internet Devices (MIDs) und Embedded-Umgebungen gedachten Moorestown-Plattform zum Einsatz kommen soll.
Im Detail
Einen detaillierteren Überblick über die Änderungen der Linux-Version 2.6.32 hat das Kernel-Log bereits in den vergangenen Wochen im Rahmen der auf heise open veröffentlichten Mini-Serie "Was Linux 2.6.32 bringt" gegeben:
3. Storage-Hardware und Dateisysteme
5. Architektur-Code und Virtualisierung
Die wichtigsten Abschnitte der sechs Artikel bilden die Basis für die nebenstehende Übersicht der allerwichtigsten Neuerungen der Linux-Version 2.6.32. Die einzelnen Teile der Serie beschreiben einige Änderungen aber noch ausführlicher und erwähnen weitere, die vielleicht nicht ganz so wichtig, aber alles andere als unwichtig sind.
Außerdem finden sich am Ende jedes Artikels der Mini-Serie unter der Überschrift "Die kleinen Perlen" Listen mit etlichen weiteren Änderungen, die keine Erwähnung im Text fanden, aber für manche Anwender dennoch von großer Bedeutung sind. Der Artikel zu Treibern etwa verweist auf zahlreiche Patches, die die Unterstützung der Audio-Hardware verschiedener PC-, Notebook- und Mainboard-Modelle verbessern; in den Listen zu den Änderungen im V4L/DVB-Subsystem finden sich viele Produktnamen von TV-Hardware, die der Linux-Kernel nun ansteuert.
Die noch jungen Performance Counters wurden in Performance Events umbenannt, weil diese Bezeichnung besser zu dem in den vergangenen Monaten stark weiterentwickelten Code passe. Neu dabei ist Unterstützung für das maßgeblich von Arjan van de Ven entwickelte Timechart-Tool, mit dem sich zuvor mit "perf record" aufgezeichneter Traces zur einfacheren Analyse als SVG visualisieren lassen – van de Ven erklärt das ganze in seinem Blog detaillierter und zeigt dort verschiedene Einsatzmöglichkeiten.
Power-Management und Scheduling
Verschiedene Patches erweitern den Linux-Kernel um Unterstützung für ACPI 4.0. Einige umfangreichere Änderungen am Power-Management-Code legen ferner die Basis zur besseren Nutzung der zur Laufzeit verwendbaren Stromsparmechanismen moderner I/O-Geräte – Details dazu liefert ein LWN.net-Artikel. Eine ebenfalls bei LWN.net erläuterte Optimierung am Cpuidle-Framework soll vor allem bei größeren Servern den I/O-Durchsatz steigern – teilweise deutlich.
Einige Änderungen am für die Zuteilung von Prozessorzeit an Anwendungen zuständigen Scheduler beseitigen Schwächen, die bei Geschwindigkeitsvergleichen mit dem kürzlich von Con Kolivas veröffentlichten und unabhängig vom Kernel entwickelten BFS ("Brain Fuck Scheduler") gefunden wurden. Darunter eine, die das Encoding mit x264 auf Mehrkern-Systemen erheblich verlangsamt hat – einer der x264-Entwickler erläutert die Hintergründe näher in seinem Blog und nutzt das für einige Empfehlungen zur besseren Zusammenarbeit zwischen Entwicklern.
Konfiguration, Storage, Audio und Video
Passend konfiguriert
Mit Hilfe des neuen Make-Target "localmodconfig" können Kernel-Tester nun relativ einfach eine zur eingesetzten verwendeten Distribution und Hardware passende Kernel-Konfiguration erstellen, bei der keine unnötigen Module kompiliert werden. Als Ausgangsbasis dient die Konfigurationsdatei des gerade laufenden Kernels; jedoch werden alle Module deaktiviert, die zu diesem Zeitpunkt nicht geladen sind.
Daher fehlen möglicherweise Treiber für Geräte, die beim Aufruf von Make nicht angeschlossen sind – etwa USB-Hardware. Tester könnten so aber beim Erstellen eines Kernels viel Zeit sparen, wie der für diese Änderungen zuständige Kernel-Hacker Steven Rostedt in seinem Git-Pull-Request erläutert. Dort erklärt Rostedt auch die Funktionsweise und das Make-Target "localyesconfig", das eine Kernel-Konfiguration erzeugt, bei der alle zum Aufrufzeitpunkt geladenen Module fest einkompiliert werden.
Storage
Über das Sysfs lassen sich zukünftig einige Informationen zu den AHCI-Fähigkeiten auslesen – etwa ob ein Port Hotplug-fähig ist oder ob es sich um einen eSATA-Anschluss handelt. Userspace-Anwendungen sollen mit diesen Informationen bessere Entscheidungen über das optimale Verhalten treffen können – etwa bei der Konfiguration von ALPM (Agressive Link Power Management). Neu dabei ist auch Unterstützung für die AMD-Southbridge SB900 – bis AMD diese einführt, dürften nach derzeitigem Kenntnisstand allerdings noch mehrere Monate vergehen.
Zum SCSI-Subsystem stieß mit einem über 1,4 MByte großen Patch der Treiber bfa für FC- und FCOE-Host-Adapter von Brocade. Neu sind ebenfalls die Treiber be2iscsi für die iSCSI-Funktion des BladeEngine 2 genannten 10Gbps-Storage-Adapter von ServerEngines sowie pmcraid für die von PMC Sierra gefertigten 6Gb/s-SAS-Adapter der MaxRAID-Serie.
Im MD-Code und einigen anderen Subsystemen des Kernels gab es verschiedene Änderungen, um die Berechnungen für RAID der Level 6 besser auf dafür ausgelegte Hardware auslagern zu können. Es gab zudem viele Änderungen am noch jungen MD-Code, der verschiedene Aus- und Umbaumöglichkeiten von Software-RAIDs unterstützt – etwa das Umwandeln eines RAID 1 in ein RAID 5 und von da in ein RAID 6 und wieder zurück. Anstoßen lassen sich solche Aufgaben mit Mdadm-Versionen der Reihe 3.1.
Audio und Video
Die Audio-Treiber des Kernels sind nun auf dem Niveau von Alsa 1.0.21. Der Treiber für HD-Audio-Hardware unterstützt nun eine Art "Firmware", mit der man dem Treiber Hardware-spezifische Sonderbehandlungen ("quirks") mitteilen kann, falls das BIOS nicht genügend oder inkorrekte Informationen zur Konfiguration des Codec übermittelt. Viele Verbesserung gab es zur Audio-Codec-Konfiguration bei Notebooks von Dell und HP; auch Realtek-Codecs sollen die Sound-Treiber nun zuverlässiger konfigurieren. Einige Verbesserungen gab es zudem beim Treiber für die auf LGA1156-Boards verbauten Intel-Chipsätze (P55/IbexPeak).
Zum V4L/DVB-Subsystem stieß der Treiber cx25821 für auf dem gleichnamigen Chip basierende TV-Karten. Ebenfalls neu dabei ist der Treiber saa7164 für den Chip der Hauppauge-HVR-Modelle 2200 und 2250. Der Treiber uvcvideo für USB-Webcams, die nach der USB Device Class Definition for Video Devices arbeiten, verarbeitet nun auch mehrere Eingabeströme parallel (1, 2). Programmierer finden in der Kernel-Dokumentation nun API-Informationen zum V4L/DVB-Subsystem im Docbook-Format. Zudem haben die Entwickler den Code zur Unterstützung von Infrarot-Fernbedienungen renoviert und dabei einige bisher Treiber-spezifische Keymappings vereinheitlicht.
Netzwerk, Staging-Treiber und der Rest
Netzwerk
Die Kernel-Hacker haben den Treiber vmxnet3 in den Hauptentwicklungszweig aufgenommen. Er versteht sich mit dem "vmxnet3 virtual ethernet NIC" – einem Netzwerkadapter, den einige Virtualisierungslösungen von VMware emulierten. Der für neuere Realtek-Netzwerk-Hardware zuständige Treiber r8169 unterstützt nun auch den Chip RTL8168D. Btusb beherrscht jetzt USB-Autosuspend – bei Bluetooth-USB-Chips, die kein Remote Wakeup unterstützen, muss man das Interfaces allerdings herunterfahren, damit die Stromsparmechanismen zum Zuge kommen. Der neue Linux-Kernel bietet zudem Infrastruktur, um mit dem Programm ethtool die Firmware von Netzwerk-Chips zu aktualisieren ("flashen"). Außerdem integrierten die Kernel-Entwickler mehrere mISDN-Treiber.
Im WLAN-Treiber p54 haben die Entwickler die Unterstützung für einige zuvor ungenutzte Stromsparmechanismen aktiviert. Um einen vermutlich von Hard- oder Firmware verursachten Fehler zu umgehen, haben die Entwickler an anderer Stelle genau das Gegenteil gemacht und einige der Stromsparfunktionen im für Intels Wireless WiFi Link 4965AGN zuständigen Treiber iwl4965 deaktiviert. Die Entwickler wissen noch nicht, ob sie die Stromsparfunktionen je wieder werden aktivieren können. Die Kernel-Hacker verbesserten den Treiber für Intel-WLAN-Chips aber auch, denn mit Hilfe von pm_qos (Power Management Quality of Service) können diese nun besser entscheiden, wie tief sie die WLAN-Hardware schlafen legen.
Der MAC80211-WLAN-Stack kann in Zukunft im Hintergrund nach WLAN-Netzwerken scannen, sodass eine Verbindung mit dem AccessPoint weiter Daten überträgt. Dan Williams, Hauptentwickler des NetworkManager, hebt diese für standortbezogene Dienste oder Roaming interessante Funktion in einem Blog-Eintrag hervor.
Unreif
Wie schon bei den vorangegangenen Linux-Versionen gab es auch in diesem Entwicklungszyklus viele umfangreiche Änderungen im Staging-Zweig, der unreife, den Qualitätsansprüchen der Kernel-Hacker Entwickler nicht genügende Treiber aufnimmt. Sie sind der Hauptgrund, warum derzeit bei jeder neuen Kernel-Version deutlich mehr Zeilen Quellcode neu zum Kernel stoßen oder rausfliegen als vor ein oder zwei Jahren. Satte 3,5 MByte groß ist allein der Patch, der den Treiber RT3090 für den gleichnamigen WLAN-Chips von Ralink nachrüstet; auf über 2 MByte beläuft sich der Commit, der einen Treiber für den Realtek-WLAN-Chip 8192 einbindet.
Linux-Kernel herunterladen
Neue Linux-Versionen sind über die in Server von Kernel.org erhältlich; deren Inhalte spiegeln auch zahlreiche Mirror in Deutschland, Österreich und der Schweiz. 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 Kernel der Linux-Distributoren zurückgreifen. (...mehr...)
Wie erwartet haben die Kernel-Entwickler die kürzlich unter der GPL freigegebenen Hyper-V-Treiber von Microsoft in den Staging-Bereich aufgenommen. Linux-Gastsysteme können mit ihnen die Hardware-Emulation beim Betrieb unter einigen Microsoft-Virtualisierungslösungen teilweise umgehen und so deutlich bessere I/O-Performance erzielen. Nachdem die Microsoft-Entwickler wieder aktiv sind, ist es unwahrscheinlich, dass die Treiber bei 2.6.33 schon wieder rausfliegen – letzteres hatte der Verwalter des Staging-Bereiches vor einigen Wochen angedroht, weil er über einen längeren Zeitraum nichts von den Microsoft-Entwicklern gehört hatte.
Noch mehr
Die bei 2.6.31 aufgenommenen USB-3.0-Treiber sollen durch verschiedene in 2.6.32 eingeflossene Änderungen nun richtig rund laufen – einige dieser Patches waren zuvor auch schon in die Stable-Kernel der 2.6.31-Serie integriert worden, um deren USB-3.0-Unterstützung zu verbessern. Der Treiber thinkpad-acpi wurde erheblich überarbeitet – zu den Verbesserungen zählen die Unterstützung für Thinkpads mit einer neueren Firmware-Generation ("second-gen firmware") und bessere Koordination mit dem Userspace bei Lautstärke- und Helligkeitsregelung über Hotkeys.
Das Input-Subsystem für Eingabegeräte bringt nun einen Treiber für das Sentelic Finger Sensing Pad mit – ein Fingerabdrucksensor, der in einigen Geräten der Wind-Serie von MSI steckt. Erstmals Bestandteil des offiziellen Kernels ist auch ein Treiber für den von Winbond gefertigten Infrarot-Controller (CIR/Consumer IR) WPCD376I, der etwa auf dem DG45FC-Mainboard von Intel zum Einsatz kommt.
UIO (Userspace I/O) bietet nun einen generischen Treiber für PCI-2.3-Geräte – dessen Entwickler will ihn zusammen mit Qemu im Virtualisierungsumfeld einsetzen. Neu dabei ist ein I2C-Treiber für das generische, auf ACPI aufsetzende SMBus Control Method Interface (CMI).
Fazit, Daten und Zahlen, Ausblick auf 2.6.33
Summa summarum 2.6.32
Zu einer der wohl wichtigsten Änderungen der neuen Kernel-Version zählt die KMS- und 3D-Unterstützung für neuere Radeon-Grafikkarten. Insbesondere auf den 3D-Support dürfte mancher schon sehnlichst gewartet haben, nachdem AMD im Sommer 2007 die Zusammenarbeit mit Open-Source-Entwickler bei Grafiktreibern wieder intensiviert hat. Ein Wermutstropfen bleibt allerdings: AMD hat kürzlich die ersten Radeon-Grafikkarten der 5000er-Serie eingeführt, für die es mit Ausnahme des generischen VESA-Treibers bislang keine quelloffenen Treiber gibt.
Die bessere Radeon-Unterstützung ist aber keineswegs die einzig wichtige Neuerung von 2.6.32, denn auch Devtmpfs, die Optimierungen am Scheduler, die einfachere Konfiguration von Test-Kerneln, VGA-Arbitration, KSM und Timechart-Unterstützung stechen hervor. Zudem gibt es wie mit jeder neuen Kernel-Version einen Haufen neuer und verbesserter Treiber – durch sie dürften die Distributionen von morgen auf mehr Systemen denn zuvor runder laufen.
Wichtig sind auch die Fortschritte bei der Unterstützung der Stromsparmechanismen moderner Hardware. Jede für sich bringt zwar nur eher kleine, kaum spür- und schwer messbare Vorteile – zusammen mit früheren und zukünftigen Änderungen werden sie auf vielen Systemen aber doch einen signifikanten Unterschied machen. Das gilt ähnlich für die Änderungen jeder neue Kernel-Version der Hauptentwicklungsline, denn manche der Neuerungen erscheinen anfangs unscheinbar oder nicht sonderlich wichtig, sind auf lange Sicht gesehen dann aber doch von größerer Bedeutung. Ein gutes Beispiel dafür ist die Virtualisierungslösung KVM: Sie hat sich seit ihrer Aufnahme in den Linux-Kernel mit jeder neuen Version ein klein wenig verbessert und sich zwischenzeitlich so weit gemausert, dass bei Linux-Schwergewicht Red Hat mittlerweile das vor einigen Jahren Furore machende Xen als bevorzugte Virtualisierungstechnik ersetzt hat.
Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels
| Linux- Version | Anzahl Dateien¹ |
Zeilen Quelltext² (Ohne Dokum.) |
Entwicklungs- zeitraum | Anzahl Commits³ | Diffstat⁴ |
| 2.6.26 | 24270 |
9411724 (8535933) |
88 Tage | 9941 |
8676 files changed, 595393 insertions(+), 416143 deletions(-) |
| 2.6.27 | 24354 |
9709868 (8690888) |
88 Tage | 10628 |
15127 files changed, 1131171 insertions(+), 912939 deletions(-) |
| 2.6.28 | 25255 |
10195507 (9128690) |
76 Tage | 9048 | 11090 files changed, 975689 insertions(+), 490047 deletions(-) |
| 2.6.29 | 26668 |
11010647 (9871260) |
89 Tage | 11718 | 10933 files changed, 1347290 insertions(+), 532055 deletions(-) |
| 2.6.30 | 27879 |
11637173 (10419567) |
78 Tage | 11989 | 10259 files changed, 1086737 insertions(+), 460298 deletions(-) |
| 2.6.31 | 29111 |
12046317 (10778469) |
92 Tage | 10883 | 8938 files changed, 914135 insertions(+), 504980 deletions(-) |
| 2.6.32 | 30485 |
12610030 (11242136) |
84 Tage | 10998 |
10315 files changed, 1092987 insertions(+), 530428 deletions(-) |
|
¹ find . -type f -not -regex '\./\.git/.*' | wc -l ² find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l (find . -name *.[hcS] -not -regex '\./\.git.*' | xargs cat | wc -l) ³ git-log --no-merges --pretty=oneline v2.6.(x-1)..v2.6.(x) | wc -l ⁴ git diff --shortstat v2.6.(x-1)..v2.6.(x) |
|||||
Kernel-Trends: Was 2.6.33 bringt
Entwicklungszyklus des Linux-Kernels
Durch den öffentlichen Entwicklungsprozess (und einen tiefen Blick in den Kaffeesatz) können das Kernel-Log und der von der Linux-Foundation gewartete Radarschirm des Linux Weather Forecast bereits bei der Vorstellung einer neuen Kernel-Version einige Neuerungen benennen, die die darauffolgende Version mitbringen dürften. [...] (...mehr...)
Direkt nach der Fertigstellung von 2.6.32 beginnt nun das üblicherweise zwei Wochen lange Merge Window, in dem die Kernel-Entwickler den Großteil der Änderungen für die darauf folgende Kernel-Version in den Hauptentwicklungszweig integrieren. Für diese erste Phase im Entwicklungszyklus haben die Kernel-Hacker schon wieder zahlreiche, teilweise bereits erwähnte Änderungen vorbereitet.
Recht wahrscheinlich scheint die Integration von DRBD (Distributed Replicated Block Device), nachdem diese die Aufnahme bei 2.6.32 verpasst hat, Torvalds sich aber trotz aller Diskussionen um die Aufnahme der vor allem im High-Availability(HA)-Umfeld genutzte Replikationslösung bei 2.6.33 aussprach. Auch Code zur Unterstützung des insbesondere für SSDs interessanten ATA-Kommandos Trim ist für die Aufnahme bei der nächsten Kernel-Version vorbereitet – ebenso zahlreiche weitere Verbesserungen für KVM (1, 2).
Die rt2x00-Treiber für WLAN-Chipsätze für RaLink wollen die Kernel-Hacker um Unterstützung für neuere, bislang nur von Staging-Treibern angesproche WLAN-Chips erweitern. Auch einige Verbesserungen für die 3D- und KMS-Unterstützung neuerer Radeon-Karten stehen zur Aufnahme bereit. Und wie bei 2.6.32 und dessen Vorgängern dürften Btrfs und die Tracing-Infrastruktur wieder zahlreiche Verbesserungen erfahren.
Wie üblich werden das Kernel-Log in c't und auf heise open in den kommenden Wochen über die wichtigsten Neuerungen der nächsten Kernel-Version in einer Mini-Serie "Was 2.6.33 bringt" berichten. Parallel wird das reguläre Kernel-Log andere Entwicklungen im Umfeld des Linux-Kernels zusammenfassen – dazu zählen auch neue Versionen der Stable-Kernel-Series, die in den nächsten Wochen den einen oder anderen Fehler korrigieren dürften, der bei der Arbeit an 2.6.32 übersehen wurde.
Ungefähr Mitte oder Ende Februar dürfte Torvalds dann die Linux-Version 2.6.33 freigeben, sofern er sich denn an den üblichen Entwicklungsrhythmus hält. Die wichtigsten Änderungen dieser Version wird dann wieder ein Kernel-Log wie dieses auf heise open zusammenfassen. (thl) (thl)