Die Neuerungen von Linux 2.6.36

Der neue Linux-Kernel ist ausnahmsweise mal nicht größer als sein Vorgänger [--] dennoch enthält er hunderte von Neuerungen, die auch Auswirkungen auf Anwender haben, die sich mit dem Kern ihrer Linux-Distribution normalerweise nicht näher auseinander setzen.

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

Nach 80 Tagen Entwicklung hat Linus Torvalds die Linux-Version 2.6.36 freigegeben. Sie erhielt mit der achten Vorabversion den Namen "Flesh-Eating Bats with Fangs"; inspiriert dazu wurde Torvalds wohl einer Fledermaus, die sich kürzlich in sein Haus verirrt hatte. Die neue Kernel-Version ist einen Tick kleiner als ihr direkter Vorgänger – eine Seltenheit, denn mit nahezu jeder in den letzten Jahren freigegeben Version des Hauptentwicklungszweigs sind die Kernel-Quellen um mehrere hunderttausend Zeilen gewachsen.

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

Möglich gemacht hat das eine erhebliche Verschlankung der Standard-Konfigurationsdateien. Andere Patches haben aber reichlich neuen Quellcode mitgebracht, daher wartet auch 2.6.36 mit zahlreichen nennenswerten Neuerungen auf – etwa der lange umstrittenen Sicherheitserweiterung AppArmor, einem neuen Out-of-Memory (OOM) Killer, Verbesserungen rund um Kernel-Threads, Grundlagen für Xen-Dom0-Unterstützung sowie verschiedene Optimierungen an Dateisystemen und den von ihnen genutztem VFS. Zudem haben die Kernel-Hacker einen Bug im VM-Subsystem beseitigt, durch den manche Systeme beim Schreiben auf einen lahmen Datenträger unerträglich langsam wurden. Weitere Änderungen versprechen sich flotter anfühlende Systeme durch bessere Reaktionsgeschwindigkeit. Wie immer gab es zudem zahlreiche neue und überarbeitete Treiber – der für Grafikchips von Nvidia etwa spricht nun auch die Fermi-Chips neuerer GeForce-Grafikkarten an. Erheblich verbessert haben die Kernel-Hacker zudem die Unterstützung für Infrarot-Fernbedienungen und -Empfänger.

Das folgende Kernel-Log bietet einen Überblick über diese und zahlreiche weitere wichtige Neuerungen von Linux 2.6.36. Die sind letzten Endes für alle Linux-Anwender von Bedeutung, da zukünftige Linux-Distributionen auf Kernel 2.6.36 oder dessen Nachfolger aufsetzen werden und so dessen Verbesserungen zu den Anwendern tragen. Wie üblich wagt das Kernel-Log am Ende auch einen Ausblick auf die Neuerungen, die möglicherweise in Linux 2.6.37 einziehen.

Mit 2.6.36 beherrscht der KMS-Treiber für Radeon-Karten nun Underscan, um die Bildgröße auf digital angesteuerte Bildschirme anpassen zu können, die automatisch Overscan aktivieren. Ferner bietet der Treiber von nun an Funktionen zum Auslesen der in neueren Radeon-GPUs integrierten Temperatursensoren und beherrscht die Audio-Ausgabe via HDMI bei den Mainboard-Chipsätzen RS600, RS690 und RS740.

Den Nouveau-KMS-Treiber haben die Entwickler recht kurzfristig um rudimentäre Unterstützung für Grafikchips der Fermi-Generation erweitert (u. a. 1, 2, 3, 4, 5, 6, 7). Fermi-GPUs sitzen auf den im März vorgestellten GeForce-GTX-Modellen 470 und 480 und einigen weiteren, zwischenzeitlich eingeführten Modellen der 400er-Serie.

Zum Kernel stieß ferner der Intelligent Power Sharing (IPS) Driver. Mit seiner Hilfe kann der Grafikchip in einigen Mobilprozessoren aus Intels Westmere-Generation (etwa dem Core i5) auf eine höhere Taktfrequenz hochschalten, wenn der Baustein seinen spezifizierten Maximal-Wärmeumsatz ("Thermal Budget") noch nicht ausschöpft – Intel nennt diese die 3D-Performance steigernde Technik "HD Graphics Dynamic Frequency Technology". Ebenfalls neu ist die Unterstützung für die Debugger KGDB und den erst bei 2.6.35 integrierten KDB (Kernel Debugger) im DRM-Code und dem Intel-KMS-Treiber. Zusammen mit Änderungen am KGDB/KDB-Code ermöglicht das mit dem Intel-Treiber den Wechsel auf eine Debugger-Shell, um dort etwa die Ursache für einen Absturz des X-Servers analysieren zu können, wenn der Wechsel auf eine Textkonsole nicht mehr möglich ist und keine serielle Konsole konfiguriert ist. Ein etwas älteres YouTube-Video demonstriert die Technik.

Mehr Infos

Im Detail

Bereits in den vergangenen Wochen hat die Kernel-Log-Mini-Serie "Was Linux 2.6.36 bringt" einen deutlich detaillierteren Überblick über die Änderungen der Linux-Version 2.6.36 gegeben:

1. Unterstützung für Grafik-Hardware

2. Dateisysteme, Storage und Netzwerk

3. Infrastruktur

4. Treiber

Der nebenstehende Artikel zu den Neuerungen von Linux 2.6.36 erwähnt lediglich die wichtigsten der in den fünf Teilen der Mini-Serie genannten Verbesserungen. Einige Änderungen hat das Kernel-Log im Rahmen der Mini-Serie allerdings erheblich ausführlicher beschrieben und verweist auf noch mehr Informationsquellen; die Artikel der Mini-Serie listen außerdem noch zahlreiche weitere nicht gar so wichtige, aber alles andere als unwichtige Änderungen.

Am Ende jedes Artikels der Mini-Serie findet sich unter der Überschrift "Die kleinen Perlen" zudem Listen mit etlichen kleineren Neuerungen. Einige von ihnen dürften für manche Anwender aber dennoch von großer Bedeutung sein. 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 zudem viele Produktnamen von TV-Hardware, die der Linux-Kernel mit den neuen Version nun ansteuern kann.

Bereits bei der Freigabe von Linux 2.6.35 hatte Torvalds erklärt, einige maßgeblich von Nick Piggin entwickelte Patches in 2.6.36 integrieren zu wollen, die das Virtual Filesystem Layer (VFS), der Dateisystemen Basis-Funktionen bereitstellt, an zahlreichen Stellen optimieren. Durch diese "VFS scalability patches" soll das VFS besser skalieren und einige Aufgaben auf den heute allgegenwärtigen Multiprozessor-Systemen deutlich flotter erledigen. Da diese aber noch nicht ausgereift waren, zog nur einen Teil seiner Verbesserungen in 2.6.36 ein; das Gros der Patches sollen bei Linux 2.6.37 folgen.

In der Standard-Konfiguration bindet der Kernel Ext3-Dateisysteme wieder mit dem Modus "data=ordered" ein. Das bietet mehr Sicherheit für die Daten als die Betriebsart "writeback" – sie hatten die Kernel-Entwickler erst bei 2.6.30 zum Standard erhoben, weil sie dem von Ext4 genutzten Ansatz ähnelt und bessere Performance verspricht. Mit Hilfe von FS-Cache kann das Dateisystem CIFS zur Einbindung von Windows- oder Samba-Freigaben nun Daten lokal zwischenspeichern, um weitere Zugriffe zu beschleunigen. Der Client-Code für die Version 4 des NFS-Dateisystems gilt nicht mehr als experimentell; der NFS-Client 4.1 behält diese Einstufung noch, verlor aber das Warnsiegel "Developer only". Durch einige Änderungen am XFS-Code soll das Dateisystem an einigen Stellen performanter arbeiten, wie Christoph Hellwig im XFS status update for August 2010 schreibt.

Den RAID-6-Code des MD-Subsystem haben die Entwickler an eine andere Stelle verlagert, damit der Btrfs-Dateisystemcode ihn in Zukunft nutzen kann. Der RAID5-Code im MD-Subsystem bietet ab 2.6.36 einige Einstiegspunkte, über die ein Device-Mapper-Target die RAID-5-Infrastuktur nutzen kann (1, 2) – der darauf aufbauende Device-Mapper-Code bliebt in diesem Entwicklungszyklus aber noch außen vor. Mit ihm soll langfristig das Userspace-Programm dmraid die HostRAID-5-Funktionen nutzbar machen, die viele modernere Mainboard-Chipsätze und günstiger RAID-Adapter bieten. Derzeit braucht es dazu einige Erweiterungen, die seit langem außerhalb des Hauptentwicklungszweigs von Linux gewartet werden.

Die Device-Mapper-Targets linear, delay, stripe und mpath haben die Entwickler um Discard-Unterstützung erweitert – sofern auch Dateisystem und Storage-Hardware Discard unterstützen, kann der Kernel die über den Device Mapper angesprochenen Datenträger über frei gewordene Speicherbereiche informieren, was etwa Performance und Lebensdauer von SSDs verbessern kann. Das auch Grundfunktionen für ATA- oder Fibre-Channel-Hardware bietende SCSI-Subsystem enthält jetzt die nötige Infrastruktur, um die zur Laufzeit greifenden Stromsparmodi von I/O-Geräten zu nutzen. Bislang verwendet diese allerdings keiner der dort liegenden PCI/PCIe-Treiber.

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 der Dokumentation oder an Kommentaren im Code darunter, daher finden dort auch Anwender ohne Programmierkenntnisse viele hilfreiche Informationen.

Dank SR-IOV kann der neue und für Gastsysteme gedachte Treiber cxgb4vf nun direkt auf Teilfunktionen einiger der vom Treiber cxgb4 unterstützten 1- und 10-Gigabit-Netzwerkchips von Chelsio zugreifen; genau wie bei anderen SR-IOV-Treibern soll das Latenzen und CPU-Belastung bei Netzwerktransfers reduzieren und den Datendurchsatz steigern (u. a. 1, 2, 3, 4, 5). Der Atheros-WLAN-Treiber ath9k versteht sich nun mit der Version 2.2 des AR9003-Chips. Der aus dem Madwifi-Projekt hervorgegangene Minstrel Rate Control Algorithmus zum automatischen Ausbaldowern des besten Übertragungsverfahrens unterstützt nun auch den Übertragungen nach 802.11n. Der iPhone-Tethering-Treiber ipheth versteht sich nun auch mit dem iPhone 4.

Die Liste der vom Kernel unterstützen Prozessor-Architekturen wächst mit 2.6.36 abermals und umfasst nun auch die von Tilera entwickelten 32-Bit-Prozessoren TILEPro and TILE64 (u. a. 1, 2, 3). Aus dem Android-Umfeld stießt Unterstützung für Nvidias Tegra-Prozessoren zum Kernel, die auf der ARM-Architektur aufbauen (u. a. 1, 2, 3).

Der KVM-Code bietet nun Unterstützung für die Prozessor-Befehle Xsave (1, 2) und AVX (Intel Advanced Vector Extension) in Gastsystemen. Einen Überblick über Änderungen am Xen-Code geben die Git-Pull-Requests von Jeremy Fitzhardinge und Konrad Rzeszutek Wilk. Einige dieser Änderungen legen Grundlagen, auf dem Code zum Betrieb des Linux-Kernels als "initial domain" aufbauen soll – eine Art abgespeckter Dom0-Unterstützung. Dieser Code wird derzeit auf der LKML diskutiert und könnte bei einer der nächsten Versionen in den Hauptentwicklungszweig von Linux einziehen.

Erheblich verändert und in weiten Teilen neu geschrieben haben die Kernel-Entwickler den Out of Memory (OOM) Killer, der bei Speichermangel Prozesse abschießt, damit das System weiterarbeiten kann (1, 2, 3). Integriert haben die Kernel-Hacker auch die "Concurrencey Managed Workqueues", welche die Handhabung von Kernel-Threads optimieren (u.a. 1, Dokumentation). Dadurch soll der Kernel die Ressourcen effizienter nutzen, besser skalieren und auf vielen Systemen mit weniger Threads auskommen – letzteres werden auch Anwender bemerken, denn dadurch verkürzt sich die Liste der bei ps -A ausgegeben Kernel-Threads.

Nachdem sich die Entwickler der 2006 von Novell offengelegten AppArmor mehrere Jahre erfolglos um die Aufnahme des Kernel-Codes der Sicherheitserweiterung bemüht hatten, stieß dieser nun in der Version 2.6.36 endlich zum Kernel (u. a. 1, 2, 3, Dokumentation). Ähnlich wie SELinux kann AppArmor Anwendungen auf festgelegte Aktionen beschränken; Angreifer, die über eine Sicherheitslücke etwa in einer Server-Software Zugang zum System erhalten, können daher nur begrenzt Schaden anrichten.

Zahlreiche Anläufe und mehrere Jahre hatte auch das aus TALPA hervorgegangene Fanotify gebraucht, bevor Torvalds es nun integrierte (u. a. 1, 2, 3). Es baut auf dem bei 2.6.31 integrierten Fsnotify auf und bietet Einstiegspunkte, über die sich beispielsweise Virenscanner einklinken können, um Dateien beim Zugriff auf Schadsoftware zu überprüfen, bevor der Dateiinhalt ausgeliefert wird ("On-Access-Scan"). Nur einige Tage vor der Fertigstellung von Linux 2.6.36 haben die Entwickler allerdings die Userspace-Schnittstellen von Fanotify kurzfristig deaktiviert, um noch einige Unzulänglichkeiten beseitigen zu können, die das ABI betreffen (1, 2, 3) – dadurch ist Fanotify vorerst nicht nutzbar. Fehlerbeseitigung und Re-Aktivierung der Userspace-Schnittstellen sind für Kernel 2.6.37 vorgesehen; unklar ist noch, ob diese Patches möglicherweise auch in einen der Stable-Kernel der 2.6.36-Serie einziehen.

Der Kbuild-Code bietet nun die Targets "oldnoconfig", "listnewconfig" ersetzt "nonint_oldconfig", "alldefconfig " und "savedefconfig". Letztgenanntes schreibt eine "defconfig" genannte Konfigurationsdatei, in der nur die Optionen verzeichnet sind, die sich von den Standardvorgaben der Kconfig-Dateien unterscheiden. Solche ersetzen dutzende der Standard-Konfigurationsdateien für die verschiedenen vom Linux-Kernel unterstützten System- bzw. Prozessor-Architekturen. Da sie zuvor auch Einträge für alle Optionen enthielten, die die Kconfig-Dateien des Kernels als Standard vorgaben, ist der entsprechende Commit knapp 6 MByte riesig und entfernt über zweihundertausend Zeilen in den Kernel-Quellen.

Bereits zuvor hatten die Verwalter der Unterstützung für Itanium (IA64) und Power ihre Konfigurationsdateien auf diese Weise verschlankt (1, 2). All diese Änderungen sind der Hauptgrund, warum der Quellcode von 2.6.36 ungefähr genauso groß ist wie beim direkten Vorgänger. Bei dem hatte die Diät für die Standard-Konfigurationsdateien bereits mit einer Verschlankung der Dateien für ARM-Systeme begonnen.

Das bei 2.6.35 eingeführte Subsystem für Infrarot-Hardware bietet nun Schnittstellen, über die der LIRC-Userspace-Daemon Rohdaten mit Infrarot-Empfängern und -Sendern austauschen kann – etwa damit der Daemon Daten dekodiert, wenn der Kernel-Treiber nicht selbst dazu in der Lage ist (1, 2). Zum noch jungen IR-Subsystem stießen ferner mehrere Treiber für IR-Hardware verschiedener Hersteller. Bei den meisten von ihnen handelt es sich um Portierungen der bislang extern gewarteten LIRC-Treiber; einige noch nicht portierte LIRC-Treiber wurden fürs erste in den Staging-Bereich aufgenommen – Details dazu finden sich bei den "Die kleinen Perlen" im vierten Teil der Artikelserie "Was 2.6.36 bringt".

Der ursprünglich Compcache genannte und später in Ramzswap umbenannte Staging-Treiber zum Anlegen eines komprimierten Swap Device im Arbeitsspeicher wurde abermals umbenannt und heißt nun Zram (1, 2, 3). Details zu der Technik liefert ein Artikel in c't 22/10 (ab Montag, 11. Oktober, am Kiosk). Diese c't enthält auch einen Artikel, der den Erfolg des vor zwei Jahren in den Hauptentwicklungszweig von Linux integrierten Staging-Zweigs beleuchtet. Bei dieser Analyse fand sich nur ein Treiber, der im Staging-Bereich so weit reifte, dass er mittels "git mv" vom Staging-Bereich an eine andere Stelle im Kernel-Quellcode verlagert wurde: Der "Restricted Access Region Register Driver" rar_register, der mit 2.6.36 den Staging-Bereich verlässt. Er war vor einem Jahr unter dem Namen "rar" mit Version 2.6.32 zum Kernel gestoßen und eignet sich für die mit Atom-Prozessor ausgestatteten Mobile Internet Devices (MIDs).

Durch Änderungen am USB-Subsystem unterstützt dieses nun einige der in Addendum 1.1 der EHCI-Spezifikation beschriebenen Erweiterungen von USB 2.0 besser, die verschiedene Verbesserungen im Hinblick auf Power Management bringen (1, 2, 3). Der USB-Code beherrscht nun auch die zur Laufzeit nutzbaren Stromsparfunktion von PCI-USB-Controllern sowie einige herstellerspezifische Wakeup-Flags, die Intel in die USB-Controller einiger seiner I/O-Controller Hubs eingebaut hat. Der xHCI-Treiber für USB-3.0-Hardware soll nun Daten flotter übertragen und bietet Unterstützung für Isochronous Transfers.

Mehr Infos

Was sich an den Treibern für Ihr System geändert hat

Über das Git-Web-Frontend auf Kernel.org lassen sich 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 modularisierten Kerneln der Linux-Distributionen helfen häufig die Ausgaben bei der Suche, welche das Programm modinfo zusammen mit den von lsmod ausgegebenen Modulnamen aufruft:

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

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

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

  • Die Kernel-Hacker haben die Nutzung des Big Kernel Lock (BKL) im Infrastruktur-Code und zahlreichen Treibern weiter reduziert. Damit nähern sich die Entwickler weiter dem Ziel, dass der Kernel auf Standard-Systemen ohne diesen sperrigen Locking-Mechanismus arbeitet, der die Skalierbarkeit und die System-Performance verschlechtert.
  • Der Prozess-Scheduler reduziert in bestimmten Situation nun den Wettbewerb zwischen Kernel-Threads, die eine exklusive Kontrolle über eine belegte Ressource erlangen wollen. Dadurch kann der aktive Thread ungestörter arbeiten, was den Datendurchsatz teilweise erheblich steigert (Commit, LWN.net-Artikel)
  • Fast einen Monat nach dem Ende des Merge Window haben die Kernel-Hacker eine weitere Änderung am Prozess-Scheduler vorgenommen, durch den der Scheduler die maximalen Wartezeiten insbesondere auf Desktop-Systemen reduzieren soll, wenn parallel andere Prozesse CPU-Zeit fordern – das verspricht eine bessere Reaktionsgeschwindigkeit, wodurch sich das System flotter anfühlen soll. Die der Änderung vorausgegangene Diskussion und der Commit-Kommentar erläutern Hintergründe und liefern Messwerte, laut denen sich die maximale Latenz im Test-Szenario beinahe halbiert hat.
  • Die Kernel-Hacker wollen mit 2.6.36 das Problem beseitigt haben, durch das sich Systeme mit 2.6.35 und einigen früheren Kernelversionen unter bestimmten Bedingungen extrem langsam anfühlten oder zeitweise gar nicht mehr reagierten, während der Kernel größere Datenmengen auf ein langsames Medium (etwa einen USB-Stick) schrieb (u. a. 1).
  • Über neue Schnittstellen lässt sich ab 2.6.36 auslesen, welche PCI/PCIe-Devices die zur Laufzeit nutzbaren Stromsparmodi von I/O-Geräten wie weit nutzen; einige diese Daten kann die kürzlich erschienene Version 1.13 von PowerTop bereits auslesen und aufgearbeitet ausgeben.
  • Zum Plattform-Subsystem stieß der Treiber ideapad für die gleichnamigen Netbooks von Lenovo.
  • Die neue Nutzer manchmal verwirrende Scroll Acceleration im Treiber für die Magic Mouse ist nun standardmäßig deaktiviert und muss über einen Modul-Parameter eingeschaltet werden.
Linux- Version Anzahl Dateien¹ Zeilen
Quelltext²
(Ohne Dokum.)
Entwick-lungs- zeitraum Anzahl Commits³ Diffstat⁴
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(-)
2.6.34 32297 13320934
(11861616)
82 Tage 9443 11154 files changed,
 609854 insertions(+),
 278958 deletions(-)
2.6.35 33316 13545604
(12250679)
77 Tage 9801 8889 files changed,
 691927 insertions(+),
 467252 deletions(-)
2.6.36 34301 13499457
(12539782)
80 Tage 9501 9202 files changed,
 582139 insertions(+),
 628362 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)

Trotz Nicht-Wachstum und einer vergleichsweise schnellen Entwicklung bringt auch Linux 2.6.36 wieder zahlreiche Verbesserungen. Linux-Anwender dürften gerade von den Optimierungen und Fehlerkorrekturen rund um das Memory Management sowie der besseren Reaktionsgeschwindigkeit durch die Änderungen am Scheduler profitieren. Zudem sind Zukunftsaussichten des unter anderem bei Ubuntu eingesetzten AppArmor durch die Aufnahme in den Hauptentwicklungszweig nun deutlich rosiger.

Wie immer sind zudem die vielen neuen und überarbeiteten Treiber kurz- und langfristig von großer Wichtigkeit – etwa die erweiterte Unterstützung für USB- und IR-Hardware. Langfristig mag auch die derzeit nur mit dem KMS-Intel-Treiber umsetzbare und vielleicht etwas exotisch anmutende KDB-Shell etwas werden, was fortgeschrittenen Anwendern oder System-Administratoren die Fehleranalyse erleichtert.

Direkt nach der Fertigstellung von 2.6.36 beginnt nun das üblicherweise zwei Wochen lange, diesmal aber wohl nur zirka zehn Tage dauernde Merge Window, in dem die Kernel-Entwickler den Großteil der Änderungen für die nächste Kernel-Version in den Hauptentwicklungszweig von Linux integrieren. Für diese erste Phase im Entwicklungszyklus von 2.6.37 haben die Kernel-Hacker schon wieder zahlreiche Änderungen vorbereitet – etwa weitere der im Text bereits erwähnten "VFS Scalability Patches".
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 folgende Versionen mitbringen dürfte. [...] (...mehr...)

Zur Aufnahme vorgesehen sind ferner zahlreiche Änderungen am Dateisystem- und Block-Layer-Code. Durch sie werden Schreibbarrieren intern anders gehandhabt und sollen seltener als bislang zum Einsatz kommen, was Performance-Verbesserungen verspricht; Hintergründe zu den Änderungen liefert ein Artikel bei LWN.net. Wahrscheinlich werden auch Patches einziehen, durch die sich Anwender einen Kernel übersetzen können, der ohne das Big Kernel Lock (BKL) auskommt; auch dazu liefert ein Artikel bei LWN.net Details.

Vorbereitet sind auch Erweiterungen für die KMS-Treiber Radeon und Nouveau, durch den sie beiden auch die KDB-Shell bieten, die bei 2.6.36 nur mit den Intel-KMS-Treibern funktioniert. Zum Staging-Bereich soll der Treiber r8712u für RTL8192-USB-Chips stoßen; der Treiber carl9170 setzt an, die Treiber otus (Staging-Bereich) und ar9170usb zu ersetzen. Zum Hauptentwicklungszweig von Linux soll auch Treibercode für das Magic Trackpad von Apple stoßen. Größere Änderungen sind auch für den DisplayLink-Treiber udlfb vorbereitet – er bleibt aber bis auf weiteres ein Staging-Treiber.

Die kommenden Tage werden zeigen, welche dieser Änderungen Torvalds tatsächlich in den Hauptentwicklungszweig integriert. Wie üblich wird das Kernel-Log in c't und auf heise open über diese und andere wichtige Neuerungen am Linux-Kernel und in dessen Umfeld berichten – dazu zählen auch neue Versionen der Stable-Kernel-Series (2.6.36.y), die in den kommenden Wochen den einen oder anderen Fehler korrigieren dürften, der bei der Arbeit an 2.6.36 übersehen oder ignoriert wurde.

Zudem wird sich das Kernel-Log auf heise open wie üblich im Rahmen einer Artikel-Serie mit dem Titel "Was 2.6.37 bringt" umfassend mit den Neuerungen der nächsten Kernel-Version auseinander setzen. Sollten Torvalds und seine Mitstreiter etwas schneller als üblich arbeiten, könnte der Linux-Kernel 2.6.37 noch zu Weihnachten erscheinen; eine Veröffentlichung Anfang nächsten Jahres scheint derzeit allerdings wahrscheinlicher. Zur Veröffentlichung wird dann wieder ein Kernel-Log wie dieses auf heise open eine Überblick über die Neuerungen geben.

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige später meist auch im Kernel-Log erwähnte Themen als "@kernellogauthor" bei Identi.ca und Twitter.

(thl) (thl)