Die Neuerungen von Linux 2.6.33

Ein viel versprechender Open-Source-Treiber für Nvidia-Grafikhardware, die Replikationslösung DRBD, Unterstützung für das ATA-Trim-Kommando und ein Haufen neuer und überarbeiteter Treiber

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen
Lesezeit: 20 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Zweieinhalb Monate nach der Veröffentlichung von Linux 2.6.32 hat Linus Torvalds nun den Linux-Kernel 2.6.33 freigegeben . Eine seiner langfristig gesehen wohl wichtigsten Neuerungen ist ein neuer Open-Source-Treiber für GeForce-Grafikhardware, der KMS unterstützt. Der bietet zwar noch keine stabile 3D-Unterstützung und ist noch als unreifer Staging-Treiber gekennzeichnet, beherrscht aber schon jetzt mehr Funktionen als der bislang von den vielen Linux-Distributionen für Grafikchips von Nvidia konfigurierte Open-Source-Treiber für X.org.

Der Grafiktreiber ist aber nur eine von über zehntausend mehr oder weniger wichtigen Änderungen von 2.6.33. So beherrscht der Linux-Kernel nun "ATA Trim", was Performance und Lebensdauer von SSDs steigert. Neu dabei ist auch die vor allem im High-Availability-Umfeld eingesetzte Replikationslösung DRBD (Distributed Replicated Block Device), die man grob als "RAID-1 für Server" klassifizieren kann. Apropos RAID: Durch Schreibbarrieren sind mit mdadm verwaltete Software-RAIDs nun robuster bei Abstürzen, arbeiten aber gemächlicher.

Abermals stark erweitert haben die Entwickler die Virtualiserungslösung KVM und die Tracing-Infrastruktur rund um Ftrace. Und wie beim Linux-Kernel üblich bringt auch diese neue Version zahlreiche neuen und überarbeitete Treiber – darunter gleich mehrere für den VMWare-Hypervisor sowie Storage- und WLAN-Chips verschiedener Hersteller. Zum Staging-Bereich stieß das Framework Ramzswap (früher Compcache), das die auf einem virtuellen Swap-Device abgelegten Daten komprimiert im Arbeitsspeicher ablegt und diesen so effizienter nutzt.

Die folgenden Seiten dieses Kernel-Logs bieten 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.33 oder dessen Nachfolger aufsetzen und so für eine weite Verbreitung der von den Kernel-Entwicklern in den vergangenen Wochen eingepflegten Verbesserungen sorgen.

Durch die Aufnahme des Grafiktreibers Nouveau für GeForce-Grafikkerne als Staging-Treiber wird der Kernel 2.6.33 das bislang nur bei GPUs von AMD/ATI und Intel unterstützte Kernel-based Mode-Setting (KMS) auch mit vielen Grafikchips von Nvidia beherrschen. Das ermöglicht einen flackerfreien Startvorgang, eine schnelle Umschaltung zwischen X-Server und Textkonsole sowie eine zuverlässigere Reinitialisierung der Grafikhardware beim Aufwachen aus systemweiten Schlafzuständen. Der auf dem neuen Kernel-Code aufsetzende und bislang nur als Checkout aus einem Quellcodeverwaltungssystem erhältliche Nouveau-Treiber für X.org beherrscht zudem via RandR konfigurierbaren Zweischirmbetrieb sowie mit neueren GeForce-Modellen Xvideo-Beschleunigung – der bislang von vielen Distributionen für Nvidia-Hardware verwendete X.org-Treiber "nv" kann beides nicht. 3D-Beschleunigung bietet allerdings keiner der beiden Treiber; für den mittels Reverse Engineering entwickelten Nouveau-Treiber ist sie aber in Arbeit und liegt vermutlich bereits Fedora 13 als experimenteller Treiber bei.

Der von den KMS-Treibern genutzte DRM (Direct Rendering Manager) des Kernels und der darauf aufsetzende Intel-Treiber bieten jetzt ein Interface, durch das Grafiktreiber in Zukunft die Darstellung des Bildschirminhalts besser mit dem Bildwechsel synchronisieren können. Das soll die "Tearing" genannten Bildverzerrungen reduzieren oder vermeiden – nutzbar wird das ganze aber erst mit Mesa 7.8, X-Server 1.9 und der noch in Entwicklung befindlichen Version 2.11 des Intel-Grafiktreibers für X.org. Zusammen mit dem bei 2.6.33 neuen "drmmode overlay support" im KMS-Treiber für Intel-GPUs bietet die derzeit aktuelle Version 2.10 der Intel-Grafiktreiber für X.org nun Unterstützung für Video Overlays. Zahlreiche Verbesserungen gab es für Intels Ironlake-Grafikkerne, die in Westmere-CPUs wie den Anfang des Jahres vorgestellten Dual-Core-Prozessoren der Core-Baureihen i3 und i5 stecken.

Mehr Infos

Im Detail

Einen detaillierteren Überblick über die Änderungen der Linux-Version 2.6.33 hat das Kernel-Log bereits in den vergangenen Wochen im Rahmen der auf heise open veröffentlichten Mini-Serie "Was Linux 2.6.33 bringt" gegeben:

1. Netzwerk-Subsystem

2. Storage-Subsystem und Dateisysteme

3. Infrastruktur und Treiber für Grafik-Hardware$

4. Architektur-Code, Tracing nd Virtualisierung

5. Weitere Treiber

Die wichtigsten Abschnitte der sechs Artikel bilden die Basis für die nebenstehende Übersicht der allerwichtigsten Neuerungen der Linux-Version 2.6.33. 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.

Der DRM- und KMS-Code des Kernels für Radeon-Grafikchips unterstützt nun die Monitoransteuerung via DisplayPort (1, 2) und eDP (Embedded DisplayPort); zudem beherrscht er die Audio-Ausgabe über HDMI. Die ebenfalls neue IRQ-Unterstützung für r6xx- und r7xx-GPUs ermöglicht die Erkennung von Monitorwechseln ohne wiederkehrende Abfragen (Polling) und ist bei Radeon-Karten eine Voraussetzung für den oben erwähnten Page Flipping Support – das Ganze funktioniert aber nur in Verbindung mit einer aktualisierten Firmware.

Darüber hinaus gab es zahlreiche kleinere Korrekturen und Verbesserungen am Radeon-KMS-Treiber. Durch die ist der Code nun so weit gereift, dass die Entwickler die Klassifizierung für den Staging-Bereich des Kernels, der unreife und minderwertige Treiber aufnimmt, entfernten und im Commit-Kommentar andeuten, dass der Treiber-Code stabil genug zum Einsatz in Linux-Distributionen sei. Vorerst als Staging-Treiber gekennzeichnet wurde aber der neu zum Kernel gestoßenen KMS-Treiber xmgfx für die virtuelle, in Gastsystemen sichtbare SVGA2-Grafikhardware einiger VMWare-Hypervisor.

Einige Teile des Kernels bieten schon seit einigen Monaten eine rudimentäre "Discard"-Infrastruktur, über die Treiber für Massenspeicheradapter erfahren können, wenn Speicherbereiche eines Datenträgers freigegeben werden – etwa durch Löschen einer Datei oder Formatieren einer Partition. Die Infrastruktur wurde bei 2.6.33 überarbeitetet und ausgebaut; dadurch unterstützt nun auch das Libata-Subsystem Discard und kann Informationen über freigegeben Speicherbereite über das ATA-Kommando "Trim" an Massenspeicher weiterleiten. Das ist insbesondere für SSDs (Solid-State Disks) wichtig, denn die erfahren auf diese Weise von freigegebenen Speicherbereichen und können so die SSD-eigene Garbage Collection optimieren – das steigert Performance und Lebensdauer von SSDs.

Damit die Discard-Infrastruktur voll zum Zuge kommt, müssen andere Teile des Kernels das Storage-Subsystem aber auch über freigegebene Bereiche informieren. Das Dateisystem Btrfs beherrscht das schon bei Linux 2.6.32, für Ext4 stieß entsprechender Code nun hinzu – da der aber noch nicht ausgiebig getestet wurde, ist die Funktion in der Standardkonfiguration vorerst inaktiv. Auch die neue Discard-Unterstützung im Code des FAT-Dateisystems ist optional.

Mehr Infos

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-Quellcodezweigs auf kernel.org. 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 jeweilige Datei verändert; "history" zeigt frühere Änderungen der Datei an. Weiter unten finden sich alle im Rahmen des Commits durchgeführten Änderungen im Unified-Diff-Format. Dabei handelt es sich Größtenteils um Modifikationen am Quellcode des Linux-Kernels – es sind aber nicht selten auch Anpassungen an Dokumentation oder Code-Kommentaren darunter, daher finden dort auch Anwender ohne Programmierkenntnisse viele hilfreiche Informationen.

Nachdem DRBD (Distributed Replicated Block Device) bei 2.6.32 noch außen vor blieb, nahmen die Kernel-Hacker die vor allem im High-Availability-Umfeld eingesetzte Replikationslösung für 2.6.33 schließlich in Linux auf. DRBD lässt sich grob als "RAID-1-Gerät übers Netz" klassifizieren: Der oder die Datenträger eines als Master bezeichneten Systems werden in Echtzeit auf einem anderen ("Slave") gespiegelt – beim Ausfall des Masters übernimmt der Slave die Arbeit, ohne dass Ausfallzeiten entstehen. Damit die Daten immer synchron sind, betrachtet der Master Schreibzugriffe erst als beendet, wenn auch der Slave das Schreiben abgeschlossen hat. Detaillierte Erklärungen zu DRBD liefern ein LWN.net-Artikel sowie die ausführliche Dokumentation auf der DRBD-Homepage. Den praktischen Einsatz zusammen mit Xen zum Aufbau einer Hochverfügbarkeitslösung beschreibt ein Artikel in c't 6/09 (ab 1.3. am Kiosk).

Entfernt haben die Entwickler den Anticipatory I/O Scheduler (AS), der laut Commit-Kommentar nur eine Untermenge der Funktionen des CFQ-Schedulers bietet. Letzterer ist laut Beschreibung jetzt für Desktop und Server geeignet – und bei vielen Distributionen ohnehin schon lange Standard.

Verbessert wurde der Code zur Migration von mit mdadm verwalteten Software-RAIDs eines Levels in andere Level. Das MD-Subsystem unterstützt nun auch Schreibbarrieren – dadurch werden etwa Daten und Dateisystem-Journal in der von anderen Teilen des Kernels erwarteten Reihenfolge geschrieben. Das soll bei Abstürzen die Integrität der Dateisysteme sicherstellen, kann den Durchsatz aber spürbar schmälern, wie MD-Verwalter Neil Brown in seinem Haupt-Git-Pull-Request anmerkt. Weiter ausgebaut wurde auch die Unterstützung für Write Barriers im Device Mapper (DM) (Git-Pull-Request). Der bietet nun außerdem ein "Merge Target" (u. a. 1, 2), mit dessen Hilfe man zu einem Snapshot zurück wechseln kann – etwa nach einem Systemupdate, das Probleme verursacht (LWN.net-Artikel).

Zahlreiche Verbesserungen gab es an der maßgeblich von Red Hat vorangetriebenen Virtualisierungslösung KVM (Kernel-based Virtual Machine). Einige Änderungen an KVM und dem X86-Code sollen etwa den Verwaltungsaufwand beim Context Switch reduzieren und dadurch die Performance verbessern (1, 2). KVM blockiert die Virtualisierungsfunktionen moderner CPUs außerdem jetzt nur noch, wenn sie auch gebraucht werden. Speicherbereiche, die das bei Linux 2.6.32 eingeführte und im Umfeld von KVM entstandene KSM (Kernel Shared Memory) zusammengelegt hat, kann der Kernel jetzt in den Swap-Speicher verlagern.

Abermals stark erweitert und überarbeitet haben die Entwickler die Tracing-Infrastruktur rund um Ftrace und die früher Performance Counter genannten Performance Events (1, 2, 3). Über die neuen "kprobe-based event tracer" lassen sich Tracepoints zur Laufzeit an nahezu beliebige Stellen des Kernels einfügen (Dokumentation); nutzen können Anwender diese Infrastruktur mit dem Linux beiliegenden Programm "perf" und dessen neuem Unterkommando "probe". Durch einige andere Änderungen am Kernel lassen sich nun mehrere Prozesse gleichzeitig observieren oder die Nutzung des Big Kernel Lock (BKL) besser diagnostizieren. Die Analysedaten kann man in Zukunft über reguläre Ausdrücke filtern; ausgebaut haben die Kernel-Entwickler auch die Unterstützung für Perl-Skripte beim Perf-Kommando (u. a. 1, 2, 3, Dokumentation). Dessen mit 2.6.33 neues Unterkommando "bench" bietet einige Funktionen zur Geschwindigkeitsmessung (u. a. 1, 2, 3, 4, Dokumentation).

Der Treiber iwlwifi spricht nun verschiedene zuvor nicht unterstützte Intel-WLAN-Module der Serien 1000, 5000 und 6000 an (123, 4) und bietet Unterstützung für die Wimax-Funktion der 6x50-Serie (12). Neu dabei ist der Intel Wireless MultiCom 3200 top driver (iwmc3200top) für einen neuen Intel-Funkchip, der GPS, Bluetooth, WLAN und WiMAX unterstützt. Die Stromsparfunktionen des Intel-WLAN-Treiber iwl3945 haben Entwickler aufgrund von Problemen vorerst deaktiviert.

Neu aufgenommen für Linux 2.6.33 haben die Kernel-Entwickler den fürs erste noch als "sehr experimentell" und "nur für Entwickler" eingestuften Treiber rt2800pci, der die bei neueren Net- und Notebooks häufiger zu findenden PCI-WLAN-Chips RT2760, RT2790, RT2860, RT2880, RT2890 und RT3052 von Ralink anspricht. Die ließen sich bislang nur mit einem ursprünglich vom Hersteller entwickelten Treiber nutzen, der sich seit einigen Monaten im Staging-Bereich des Kernel für nicht ausgereifte Treiber befindet. Der neue Treiber stammt maßgeblich aus der Feder der Entwickler des Projekts rt2x00, das sich auch um andere Treiber für Chips von Ralink kümmert. Auch einige andere Treiber des Projekts wurden für 2.6.33 verbessert und sprechen nun mehr USB-WLAN-Hardware an als zuvor.

Die Treiber des IDE-Subsystems gelten nun offiziell als "deprecated" – Anwendern wird geraten, auf die schon länger im Kernel enthaltenen und nun nicht mehr als experimentell eingestuften (1, 2) PATA-Treiber des Libata-Subsystems umzusteigen. Neu zum Kernel stießen die im SCSI-Subsystem angesiedelten Treiber 3w-sas für den LSI 3ware 9750 und vmw_pvscsi für die virtuelle, von Gastsystemen gesehene Hardware mancher VMWare-Hypervisor. Neuere Smart Array Controller von HP lassen sich nun nicht mehr nur über den bei 2.6.33 optimierten und im Block-Subsystem beheimateten Treiber cciss ansprechen, sondern auch über den neuen Treiber hpsa.

Mehr Infos

Was sich an den Treibern für Ihren Rechner geändert hat

Über das Git-Web-Frontend auf Kernel.org lassen sich auch Informationen zu Änderungen an einzelnen Dateien des Linux-Kernels aufrufen – das können Sie nutzen, um herauszufinden, ob es Neuerungen an den auf Ihrem System eingesetzten Treibern gab. Dazu muss man allerdings wissen, wo sich die Treiberdateien im Quellcodebaum des Linux-Kernels finden. Bei den zumeist stark auf Modulen setzenden Kerneln der Distributionen helfen häufig die Ausgaben des Programms modinfo bei der Suche:

$ /sbin/modinfo e100 e1000 | grep filename:
filename: /lib/modules/[...]/kernel/drivers/net/e100.ko
filename: /lib/modules/[...]/kernel/drivers/net/e1000/e1000.k

Liegt ein kompiliertes Modul etwa in [...]/kernel/drivers/net/e100.ko, dann findet sich dessen Sourcecode im Linux-Quellcodearchiv normalerweise im Verzeichnis drivers/net/ in Dateien mit ähnlichem Namen – etwa e100.c im Falle des für Intel-100-MBit-Netzwerkhardware zuständigen Treibers e100. Andere Module wie der für Intels PCI-Gigabit-LAN-Chips zuständige Treiber e1000 haben hingegen ein Verzeichnis für sich allein.

Kennt man die ungefähre Position des Treiber-Quellcodes, navigiert man im Git-Webinterface der Linux-Quellen über die Tree-Ansicht zu den jeweiligen Quellcode-Dateien und ruft über den Link "History" eine Übersicht über die jüngsten Änderungen an den zugehörigen Dateien oder dem ganzen Verzeichnis auf. Im Verzeichnis für die Netzwerktreiber lassen sich so beispielsweise die Änderungen am Treibercode von e100 (drivers/net/e100.c) und e1000 (drivers/net/e1000/) anzeigen und näher unter die Lupe nehmen.

Mit Hilfe des neu zum Kernel gestoßenen Treibers k10temp lassen sich die Temperatursensoren moderner AMD-CPUs auslesen. Da viele CPUs jedoch fehlerhafte Werte liefern, arbeitet der Code erst nach Angabe eines speziellen, in der Dokumentation angegebenen Parameters. Der Treiber via-cputemp ist ebenfalls frisch dabei und gibt die Daten der Temperatursensoren in neueren VIA-CPUs aus.

Erst kurz vor der fünften Vorabversion stieß der V4L/DVB-Treiber Mantis zum Kernel, der den gleichnamigen Chipsatz unterstützt, der auf diversen TV-Karten zum Einsatz kommt. Neu zum Kernel stieß auch der Treiber msi-wmi, mit dessen Hilfe die Funktionstasten zum Regeln der Lautstärke oder Displayhelligkeit von MSI-Notebooks auch unter Linux arbeiten sollten. Auch der Treiber classmate-laptop für Intels Classmate-PCs ist neu dabei.Erheblich überarbeitet haben die Kernel-Hacker einige Teile rund um die Audio-Unterstützung des Treibers für Thinkpad-Notebooks von IBM und Lenovo (1, 2, 3).

Wie bereits ersten Teil der Mini-Serie "Was 2.6.33 bringt" erwähnt, nahmen die Kernel-Entwickler der Treiber rtl8192u für die gleichnamigen WLAN-Chips von Realtek in den Staging-Zweig auf – er ist leicht zu verwechseln mit den Treibern rtl8192e und rtl8192su, die schon bei früheren Kerneln in den Bereich für unreife und "mistige" Treiber aufgenommen wurden. Umbenannt wurde der Treiber rtl8187se, da in Zukunft ein ordentlicher Linux-Treiber diesen Namen tragen soll.

Größere Änderungen gab es auch an den Staging-Treiber für neuere WLAN-Chips von Ralink – der Treiber rt3090 etwa konnte entfernt werden, weil dessen Funktionen nun der Staging-Treiber rt2860 erledigt. Im Staging-Zweig landete auch das zuvor Compcache und nun Ramzswap genannte Framework, das die auf einem virtuellen Swap-Device abgelegten Daten komprimiert im Arbeitsspeicher ablegt, um den Arbeitsspeicher effizienter zu Nutzen.

Wie erwartet wurden der Code für Distributed storage (DST) sowie einige Treiber für Googles Android aus dem Staging-Bereich entfernt, weil sich niemand um deren Code gekümmert hat. Die Hintergründe im Fall der Android-Treiber erläuterte Staging-Verwalter Greg Kroah-Hartman in einem Blog-Post genauer, über das wir bereits berichteten.

Mehr Infos

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...)

  • Der Architektur-Code für Power- und PowerPC-CPUs bringt nun Unterstützung für die von Nintendo gefertigten Spielkonsolen Gamecube und Wii mit (u. a. 1, 2); weitere Details dazu finden sich auf der Webseite des Projekts GC-Linux
  • Im Umfeld der Realtime-Entwickler entstanden zahlreiche Änderungen, die die Nutzung des Big Kernel Lock (BKL) weiter reduzieren. Eine größere Umbenennung der Kernel-intern zum Locking kritischer Bereiche genutzten Spinlocks erleichtert den Entwicklern der Echtzeitunterstützung für Linux die Codepflege erheblich und legt die Basis für den Umzug der "Sleeping Spinlocks" aus dem Realtime-/RT-Tree in den offiziellen Linux-Kernel.
  • Der Verwalter des FireWire-Codes von Linux, Stefan Richter, rät Distributionen über einen Git-Pull-Request und einigen Änderungen am bei der Kernel-Konfiguration eingeblendeten Hilfe-Text nun zum Umstieg auf des neueren, Juju genannten FireWire-Stacks. Details zu den nötigen Schritten liefert das Wiki der Entickler; dort sind auch einige weitere Korrekturen und Verbesserungen am FireWire-Code von Linux 2.6.33 gelistet
  • Mehrere Entwicklergruppen arbeiteten in den letzten Monaten und Jahren an verschiedenen Lösungen, um die maximale Menge an Daten zu beschränken, die einzelne Prozesse oder Prozessgruppen in einem Zeitfenster mit Datenträgern austauschen, und die an unterschiedlichen Stellen des Kernels eingreifen. Das Rennen gemacht hat jetzt das "Blkio Controller Cgroup Interface", das sich in den CFQ-I/O-Scheduler (Completely Fair Queuing) einklinkt. Das ist aber keineswegs eine komplette Absage an die anderen Ansätze, sondern soll die Basis für weitere Verbesserungen und Funktionen bieten, die einige der konkurrierenden Lösungen ermöglichen. Hintergründe zum Thema finden sich in einem LWN.net-Artikel und in der Dokumentation zu dem Framework.
  • Über Dateien im Sysfs lässt sich in Zukunft erkennen, wenn das BIOS den Wechsel auf die maximale CPU-Frequenz in bestimmten Betriebsarten eines Gerätes via ACPI blockiert.
  • Rafael J. Wysocki hatte einige Patches zur Aufnahme eingesandt, durch die der Kernel einige Geräte beim Wechsel in oder aus dem Standby parallel statt sequenziell aufweckt oder schlafen legt. Das soll den Wechsel in oder aus dem Bereitschaftsmodus beschleunigen. Linus Torvalds wies die Änderungen aber mit recht deutlichen Worten zurück. Wysocki sparte die Änderungen daher fürs erste aus und übermittelte unter anderem einige Patches, die die bei 2.6.32 überarbeitete Infrastruktur zur Nutzung von Stromspartechniken von I/O-Geräten zur Laufzeit verbessern. Den Code zum "Asynchronous suspend and resume" hat er aber zwischenzeitlich überarbeitet und dürfte bei 2.6.34 einen weiteren Anlauf wagen.

Der Nouveau-Treiber für GeForce-Grafikhardware und die Verbesserungen an den KMS-Grafiktreibern für AMD/ATI- und Intel-GPUs zählen nicht nur zu den wichtigsten Änderungen, sondern auch zu den auffälligsten, denn KMS wird von mehr und mehr Linux-Distributionen eingesetzt und sich wohl schon bald als Standard etablieren. Die Unterstützung für "ATA Trim" wirkt zwar mehr im Stillen und muss genau wie der Nouveau-Treiber noch etwas reifen, ist durch die steigende Verbreitung von SSDs ein wichtiger Baustein, damit Linux auf Systemen von heute und morgen ordentlich läuft.

Die Replikationslösung DRBD dürfte durch die Aufnahme in den Hauptentwicklungszweig von Linux erheblich attraktiver für System-Administratoren werden. Für diese Benutzergruppe oder Entwickler werden auch die derzeit mit jeder Linux-Version etwas ausgebauten Tracing-Funktonen immer interessanter.

Linux- Version Anzahl Dateien¹ Zeilen
Quelltext²
(Ohne Dokum.)
Entwick-lungs- zeitraum Anzahl Commits³ Diffstat⁴
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(-)
2.6.33 31565 12990041
(11564768)
83 Tage 10871 9673 files changed,
 859458 insertions(+),
 479452 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)
Mehr Infos

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.33 beginnt nun das üblicherweise zwei Wochen lange Merge Window, in dem die Kernel-Entwickler den Großteil der Änderungen für die nächste Kernel-Version in den Hauptentwicklungszweig integrieren. Für diese erste Phase im Entwicklungszyklus haben die Kernel-Hacker schon wieder zahlreiche, teilweise im Text bereits erwähnte Änderungen vorbereitet.

Ziemlich sicher ist die Aufnahme weitere Verbesserungen an den KMS-Treibern für Grafikchips von AMD, Intel und Nvidia – darunter Änderungen zur besseren Nutzung der Stromsparfunktionen moderner Radeon-Grafikhardware und ein rudimentärer KMS-Treiber für die Evergreen-GPUs, die AMD auf den vergangenen Herbst eingeführten Radeon-Grafikkarten der 5000er-Serie einsetzt. Die von den KVM-Entwicklern vorbereiteten Änderungen rüsten erste Teile einer Hyper-V-Emulation nach, verbessern den Betrieb mit großen Gastsystemen und bringen Unterstützung für 1 GB große Speicherseiten (Pages) bei Intel-CPUs.

Nicht ganz so sicher, aber doch recht wahrscheinlich scheint die Aufnahme der LZMA-Unterstützung für Squashfs – die Entwickler einiger Distributionen warten darauf schon innig, um durch effizientere Komprimierung mehr Software auf Live-CDs integrieren zu können. Ungewiss scheint derzeit noch die Integration einiger von Windriver-Entwickler Jason Wessel entwickelter Patch-Serien, die erweiterte Debugging-Möglichkeiten bringen (1, 2, 3). Vermutlich dürften auch die Entwickler von Fanotify, dem verteilten Dateisystems Ceph und dem speziell auf High Performance Computing (HPC) und Echtzeitanwendungen ausgelegte Hypervisor AlacrityVM bei 2.6.34 einen neuen Aufnahmeversuch starten, nachdem Torvalds deren Code bei 2.6.33 außen vor ließ.

Wie üblich wird 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.34 bringt" berichten. Parallel wird wie gewohnt das reguläre Kernel-Log andere Entwicklungen im Umfeld des Linux-Kernels zusammenfassen – dazu zählen auch neue Versionen der Stable-Kernel-Series (2.6.x.y), die in den nächsten Wochen den einen oder anderen Fehler korrigieren dürften, der bei der Arbeit an 2.6.33 übersehen wurde.

Ungefähr im Mai dürfte Torvalds dann die Linux-Version 2.6.34 freigeben, sofern er und seine Mitstreiter im üblichen Tempo arbeiten. Die wichtigsten Änderungen dieser Version wird dann wieder ein Kernel-Log wie dieses auf heise open zusammenfassen. (thl) (thl)