zurück zum Artikel

Feinschliff und Anbauten – Die wichtigsten Neuerungen von Linux 2.6.26

Trends & News | Kernel-Log

Die neue Kernel-Version bringt neue und überarbeitete WLAN-Treiber, Unterstützung für eine PCI-Express-Stromspartechnik und den Kernel-Debugger KGDB mit. Hinzu kommen wie immer eine Flut weiterer Verbesserungen an Treibern und Infrastruktur.

Kernel-Log-Logo

Nachdem Linux 2.6.24 [1] und 2.6.25 [2] neue Rekorde beim Umfang der eingepflegten Änderungen aufstellten, ließen es die Kernel-Hacker [3] in den vergangenen zwölf Wochen beim Zusammenstellen der jetzt freigegebenen Linux-Version 2.6.26 [4] wieder ein klein wenig ruhiger angehen. Mit knapp zehntausend Commits [5] und einer Vielzahl neuer, modifizierter oder entfernter Zeilen Quellcode bringt die jüngste Linux-Version aber dennoch wieder einen Berg von Neuerungen. Von denen profitieren vielfach auch Linux-Anwender über kurz oder lang, denn selbst wenn sie sich mit der zentralen Instanz ihres Linux-Systems normalerweise nicht näher auseinandersetzen, so werden doch viele Distributionen bald diese oder darauf aufbauende Kernel-Versionen ausliefern.

So hat Linus Torvalds unter anderem seine alte Abneigung gegenüber Kernel-Debuggern aufgegeben und mit KGDB einen solchen aufgenommen [6]. Weniger die Fehlersuche erleichtern als die Performance verbessern soll die Unterstützung [7] für die Page Attribute Tables (PAT [8]), über die der Kernel das Caching-Verhalten moderner Prozessoren besser beeinflussen kann. Hinzu stießen ferner Readonly-Bind-Mounts [9] und eine Fülle von Verbesserungen [10] für die Virtualisierungslösungen KVM und Xen; zudem kann der Kernel nun mit dem unter anderem bei Blu-ray-Medien eingesetzten UDF-Version 2.50 umgehen [11].

Die Hardware-Unterstützung von Linux verbessern wie bei jeder neuen Version der Hauptentwicklungslinie eine Vielzahl von Änderungen [12] an Treibern und der sie umgebenden Infrastruktur. So gab es wie schon bei 2.6.24 und 2.6.25 wieder eine ganze Menge Verbesserungen [13] für WLAN-Hardware, wodurch Linux nun schnelle WLAN-Übertragungen besser beherrscht und mit Mesh-Netzwerken umzugehen vermag. Hinzu stießen ferner zahlreiche [14] neue und überarbeitete Video-4-Linux- und Audio-Treiber – darunter der generische Treiber uvcvideo, der zahlreiche Notebook-Kameras anspricht. Beim Stromsparen soll ferner die Unterstützung [15] der PCI-Express-Stromspartechnik Active State Power Management (ASPM [16]) helfen.

Die bislang genannten Änderungen sind jedoch nur die bedeutsamsten von Linux 2.6.26. Das detaillierte Changelog [17] listet alle Anpassungen seit der Version 2.6.25 im Detail für all jene, die es ganz genau wissen wollen und genug Zeit zum Studium des mehrere Megabyte großen Dokuments mitbringen. Das folgende Kernel-Log [18] bietet einen flotter zu lesenden Überblick über eben jene Neuerungen, die einen Großteil der Linux-Nutzer direkt oder indirekt betreffen:

Kernel-Log-Logo

Im Artikel finden sich zudem einige Verweise auf das Glossar von heise online, das einige allgemeine und zeitlose Hintergrundinformationen zum Linux-Kernel und dessen Entwicklung bereithält:

[34]

Informationsquelle Quellcodeverwaltung Viele der Links im Artikel und die an dessen Ende gelisteten Kurzbeschreibung zu durchaus interessanten, aber weniger wichtigen Änderungen [35] verweisen auf den oder die für die Neuerung jeweils relevanten Commit [36] im Web-Frontend [37] des von Linus Torvalds mit Git [38] verwalteten Linux-Quellcodes. Dort finden sich viele weitere Informationen zu den einzelnen Änderungen und ihren Hintergründen. Auch die im Rahmen des jeweiligen Commit angewendeten Patches [39] sind im Web-Frontend über den Link Commitdiff abrufbar und durch Kommentare und Dokumentationsänderungen häufig auch für Interessierte ohne Programmierkenntnisse eine gute Quelle für weitere Informationen. Das Web-Frontend von Git zeigt im unteren Bereich eine Liste der im Rahmen des jeweiligen Commit veränderten Dateien an. Hinter den Dateinamen finden sich Links, über die sich die Änderungen an den einzelnen Dateien separat anzeigen lassen; so kann man etwa Änderungen an der Dokumentation oder den für die Kernel-Konfiguration zuständigen Kconfig-Dateien einzeln betrachten.

Nach der Aufnahme des WLAN-Stacks MAC80211 [40] in 2.6.22 [41] und dem Einpflegen zahlreicher darauf aufbauender Treiber bei 2.6.24 [42] und 2.6.25 [43] gab es erneut eine Menge Verbesserungen an der Infrastruktur und den Treibern [44] für WLAN-Hardware. So erhielt die mit 2.6.25 erstmals integrierte, aber noch recht rudimentäre Unterstützung für schnelle WLAN-Übertragungen nach IEEE-Standardentwurf 802.11n [45] ordentlich Feinschliff, sodass die Kernel-Hacker die schnellen Übertragungsmodi im für neuere Centrino-WLAN-Module zuständigen Iwlwifi-Treiber iwl4965 nun auch aktivieren [46].

Bei den beiden Iwlwifi-Treibern funktioniert nun [47] die bei vielen Notebooks zu findende WLAN-LED korrekt – ein kleines, aber nicht zu unterschätzendes Detail. Ganz erheblich überarbeiteten [48] die Kernel-Entwickler das noch recht junge WLAN-Konfigurationsinterface cfg80211 [49]. Das schickt sich langfristig an, die bislang zur WLAN-Konfiguration genutzten Wireless-Extensions zu ersetzen.

Dank der Arbeit des Open80211s-Projekts [50] und der Treiber-Entwickler beherrschen der WLAN-Stack und die Treiber zd1211rw und b43 nun auch Mesh-Netzwerke [51] nach Draft 2.0 des IEEE-Standardentwurf 802.11s [52] – bislang gelang Mesh nur dem WLAN-Treiber für OLPC-Notebooks. Der für Broadcom-WLAN-Chips zuständige Treiber b43 unterstützt erstmals PCMCIA-Hardware sowie QoS [53] (Quality of Service [54]). Weichen musste der ältere, von den Treiber b43 und b43legacy abgelöste Broadcom-Treiber Treiber bcm43xx [55]; das gleiche Schicksal ereilte auch den alten IEEE80211-Softmac-WLAN-Stack [56].

Die Infrastruktur für das bei Ad-hoc-Netzwerken genutzte IBSS (Independent Basic Service Set [57]) erhielt an vielen Stellen Optimierungen und unterstützt nun IBSS merging [58]. Zahlreiche Verbesserungen an der WLAN-Infrastruktur gab es auch für den Betrieb als Access-Point – abgeschlossen ist die Arbeit jedoch noch nicht, sodass dies bislang nur für experimentierfreudige Entwickler und Nutzer von Bedeutung ist, die weitere Komponenten und Patches einbinden. Diese Klientel dürften unter Umständen auch Interesse am PDF "The mac80211 subsystem for kernel developers" [59] finden, dass WLAN-Kernel-Hacker Johannes Berg kürzlich veröffentlichte.

[60]

Am noch recht jungen [61] Completely Fair Scheduler (CFS [62]) gab es erneut zahlreiche kleinere Verbesserungen; diese verbessern den für die CPU-Zeitzuteilung der Prozesse und Tasks zuständigen Scheduler erneut auf verschiedenste Weise. Auf Desktop-Systemen dürfte man davon aber zumeist wenig zu spüren bekommen, da die Optimierungen sich eher bei komplexeren Konfiguration zeigen dürften – dazu zählen insbesondere Umgebungen, wo es auf Echtzeit-Eigenschaften (Realtime) ankommt.

Das UDF-Dateisystem erweiterten [63] die Kernel-Hacker bei 2.6.26 um Unterstützung [64] zum Lesen der häufig bei Blu-ray Discs verwendete UDF-Version 2.50. Zahlreiche Patches (etwa 1 [65], 2 [66], 3 [67]) erweitern ferner den CIFS-Code um Unterstützung für Microsofts Distributed File System (DFS [68]). Beim Mounten einer Freigabe eines Windows- oder Samba-Servers folgt CIFS somit in Zukunft den DFS-Angaben zu den eigentlichen, häufig von anderen Servern aus betreuten Freigaben – bislang musste man diese manuell direkt einbinden oder auf andere Client-Software zurückgreifen. Der Kernel reagiert zudem [69] in Zukunft anders beim Ändern von Dateiattributen bei CIFS-Dateisystemen, sofern der Server die Unix Externsions oder Cifsacl nicht nutzt; über einen speziellen Mount-Parameter lässt sich aber auch das bisherige Verhalten wieder aktivieren.

Versierte Anwender und Kernel-Entwickler können bei der Fehlersuche auf x86-Systemen in Zukunft auf den Kernel-Debugger KGDB (Kern [70], x86-Unterstützung [71], Dokumentation [72], Kernel-Parameter [73]) zurückgreifen. Diesen nahm Torvalds – ursprünglich strikter Gegner [74] eines im Kernel integrierten Debuggers – für 2.6.26 schließlich ohne (öffentliches) Murren auf, nachdem er ihn bei 2.6.25 noch außen vor [75] gelassen hatte. Zwischenzeitlich hatten die Kernel-Hacker aber noch verschiedene Änderungen vorgenommen, um einige Kritikpunkte am Code und dem Aufbau auszuräumen. Durch diese und bereits zuvor durchgeführte Änderungen wurde der ursprünglich von LinSysSoft Technologies gepflegte Debugger [76] erheblich umgebaut und stark abgespeckt; die Kernel-Entwickler sprechen daher vielfach von KGDB-light [77], dem derzeit noch Funktionen wie KGDB-over-ethernet fehlen.

Kernel-Log-Logo

Den bereits mit 2.6.25 kurzzeitig [78] in der Hauptentwicklungslinie aufgenommenen Code zur Unterstützung von Active State Power Management (ASPM [79]) integrieren [80] die Kernel-Entwickler nun in einer überarbeiteten Fassung erneut. Dadurch vermag 2.6.26 auf modernen Notebooks ein wenig stromsparender zu arbeiten als seine Vorgänger – da die Kernel-Hacker allerdings noch Schwierigkeiten mit ASPM erwarten, ist die PCI-Express-Stromspartechnik in der Standard-Konfiguration vorerst deaktiviert.

[81]

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 eine Linux-Version 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.26) 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.24.10 oder 2.6.25.8). (...mehr... [82])

Erneut erheblich erweitert wurde die Virtualisierungslösung KVM [83] (Kernel-based Virtual Machine), die Linux selbst zum Hypervisor macht. So wird das im Kernel enthaltene KVM mit 2.6.26 erstmals die Architekturen IA64 (1 [84], 2 [85], Dokumentation [86]) und s390 (1 [87], 2 [88], Dokumentation [89]) sowie PowerPC-Prozessoren der 44x-Reihe [90] unterstützen – bislang arbeitet KVM nur auf 32- und 64-Bit-x86-Prozessoren. Für diese gab es ebenfalls zahlreiche Verbesserungen – etwa die für FreeDOS benötigte Emulation von Hardware Task Switching [91] sowie Unterstützung für die in neueren Prozessoren enthaltenen Virtualisierungstechniken Nested Page Tables (1 [92], 2 [93], 3 [94]) von AMD sowie die Virtual Processor Identification [95] (VPID) und Extended Page Tables (EPT; 1 [96], 2 [97], 3 [98]) von Intel.

Auch an der KVM-Infrastruktur gab es ähnlich wie bei den vorangegangenen Kernel-Versionen wieder zahlreiche Verbesserungen, von denen viele Kompatibilität oder Performance verbessern sollen; dazu zählen etwa grundlegende Paravirt-Unterstützung (etwa 1 [99], 2 [100], 3 [101], 4 [102]), Large Page Support [103], PIT-Emulation im Kernel [104] und das Performance-Tracing-System kvmtrace (1 [105], 2 [106]). Zudem gilt KVM nun nicht mehr [107] als experimentell; der KVM-Betreuer musste sich jedoch zum wiederholten Male harsche Worte [108] von Torvalds anhören, da er erneut größere Korrekturen erst spät eingesandt hatte.

Nicht nur KVM wurde verbessert, auch der seit Linux 2.6.23 [109] im Kernel enthaltenen Unterstützung zum Betrieb als Xen-Gast widmeten sich die Entwickler und integrierten unter anderem den Balloon Driver [110], über den sich die dem Gast-System zugewiesene Speichermenge reduzieren lässt. Auch die paravirtualisierten Framebuffer-, Tastatur- und Maus-Treiber (xen pvfb [111]) pflegten die Kernel-Entwickler ein. Durch eine kurz vor Ende des Entwicklungszyklus integrierte Änderung [112] setzt Xen in Zukunft einen mit PAE-Unterstützung kompilierten Kernel voraus.

Das VFS (Virtual File System) stellt in Zukunft bereits eingebundene Dateisysteme auf Wunsch an anderer Stelle schreibgeschützt bereit (r/o bind mounts [113]; unter anderem 1 [114], 2 [115]). Das ist insbesondere für Container-Virtualisierung interessant, damit nicht ein Gastsystem Daten eines gemeinsam genutzten Root-Dateisystem verändert. Wie schon bei den vorangegangenen Linux-Versionen gab es auch für Container eine ganze Reihe von Verbesserungen (darunter etwa eine Whitelist für Devices [116]) in verschiedensten Bereichen des Kernels. Die Unterstützung von Container-Virtualisierung nähert sich somit einem Reifegrad, wo Softare wie Linux-VServer [117] oder OpenVZ [118] bald alle wichtigen Funktionen ohne zusätzliche Kernel-Patches realisieren können.

[119]

Auch in den internen Abläufen des Kernel gab es wieder zahlreiche Änderungen – von denen dürften die Anwender zwar vielfach nichts bemerken, aber häufig indirekt profitieren. Neu dabei mit 2.6.26 ist etwa die Unterstützung für PAT (Page Attribute Table [120]) auf x86-Prozessoren [121] (Dokumentation [122]). Dadurch kann der Kernel in Zukunft besser Einfluss [123] auf das von modernen Prozessoren durchgeführte Caching nehmen.

Die Generic semaphore implementation [124] führt ferner den bisher Architektur-spezifischen Code für das Locking mit Semaphoren [125] zusammen und verkleinert [126] ihn dadurch erheblich (1 [127], 2 [128], Dokumentation [129], Pull Request [130]). Dadurch soll der Code einfacher zu warten und weniger fehleranfällig sein. Das Locking arbeitet mit einem Semaphor [131] aber auch ein wenig langsamer, da der Code nicht so sehr auf die Besonderheiten der verschiedenen Architekturen optimiert ist – dieser Nachteil soll nicht sonderlich schwer wiegen, da aktuelle Kernel-Versionen häufiger ein Mutex [132] statt ein Semaphor nutzen.

Tatsächlich zeigten einige Vorabversionen von 2.6.26 in verschiedenen Tests jedoch größere durch die Generic semaphores ausgelösten Performance-Probleme. Eine der schwerwiegendsten beseitigte Torvalds selbst [133]. Das Big Kernel Lock (BKL) wird dadurch jedoch wie schon in frühen Versionen der 2.6-Serie wieder über ein Spinlock [134] statt ein Semaphor umgesetzt; in folge dessen musste die Konfigurationsoption PREEMPT_BKL ("Preempt The Big Kernel Lock") weichen [135].

In Rahmen der Diskussionen um die beste Korrektur für das Performance-Probleme setzen sich indes einige Entwickler näher mit dem Performance-kritischem BKL auseinander und haben mit Arbeiten in verschiedenen Bereichen des Kernels begonnen, um das BKL langfristig komplett entfernen zu können; statt dessen sollen das Locking feiner gestaffelt werden, was gerade aus Systemen mit vielen CPUs Performance-Vorteile bieten sollte.

Auch beim Basis-Framework für Treiber ("Driver Core") gab es größere Änderungen [136], die vor allen den Kernel-Hackern die korrekter Nutzung erleichtern soll. Alan Cox arbeitet derweil weiter an der Grundrenovierung im TTY-Code des Kernels und brachte verschiedene [137] größere [138] Änderungen [139] ein. Durch Programmiertricks konnten die Entwickler zudem die Größe des Tcrypt-Kernel-Moduls immens schrumpfen [140]. Umfangreichere Änderungen [141] gab es auch bei Caching-Techniken für Fuse [142] (Filesystem in Userspace). Restriktionen beim Zugriff auf /dev/mem (1 [143], 2 [144]) sollen Einfallstore für Angreifer schließen. Und ob SELinux, SMACK oder ein anderes auf LSM aufsetzendes Sicherheitsframework zum Einsatz kommt, lässt sich zukünftig über einen neuen Kernel-Parameter [145] festlegen. Versehentliches Laden eigentlich nicht zum Kernel passender Module sollen einige Änderungen (1 [146], 2 [147], 3 [148], 4 [149]) im Module-Loader unterbinden. Zudem kann der Kernel nun einen einfachen Speichertest selbst durchführen (1 [150], 2 [151], Dokumentation [152]).

Kernel-Log-Logo

Nachdem die Kernel-Hacker mit Linux 2.6.24 die Quellcode-Verzeichnisse für die 32- und 64-Bit-x86-Architekturen größtenteils skriptgesteuert zusammenlegten [153] führten die Programmierer nun bei 2.6.26 ebenso wie schon bei 2.6.25 zuvor viele Dateien händisch zusammen. Dabei erledigten sie zahlreiche Aufräumarbeiten, um den Code zu vereinfachen und robuster zu machen. Auch bei den Stromspartechniken zur Nutzung des Modi Bereitschaft (ACPI S3/Suspend-to-RAM) und Ruhezustand (Hibernate/Suspend-to-Disk) gab es wie mit fast jeder Version einige Verbesserungen [154] und Aufräumarbeiten [155].

Treibereien Unter der Unmenge der in Linux 2.6.26 integrierten Änderungen sind viele mehr, die die Hardware-Unterstützung der zahlreichen in den Linux-Quellen enthaltenen Treiber verbessern, ihren Funktionsumfang erweitern oder Fehler korrigieren. Die nebenstehenden Absätze erwähnten nur die allerwichtigsten Neuerungen bei Treibern; viele weitere finden sich am Ende des Artikels [156] in einer thematisch grob sortierten Liste mit einer Kurzbeschreibungen der jeweiligen Änderung. Diese verlinkt zum jeweiligen Commit [157] im Webinterface des Verwaltungssystems für den Linux-Quellcode, wo sich in der Regel weitere Informationen zur Änderung und ihren Hintergründen finden.

Neben einiger der bereits erwähnten Verbesserungen bei der Hardware-Unterstützung integrierten die Entwickler wie üblich zahlreiche weitere Treiber oder überarbeiteten die bereite zuvor enthaltenen Treiber und die sie umgebenen Subsysteme. Neu Aufgenommen wurde etwa der Treiber eeepc-laptop [158], der sich um die Spezialitäten des EeePC von Asus kümmert – dazu zählen etwa die Steuerung der Hintergrundbeleuchtung [159] und der Lüfter [160]. Zum Kernel hinzu stieß ferner die Unterstützung [161] für die Architektur der OLPC-Notebooks.

Zahlreiche der eingepflegten Patches verändern ferner die vom Alsa-Projekt betreuten Sound-Treiber. Durch Änderung [162] am Treiber virtuoso etwa unterstützt dieser nun die Asus-Soundkarte Xonar DX. Ein neuer Alsa-Treiber [163] versucht sich auf Wunsch an der Audio-Ausgabe über den zumeist im Gehäuse integrierten und für das klassische Piepen des PCs zuständigen "PC-Speaker"; die Entwickler raten jedoch [164], den Treiber normalerweise besser nicht zu aktivieren, damit die Audio-Ausgabe nicht versehentlich über den PC-Speaker statt die Soundkarte erfolgt.

Die Kernel-Sound-Treiber unterstützen [165] zudem bereits den HDMI-Sound-Controller der erst kürzlich vorgestellten GPUs der neusten Radeon-Grafikkartengeneration [166]. Zahlreiche weitere, am Ende des Artikels aufgelistete Änderungen korrigieren Fehler, erweitern die Fähigkeiten der Treiber oder sorgen über eine Whitelist dafür, dass die bei vielen PCs, Mainboards und Notebooks nötige Sonderbehandlung für Audio-Hardware möglichst automatisch angewendet wird.

Auch bei den für TV- und Video-Hardware zuständigen Video-4-Linux-Treibern tat sich wieder einiges [167] – unter anderem wurde die Unterstützung für Hybrid-Tuner erheblich optimiert. Neu dabei ist der erst kurz vor der Fertigstellung von 2.6.26 aufgenommene [168] Treiber uvcvideo [169] für eine ganze Reihe verschiedener [170] USB-Kameras, die der USB Device Class Definition for Video Devices [171] (kurz meist USB video class oder UVC genannt) folgen; dazu zählen insbesondere viele der in neueren Notebooks verbauten Webcams. Erstmals bringt Linux mit 2.6.26 den Treiber cx18 [172] für TV-Karten mit dem Conexant cx23418 (etwa die Hauppauge HVR-1600), den Treiber mxl5505s [173] für den 5505-Chips von MaxiLinear sowie den von einem Hauppauge-Mitarbeiter eingebrachten V4L-Treiber au0828 [174] für die Hauppauge-TV-Hardware HVR950Q, HVR850 und FusioHDTV7-USB mit. Der Treiber cx23885 unterstützt [175] nun auch den Hardware Encoder Conexant cx23417.

Recht spät im Entwicklungszyklus hat Dave Airlie eine größere Sammlung DRM-Patches [176] zur Aufnahme vorgeschlagen, die den Microcode für Radeon-Grafikkarten mit dem von AMD freigegebenen abgleichen [177] und 3D-Unterstützung für R500-GPUs im Direct Rendering Manager des Kernels nachrüsten [178]. Torvalds integrierte die Patches trotz der späten Einsendung und des Umfangs – für 3D-Beschleunigung bei der Radeon X1000-Serie braucht man somit neben Linux 2.6.26 nur noch neue Versionen der X.org-Treiber ati oder radeonhd sowie ein aktuelles Mesa.

Nachdem es um das IDE-Subsystem zeitweise recht still geworden war, hat der für diesen Bereich zuständige Entwickler Bartlomiej Zolnierkiewicz in den vergangenen Monaten den IDE-Code stark überarbeitet und aufgeräumt (1 [179], 2 [180], 3 [181], 4 [182], 5 [183]); diese Arbeit hat er auch bei 2.6.26 fortgesetzt und dabei zahlreiche Kernel-Parameter entfernt und Untersützung zum "Warm-Plug" nachgerüstet (siehe Anhang [184]). Somit wird das IDE-Subsystem wohl noch einige Zeit weiter parallel zu den neueren im Libata-Subsystem angesiedelten PATA-Treibern erhalten bleiben. Viele der neueren Distributionen bevorzugen allerdings die Libata-Treiber oder setzen diese ausschließlich ein.

Weiter verbessert wurde auch der mit 2.6.22 [185] aufgenommene FireWire-Stack Juju [186]. Der neue USB-Treiber cdc-wdm [187] spricht drahtlos Handys und Modems an, die CDC WMC beherrschen. Für Menschen mit eingeschränkten Sehfähigkeiten bringt der Kernel ab 2.6.26 einen einfacher Treiber für Braille Screenreader [188] mit.

Bei all den neuen und überarbeiteten Treibern mussten einige aber auch weichen. So entfernten die Entwickler den für Marvell-LAN-Hardware zuständigen Treiber sk98lin [189] – dieser ursprünglich vom Chipsatzhersteller entwickelte Treiber wurde im Rahmen der Kernel-Quellen schon lange nicht mehr gewartet, nachdem die Kernel-Entwickler die Treiber skge und sky2 von Grund auf neu als Ersatz für sk98lin entwickelt hatten.

[190]

Auch im jetzt abgeschlossenen Entwicklungszyklus pflegten die Kernel-Entwickler die eine oder andere Änderung ein, um sie später wieder rückgängig zu machen. Ein Patch [191] von Ingo Molnar etwas sorgte dafür, dass der x86-32-Kernel in der Standard-Konfiguration nur mehr einen 4K großen Stack [192] pro Prozess/Thread nutzt. Daraus entstand eine recht lange [193] Diskussion um die verschiedenen Vor- und Nachteile sowie Seiteneffekte von 4K-Stacks, wie sie in den vergangenen Jahren schon einige Male geführt wurde. Schließlich wurde die Änderung dann wieder zurückgezogen [194] – es bleibt abzuwarten, ob früher oder später jemand erneut einen solchen Vorstoß wagt, oder ob die 4K-Stacks als Standard für x86-32-Systeme bald vergessen sein werden, wenn sich x86-64-CPUs und -Distributionen endgültig durchsetzen.

Der Patch, der die 4K-Stacks zur Standardvorgabe erhob, war aber keineswegs der einzige, den die Kernel-Hacker wieder verwarfen – insgesamt wurden fast vierzig der für 2.6.26 zwischenzeitlich angenommenen Patches vor dessen Freigabe wieder entfernt. Darunter war etwa ein fast 150 KByte großer UDP-Patch [195] im Netzwerk-Subsystem sowie verschiedene [196] Verbesserungen [197] an CFS. Zumindest einige dieser Änderungen dürften in überarbeiteter Form in Linux 2.6.27 oder späteren Kernel-Versionen einziehen.

[198]

Neben dem Hin- und Her bei den Patches gab es während dieses Entwicklungszyklus zahlreiche Diskussionen und Entwicklungen, die auf die zukünftigen Entwicklungsprozesse Einfluss haben dürften. Mehrere [199], teils umfangreiche Debatten [200] unter Beteiligung vieler Entwickler-Größen drehten sich etwa um die vermeintlich zu hohe Aufnahmegeschwindigkeit [201] und die unzureichende Qualität der in den Hauptentwicklungszweig [202] eingepflegten Patches. So beschwerten sich einige Entwickler, dass die Snapshot aus dem Linux-Quellcodeverwaltungssystem während des Merge-Window häufig nicht kompilierten oder nicht einmal im Ansatz liefen; in diesem Zusammenhang hoben einige Kernel-Hacker zudem hervor, dass zahlreiche Patches ihrer Ansicht nach vor der Aufnahme nicht ausreichend begutachtet worden waren.

Al Viro und Andrew Morton zeigten sich [203] im Rahmen einer Diskussion weitgehend einig darüber, dass die zur Integration in die Hauptentwicklungslinie vorgesehenen Patches für andere Kernel-Entwickler besser sichtbar sein sollen – dadurch können die Änderungen gegebenenfalls rechtzeitig und ohne viel Aufhebens angepasst werden, bevor Torvalds die Patches in das Quellcodeverwaltungssystem eingepflegt. Torvalds selbst macht deutlich [204] klar, dass er die Rate der aufgenommenen Änderungen keineswegs verlangsamen [205] möchte. Er wies auch die Forderung zurück, das Merge Window auszudehnen; im Gegenteil, er möchte es eher verkürzen [206].

Es ist derzeit nicht abzusehen, welche Konsequenz diese facettenreichen Diskussion (die das Kernel-Log hier nur oberflächlich wiedergeben kann) tatsächlich langfristig auf den Entwicklungsprozess von Linux haben. Es herrscht aber offensichtlich weitgehend Einigkeit darüber, dass ein wenig Optimierung am Entwicklungsprozess überfällig ist. Das hatten zumindest einige Kernel-Hacker aber bereits zuvor erkannt und im Februar den Entwicklerzweig linux-next [207] gestartet. Der führt in die Entwicklungen der verschiedenen Subsystem und Kernel-Hacker zusammen, die in die jeweils übernächste Linux-Version einziehen sollen (also 2.6.27 bis heute und 2.6.28 in den kommenden Wochen).

Dadurch können die Entwickler ihre Patches frühzeitig aufeinander abstimmen; die Neuerungen aus verschiedenen Bereichen sind ferner gebündelt in einem Archiv zu finden, was Testern die Beschaffung erleichtert. Schließlich vereinfacht linux-next den Kernel-Hackern den Blick in den Entwicklungsstand anderer Kernel-Hacker; erstere können so gegebenenfalls Kritik äußern, bevor Torvalds die Änderungen tatsächlich in den Hauptentwicklungszweig aufnimmt.

Kernel-Log-Logo

Nachdem der kürzlich auf LWN.net interviewte [208] Andrew Morton mehrere Monate nach einem Maintainer Ausschau hielt, der sich speziell um die Belange von Embedded-Systemen kümmert, haben Paul Gortmaker (Windriver) und David Woodhouse (bis vor kurzem bei Red Hat beschäftigt) diese Aufgabe vor einigen Wochen übernommen [209] und sich in einem Interview [210] auch gleich zu ihren Plänen Stellung genommen.

Linux-
Version
Anzahl
Dateien¹
Zeilen
Quelltext²
Entwicklungs-
zeitraum
Anzahl
Commits
Diffstat⁴
2.6.20 [211] 21280 8102486
(7400843)
66 Tage 4768 5825 files changed,
262475 insertions(+),
136162 deletions(-)
2.6.21 [212] 21614 8246470
(7522286)
80 Tage 5016 6568 files changed,
319232 insertions(+),
175247 deletions(-)
2.6.22 [213] 22411 8499363
(7744727)
74 Tage 6526 7620 files changed,
519591 insertions(+),
266699 deletions(-)
2.6.23 [214] 22530 8566554
(7818168)
93 Tage 6662 7203 files changed,
406268 insertions(+),
339071 deletions(-)
2.6.24 [215] 23062 8859629
(8082358)
107 Tage 9836 10209 files changed,
776107 insertions(+),
483031 deletions(-)
2.6.25 [216] 23810 9232484
(8396250)
83 Tage 12243 9738 files changed,
777371 insertions(+),
404514 deletions(-)
2.6.26 [217] 24270 9411724
(8535933)
88 Tage 9941 8676 files changed,
595393 insertions(+),
416143 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)..v2.6.(x+1)| wc -l
⁴ git diff --shortstat v2.6.(x)..v2.6.(x+1)| wc -l

Linux-Kernel herunterladen

Neue Linux-Versionen sind über die in Amerika [218] und Europa [219] stationierten Server von Kernel.org erhältlich; deren Inhalte spiegeln auch zahlreiche deutsche Mirror-Server [220] . Als Linux-Anwender sollte man neue Linux-Treiber und -Kernel aber normalerweise nicht eigenhändig einspielen sondern auf die Vorarbeit der Linux-Distributoren zurückgreifen. (...mehr... [221])

Auch 2.6.26 bringt wieder eine Fülle von Neuerungen – im Vergleich zu den vorangegangenen vier oder fünf Versionen sind diesmal allerdings etwas weniger Änderungen dabei, von denen auch reine Linux-Anwender direkt profitieren, die sich mit dem Kernel normalerweise nicht näher auseinander setzen. Für diese Anwenderklientel dürfte die neue Kernel-Version auf Notebooks noch am ehesten interessant sein, da dort die Verbesserungen für WLAN und die Stromspartechniken spürbare Vorteile bringen.

Die Entwicklungsgeschwindigkeit hat sich nach den beiden Rekord-Kerneln 2.6.24 [222] und 2.6.25 [223] aber nicht nennenswert verlangsamt, denn die Zahl der Commits und der Zahl der geänderten Zeilen Quellcode ist auch bei 2.6.26 noch deutlich größer, als es bei den vor ein oder zwei Jahren veröffentlichten Kernel-Versionen üblich war. Dazu trägt nicht zuletzt das von Linus Torvalds selbst initiierte [224] und von Torvalds und vielen anderen Kernel-Hackern genutzte Quellcodeverwaltungssystem Git [225] bei. Das benutzt der Linux-Vater nun ebensolange [226] wie zuvor die proprietäre Software Bitkeeper.

Direkt nach der Freigabe von 2.6.26 beginnt nun die erste, normalerweise zirka zwei Wochen lange Phase im Entwicklungszyklus [228] des Linux-Kernels, in der Torvalds die umfangreicheren Änderungen für die nächsten Version in den von ihm betreuten Hauptentwicklungszweig [229] aufnimmt. Nachdem sich der im Februar gestartet Entwicklerzweig linux-next [230] in den vergangenen drei Monaten an Fahrt aufgenommen hat und mittlerweile praktisch alle wichtigen Subsysteme zusammenführt, sollten die Patches der verschiedenen Entwickler diesmal besser als früher aufeinander abgestimmt sein.

Ein genauerer Blick in linux-next und die dort eingepflegten Subsystem-Entwicklerzweige gibt zudem bereits einen recht guten Ausblick auf 2.6.27. Die größte dort zu findende Änderung ist bei der Entstehung dieses Artikels die Abschaffung des Verzeichnisses arch/ppc/ [231]. Die dortigen Dateien sind obsolet, da sich der Code aus arch/powerpc/ nun um die verschiedenen derzeit unterstützten Power- und PowerPC-Architekturen kümmert. Größere Verschiebungen im Quellcode stehen auch bei KVM an, sodass der Patch von 2.6.27 vermutlich wieder recht umfangreich werden dürfte.

David Woodhouse hat derweil einen Haufen Patches [232] für 2.6.27 vorbereitet, durch den viele der im Kernel enthaltene Treiber den Firmware-Loader nutzen [233], statt die Firmware direkt mit in den Kernel oder das jeweilige Kernel-Module einzubinden. Dadurch sollen Linux-Distributoren langfristig die Firmware-Dateien unabhängig vom Kernel und auf Wunsch in neueren Versionen ausliefern können. Woodhouse wollte die Firmware sogar unabhängig von den Kernel-Quellen ausliefern – von diesem Plan sind einige Kernel-Maintainer allerdings nicht sonderlich begeistert [234].

Entwicklungszyklus des Linux-Kernels

[...] Durch den öffentlichen Entwicklungsprozess und einen tiefen Blick in den Kaffeesatz ist heise online/open und der von der Linux-Foundation gewartete Radarschirm des Linux Weather Forecast [235] bereits bei der Vorstellung einer neuen Kernel-Version in der Lage, einige Neuerungen zu benennen, die die darauf folgende Version enthalten dürfte. [...] (...mehr... [236])

In linux-next findet sich ferner mit UBIFS [237] ein neues Dateisystem [238]. Es setzt auf UBI [239] auf und ist nicht für Festplatten gedacht, sondern auf die Besonderheiten von einfachen Flash-Speichermedien abgestimmt, die etwa kein Wear-Leveling in Hardware beherrschen. Auch die bisher unvollständige Unterstützung für Wireless-USB soll ein Patch für 2.6.27 [240] komplett machen.

Nach den bereits erwähnten Diskussionen und Performance-Problemen rund um das Big Kernel Lock (BKL) haben sich zahlreiche Entwickler dessen Eliminierung auf die Fahnen geschrieben (siehe auch 1 [241], 2 [242]). Das Umzusetzen wird einige Zeit dauern – für erste größere Schritte in diese Richtung sorgen allerdings zahlreiche Patches in linux-next, die aller Wahrscheinlichkeit in 2.6.27 einziehen dürften.

Nicht schlecht stehen auch die Aufnahmechancen auch für die Renovierung des Rfkill-Frameworks [243], das die Unterstützung von Schaltern und Funktionstasten zum Ein- und Ausknipsen von WLAN, Bluetooth und Co. bei Notebooks verbessern soll. Genau wie größere Änderungen [244] am Virtual-Memory-Subsystem scheint es aber derzeit wahrscheinlicher, dass diese Änderungen erst in 2.6.28 einfließen.

Viel Diskutiert, bisher aber nicht für 2.6.27 auf den Weg gebracht wurden Änderungen [245], durch die der Kernel in der Lage ist, ungenutzte SATA-Ports von AHCI-Controllern aus Stromspargründen zu deaktivieren. Das soll laut dem Intel-Entwickler auf "den meisten" Notebooks 0,75 Watt einsparen – über das beste Vorgehen scheinen sich die Kernel-Entwickler aber bislang nicht so recht einig [246] geworden zu sein. Auch beim Patch zur Unterstützung des Intel Management Engine Interface [247] (HECI/Host Embedded Controller Interface) ist noch unklar, ob die Kernel-Entwickler diesen für 2.6.27 akzeptieren.

Verschiedene Kernel- und X-Entwickler arbeiten derweil weiter an den erstmals während der 2.6.22-Entwicklung [248] auf der LKML diskutierten [249] Patches, durch die der Linux-Kernel zentrale Aufgaben bei der Grafikkarten-Initialisierung und der Bildschirmansteuerung übernimmt ("Kernel-based Modesetting"). Ob diese Erweiterungen nach verschiedenen Verzögerungen nun in 2.6.27 aufgenommen werden ist noch unklar; es sieht derzeit ein wenig so aus, als ob die Patches die Aufnahme erneut verfehlen.

Wie üblich wird das regelmäßig in c't und unregelmäßig auf heise open erscheinende Kernel-Log [250] in den kommenden Wochen über die wichtigsten in die Hauptentwicklungslinie [251] von Linux integrierten Neuerungen und andere Entwicklungen im Umfeld des Linux-Kernels berichten. Dazu zählen auch neue Versionen der Stable-Kernel-Series [252] (2.6.x.y), die in den nächsten Wochen den ein oder anderen Fehler korrigieren dürften, den die Kernel-Hacker und Tester bei der Entwicklung von 2.6.26 übersehen haben.

Kernel-Log-Logo

Ungefähr Mitte oder Ende September dürften dann die Linux-Version 2.6.27 erscheinen. Deren Änderungen wird dann wie üblich ein längeres Kernel-Log wie dieses auf heise open [253] detailliert beschreiben. (thl [254]/c't)

Die im voranstehenden Artikel erwähnten Neuerungen der jüngsten Linux-Version stellen nur eine Auswahl der bedeutsamsten Änderungen dar – die sprichwörtliche Spitze des Eisbergs, der bei jeder neuen Linux-Version im Hauptentwicklungszweig aus Tausenden von Commits [255] im Quellcodeverwaltungsystem besteht. Zahlreiche weitere ebenfalls wichtige Neuerungen – sozusagen die etwas unterhalb der Eisbergspitze – finden sich im Folgenden als thematisch sortierte Aufzählung mit einer Kurzbeschreibung. Bei ihr handelt es sich zumeist um die (teilweise leicht angepasste) englische Überschriften des Commits, die auf die jeweilige Änderung im Webfrontend des Quellcodeverwaltungssystems verlinkt. Das hält in der Regel detailliertere Information und Hintergründe zur Anpassung sowie den Patch selbst vor.

Welche Treiber alle geändert wurden Über das Git-Web-Frontend auf Kernel.org lassen sich auch Informationen zu Änderungen an einzelnen Dateien des Linux-Kernels aufrufen – so lässt sich beispielsweise herausfinden, ob es Neuerungen an den auf dem eigenen 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: [VERBATIM0] 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 alleine. Kennt man die ungefähre Position des Treiber-Quellcodes, navigiert man im Git-Webinterface über die Tree-Ansicht [256] 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 [257] lassen sich so beispielsweise die Änderungen am Treiber-Code von e100 [258] (drivers/net/e100.c) und e1000 [259] (drivers/net/e1000/) anzeigen und näher unter die Lupe nehmen.

Powermanagement, ACPI and PCI:

Notebook- and PDA specific:

USB:

Input Subsystem (input devices like keyboard, mice or joysticks):

Storage

Libata (newer drivers for Parallel- and Serial-ATA controllers):

IDE (alternative/older drivers mainly for Parallel-ATA controllers):

SCSI:

Network:

General:

LAN specific:

WLAN specific:

Graphics:

Audio:

V4L (Video-4-Linux):

Hardware-Monitoring/I2C:

Miscellaneous:

Architecture code:

x86:

Others:

General kernel infrastructure:

Filesystems, VFS, Block, DM, MD:

Virtualization:

Documentation:

Miscellaneous:

Eine diesem Auflistung ähnlichen Überblick sowie eine Kurzbeschreibung der wichtigsten Änderungen von 2.6.26 pflegen zumeist auch die Kernelnewbies in ihrem Wiki [472]. Wer es noch detaillierter möchte durchkämmt das mehrere Megabyte große Changelog [473], das die zu jeden einzelnen Commit [474] im Quellcodeverwaltungssystem von Linux gehörenden Kommentare enthält, welche den jeweiligen Patch [475] des Commits beschreiben. Alternativ kann man sich auch im Git-Webinterface [476] durch die Kernel-Quellen und deren jüngste Änderungen arbeiten; dort hat man zum jeweiligen Kommentar auch gleich den zugehörenden Patch [477] im Zugriff. (thl [478]/c't)


URL dieses Artikels:
http://www.heise.de/-221556

Links in diesem Artikel:
[1] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-24-221423.html
[2] https://www.heise.de/ct/artikel/Verbesserungen-allerorten-Die-Neuerungen-von-Linux-2-6-25-221493.html
[3] http://www.heise.de/glossar/entry/Kernel-Hacker-397919.html
[4] http://article.gmane.org/gmane.linux.kernel/706077
[5] http://www.heise.de/glossar/entry/Commit-397925.html
[6] http://www.heise.de/open/artikel/110091/1#infra
[7] http://www.heise.de/open/artikel/110091/1#infra
[8] http://en.wikipedia.org/wiki/Page_Allocation_Table
[9] http://www.heise.de/open/artikel/110091/2
[10] http://www.heise.de/open/artikel/110091/2
[11] http://www.heise.de/open/artikel/110091/1#infra
[12] http://www.heise.de/open/artikel/110091/3
[13] http://www.heise.de/open/artikel/110091/1
[14] http://www.heise.de/open/artikel/110091/3
[15] http://www.heise.de/open/artikel/110091/1#infra
[16] http://www.lesswatts.org/projects/devices-power-management/pcie.php
[17] http://www.eu.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.26
[18] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[19] http://www.heise.de/open/artikel/110091/1
[20] http://www.heise.de/open/artikel/110091/1#infra
[21] http://www.heise.de/open/artikel/110091/2
[22] http://www.heise.de/open/artikel/110091/2#intern
[23] http://www.heise.de/open/artikel/110091/3
[24] http://www.heise.de/open/artikel/110091/3#backforth
[25] http://www.heise.de/open/artikel/110091/3#debates
[26] http://www.heise.de/open/artikel/110091/4
[27] http://www.heise.de/open/artikel/110091/4#summary
[28] http://www.heise.de/open/artikel/110091/4#trends
[29] http://www.heise.de/open/artikel/110091/5
[30] http://www.heise.de/glossar/entry/Linux-Kernel-und-Treiber-herunterladen-und-installieren-397911.html
[31] http://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[32] http://www.heise.de/glossar/entry/Linux-Kernel-Serien-und-Entwicklungslinien-397913.html
[33] http://www.heise.de/glossar/entry/Changesets-Commits-Diffs-Merges-und-Patches-397921.html
[34] 
[35] http://www.heise.de/open/artikel/110091/5
[36] http://www.heise.de/glossar/entry/Commit-397925.html
[37] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
[38] http://git.or.cz/
[39] http://www.heise.de/glossar/entry/Patch-395546.html
[40] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-22-222117.html
[41] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-22-222117.html
[42] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-24-221423.html
[43] https://www.heise.de/ct/artikel/Verbesserungen-allerorten-Die-Neuerungen-von-Linux-2-6-25-221493.html
[44] http://wireless.kernel.org/
[45] https://www.heise.de/meldung/Schnelles-WLAN-auf-dem-Weg-zu-Draft-4-0-Update-192909.html
[46] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=145de9b693943f052c2c15efbc31b2851fedb6e0
[47] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab53d8af6772b22d4d68b1bcd74f7a5dba693983
[48] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8318d78a44d49ac1edf2bdec7299de3617c4232e
[49] http://www.linuxwireless.org/en/developers/Documentation/cfg80211
[50] http://www.open80211s.org/
[51] http://de.wikipedia.org/wiki/Vermaschtes_Netz
[52] https://www.heise.de/meldung/Schnelles-WLAN-auf-dem-Weg-zu-Draft-4-0-Update-192909.html
[53] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e6f5b934fba8c44c87c551e066aa7ca6fde2939e
[54] http://de.wikipedia.org/wiki/Quality_of_Service
[55] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2079fcdc06ea01c084044c348dbcd7b3e335ad49
[56] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7524d7d6de5d5d3f081de8cf5479819fad339661
[57] http://en.wikipedia.org/wiki/Independent_Basic_Service_Set
[58] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d9bf77d16ba527f6f63846ca18cf20ae6e8d697
[59] http://wireless.kernel.org/mac80211book/
[60] 
[61] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-23-222157.html
[62] http://en.wikipedia.org/wiki/Completely_Fair_Scheduler
[63] http://thread.gmane.org/gmane.linux.kernel/669094
[64] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bfb257a5981af805a9394f00f75d3d9f7b611cc0
[65] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9a3260f25ab5d2ba5c8b9508e7952848b9d704b
[66] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0e4bbde94fdc33f5b3d793166b21bf768ca3e098
[67] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c2cf07d591ef7bc25c220249822d9bdf0f44c75c
[68] http://de.wikipedia.org/wiki/Distributed_File_System_(Microsoft)
[69] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d0a9c078db4769f7305ff9774558776d12bfb25b
[70] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dc7d552705215ac50a0617fcf51bb9c736255b8e
[71] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=82da3ff89dc2a1842cff9b0d4cbc345cb90b59e1
[72] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3e2aaf7dc0d82a055e084cfd48b9257c0c66b68
[73] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6cdf6e06d70dcf42314edb2c43b7c7ebc56e32e5
[74] https://lwn.net/Articles/70465/
[75] https://www.heise.de/meldung/Kernel-Log-heisse-Entwicklungsphase-von-2-6-25-abgeschlossen-Zukunft-des-X-Servers-178143.html
[76] http://kgdb.linsyssoft.com/
[77] http://lwn.net/Articles/270089/
[78] http://www.heise.de/open/artikel/105532/5#trends
[79] http://www.lesswatts.org/projects/devices-power-management/pcie.php
[80] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7d715a6c1ae5785d00fb9a876b5abdfc43abc44b
[81] 
[82] http://www.heise.de/glossar/entry/Linux-Kernel-Serien-und-Entwicklungslinien-397913.html
[83] http://kvm.qumranet.com/
[84] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b693919ca983e9eb989d89dac5493ef3c5e98e77
[85] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=60a07bb9baa83e17d4b540a2f371661ecc353c6c
[86] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fdae862f91728aec6dd8fd62cd2398868c906b6b
[87] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0c632db637d68ad39d9f97f452ce176253f5f4e
[88] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77b455f1bcfa0fddb31b8e6f9f2adc246acb4216
[89] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5ecee4ba4eb2ada7ece7c41eb08cf7bc51b579e2
[90] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bbf45ba57eaec56569918a8bab96ab653bd45ec1
[91] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=37817f2982d0f559f90cecc66e150dd9d2c2df05
[92] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3da3acdb32c1804a5c853feebcc037b7434076f
[93] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb72d1674d860b0c9ef9b66b7f4f01fe5b3d2c00
[94] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=709ddebf81cb40e3c36c6109a7892e8b93a09464
[95] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2384d2b32640839a4d4d260ca7c5aa4edbf68d91
[96] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7b52345e2c4c7333bf7eba8034ffc4683fa63c91
[97] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d56f546db97795dca5aa575b00b0e9886895ac87
[98] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1439442c7b257b47a83aea4daed8fbf4a32cdff9
[99] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a28e4f5a621289fe0d9c8a461b0c256f9e17f3bc
[100] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0cf1bfd2737f41e59f974a61eab11af206d2042a
[101] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=18068523d3a0b41fcee5b53cdb437a0ab4d65e4b
[102] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=790c73f6289a204f858ffdcbe4a2b38e91657ec6
[103] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=05da45583de9b383dc81dd695fe248431d6c9f2b
[104] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7837699fa6d7adf81f26ab73a5f6897ea1ab9d6a
[105] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2714d1d3d6be882b97cd0125140fccf9976a460a
[106] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d4c9ff2d1b78e385471b3f4d80c0596909926ef7
[107] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=268fe02ae058c0c5e84ad678d67e5d7b013e664f
[108] http://thread.gmane.org/gmane.comp.emulators.kvm.devel/18748/focus=18752
[109] https://www.heise.de/meldung/Linux-Kernel-2-6-23-mit-Xen-und-neuem-Scheduler-freigegeben-183395.html
[110] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1775826ceec51187aa868406585799b7e76ffa7d
[111] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4ee36dc08e5c4d16d078f59acd6d9d536f9718dd
[112] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=28499143933f19b28008a556ed59255d6009391a
[113] http://lwn.net/Articles/281157/
[114] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=42a74f206b914db13ee1f5ae932dcd91a77c8579
[115] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aceaf78da92a53f5e1b105649a1b8c0afdb2135c
[116] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=08ce5f16ee466ffc5bf243800deeecd77d9eaf50
[117] http://linux-vserver.org/
[118] http://openvz.org/
[119] 
[120] http://en.wikipedia.org/wiki/Page_Allocation_Table
[121] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2e5d9c857d4e6c9e7b7d8c8c86a68a7842d213d6
[122] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d27554d874c7eeb14c8bfecdc39c3a8618cd8d32
[123] http://lwn.net/Articles/282250/
[124] http://lwn.net/Articles/273731/
[125] http://de.wikipedia.org/wiki/Semaphor_(Informatik)
[126] http://lwn.net/Articles/273731/
[127] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64ac24e738823161693bf791f87adc802cf529ff
[128] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b17170b2fac96705db3188f093f89e8e838418e4
[129] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=714493cd5468f42ca3c4f730a9c17c203abd5059
[130] http://thread.gmane.org/gmane.linux.kernel/667191
[131] http://de.wikipedia.org/wiki/Semaphor_(Informatik)
[132] http://de.wikipedia.org/wiki/Mutex
[133] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8e3e076c5a78519a9f64cd384e8f18bc21882ce0
[134] http://de.wikipedia.org/wiki/Spinlock
[135] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8e3e076c5a78519a9f64cd384e8f18bc21882ce0
[136] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3b19ff06e0808555403491d61e8f0cbbb53e933
[137] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=04f378b198da233ca0aca341b113dc6579d46123
[138] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f34d7a5b7010b82fe97da95496b9971435530062
[139] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=978e595f88a1fba5869aa42a4af4fba36f33ecac
[140] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de224c309b5631bdaae3fcd6880cfb93b52f5a53
[141] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3be5a52b30aa5cf9d795b7634f728f612197b1c4
[142] http://fuse.sourceforge.net/
[143] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ae531c26c5c2a28ca1b35a75b39b3b256850f2c8
[144] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1f56cf1c58c81f7ecf16f5e99ac4a333d9dc9aea
[145] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=076c54c5bcaed2081c0cba94a6f77c4d470236ad
[146] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=826e4506a0acb6487910a5ebafe839f708a00e1c
[147] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=91e37a793b5a9436a2d12b2f0a8f52db3a133e1d
[148] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c2545eefffc452e52302c96c955d9aa26353aa9
[149] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a5dd69707424a35d2d2cc094e870f595ad61e916
[150] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=272b9cad6e7a2f61b13cfcd7dde0010e02e9376e
[151] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c64df70793a9c344874eb4af19f85e0662d2d3ee
[152] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blobdiff;f=Documentation/kernel-parameters.txt;h=f9ea0803d5d65fd736863a505839e8e1d6a4704c;hp=43c527d72f2f2e9e5682be07254227d9e590f90f;hb=c64df70793a9c344874eb4af19f85e0662d2d3ee;hpb=9b967106da0357ef8b08847dce35584a04134f20
[153] http://www.heise.de/open/Die-Neuerungen-von-Linux-2-6-24--/artikel/100782/3
[154] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=58aca23226a19983571bd3b65167521fc64f5869
[155] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b844eba292b477cda14582bfc6f535deed57a82d
[156] http://www.heise.de/open/artikel/110091/5
[157] http://www.heise.de/glossar/entry/Commit-397925.html
[158] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e59f87966adef2cb03d419530e3ade5159487d6d
[159] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a5fa429b4b19cccd3f91a98af891c7ba2706cc1d
[160] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e1faa9da284d14487ed4280b4e87cfde8e1539af
[161] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ef0e1f8cad0a851b3dbf91802b14af7dd780352
[162] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a9d3cc485e65a56edc9ef78c034146cc8a5b3101
[163] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ab4d072ad67793d70b8707e14fb9261749c4e07
[164] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ccee69019d3b23f02204f4c2cb3085f436da252
[165] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=814b1a5ce6b35bafd583ae813da97e8254bb1930
[166] https://www.heise.de/meldung/Radeon-HD-4800-uebertrumpft-Konkurrenz-auf-allen-Gebieten-216128.html
[167] http://thread.gmane.org/gmane.comp.video.video4linux/37763
[168] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c0efd232929c2cd87238de2cccdaf4e845be5b0c
[169] http://linux-uvc.berlios.de/
[170] http://linux-uvc.berlios.de/#devices
[171] http://en.wikipedia.org/wiki/USB_video_device_class
[172] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1c1e45d17b663d4749af456ab7c2fc1f36405ef8
[173] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52c99bda04d8bb1fb390821695b0f9efc1e1db44
[174] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=265a6510629ab39f33ece43a857089dd37978184
[175] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b1b81f1db73f00e595585b16aa31293a791964c0
[176] http://thread.gmane.org/gmane.comp.video.dri.devel/30949
[177] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f18409ea3d778a171a9505c0a849d846f352bd0
[178] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c0beb2a723d69934a53f51a9d664c5b1dbbf634b
[179] http://thread.gmane.org/gmane.linux.ide/30756
[180] http://thread.gmane.org/gmane.linux.ide/31021
[181] http://thread.gmane.org/gmane.linux.ide/31024
[182] http://thread.gmane.org/gmane.linux.ide/31043
[183] http://thread.gmane.org/gmane.linux.ide/31082
[184] http://www.heise.de/open/artikel/110091/5
[185] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-22-222117.html
[186] http://wiki.linux1394.org/JujuMigration
[187] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=afba937e540c902c989cd516fd97ea0c8499bb27
[188] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f7511d5f66f01fc451747b24e79f3ada7a3af9af
[189] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=548c36e983f346621b5cb9ab031e4383e9996576
[190] 
[191] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d61ecf0b53131564949bc4196e70f676000a845a
[192] http://lwn.net/Articles/279229/
[193] http://thread.gmane.org/gmane.linux.kernel/667529
[194] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6b8e1c7ec4af6defa7045ff3c9b266486124d9c5
[195] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db8dac20d5199307dcfcf4e01dac4bda5edf9e89
[196] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6363ca57c76b7b83639ca8c83fc285fa26a7880e
[197] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f9305d4a0968201b2818dbed0dc8cb0d4ee7aeb3
[198] 
[199] http://thread.gmane.org/gmane.linux.kernel/671727
[200] http://thread.gmane.org/gmane.linux.kernel/673386/
[201] http://lwn.net/Articles/281109/
[202] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[203] http://thread.gmane.org/gmane.linux.kernel/673386/focus=674399
[204] http://thread.gmane.org/gmane.linux.kernel/673386/focus=673777
[205] http://thread.gmane.org/gmane.linux.kernel/673386/focus=674009
[206] http://thread.gmane.org/gmane.linux.kernel/673386/focus=673796
[207] https://www.heise.de/meldung/Kernel-Log-Linux-next-soll-die-Entwicklungsarbeit-koordinieren-179229.html
[208] http://lwn.net/Articles/285088/
[209] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3e3a7d666d6db19406ba0865e8116ff59c8af6f1
[210] http://lwn.net/Articles/284767/
[211] https://www.heise.de/ct/artikel/Die-wichtigsten-Neuerungen-von-Linux-2-6-20-222041.html
[212] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-21-222087.html
[213] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-22-222117.html
[214] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-23-222157.html
[215] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-24-221423.html
[216] https://www.heise.de/ct/artikel/Verbesserungen-allerorten-Die-Neuerungen-von-Linux-2-6-25-221493.html
[217] https://www.heise.de/ct/artikel/Feinschliff-und-Anbauten-Die-wichtigsten-Neuerungen-von-Linux-2-6-26-221556.html
[218] http://www.kernel.org/
[219] http://www.eu.kernel.org/
[220] http://kernel.org/mirrors/
[221] http://www.heise.de/glossar/entry/Linux-Kernel-und-Treiber-herunterladen-und-installieren-397911.html
[222] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-24-221423.html
[223] https://www.heise.de/ct/artikel/Verbesserungen-allerorten-Die-Neuerungen-von-Linux-2-6-25-221493.html
[224] https://www.heise.de/meldung/Verwaltungssystem-fuer-Linux-Quellcode-git-in-Version-1-0-freigegeben-160451.html
[225] http://git.or.cz/
[226] http://thread.gmane.org/gmane.linux.kernel/682304
[227] 
[228] http://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[229] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[230] https://www.heise.de/meldung/Kernel-Log-Linux-next-soll-die-Entwicklungsarbeit-koordinieren-179229.html
[231] http://git.kernel.org/git/?p=linux/kernel/git/paulus/powerpc.git;a=commit;h=917f0af9e5a9ceecf9e72537fabb501254ba321d
[232] http://git.infradead.org/users/dwmw2/firmware-2.6.git
[233] http://lwn.net/Articles/284932/
[234] http://lwn.net/Articles/284104/
[235] http://www.linux-foundation.org/en/Linux_Weather_Forecast
[236] http://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[237] http://www.linux-mtd.infradead.org/doc/ubifs.html
[238] http://lwn.net/Articles/276025/
[239] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-22-222117.html
[240] http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/usb/wusb-protocol.patch
[241] http://lwn.net/Articles/281938/
[242] http://lwn.net/Articles/283066/
[243] http://thread.gmane.org/gmane.linux.kernel.wireless.general/16592
[244] http://lwn.net/Articles/286472/
[245] http://thread.gmane.org/gmane.linux.ide/31388
[246] http://thread.gmane.org/gmane.linux.ide/31388
[247] http://article.gmane.org/gmane.linux.kernel/682944
[248] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-2-6-22-222117.html
[249] http://thread.gmane.org/gmane.linux.kernel/531149
[250] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[251] http://www.heise.de/glossar/entry/Linux-Kernel-Serien-und-Entwicklungslinien-397913.html
[252] http://www.heise.de/glossar/entry/Linux-Kernel-Serien-und-Entwicklungslinien-397913.html
[253] http://www.heise.de/open/
[254] mailto:thl@heiseopen.de
[255] http://www.heise.de/glossar/entry/Commit-397925.html
[256] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree
[257] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/net;hb=HEAD
[258] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/net/e100.c;hb=HEAD
[259] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/net/e1000;hb=HEAD
[260] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6afe1a1fe8ff83f6ac2726b04665e76ba7b14f3e
[261] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=605400a8ab44131698b206cbe253e48380daaa69
[262] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=30d221db4439973076953e2ed44344fa92d1d09f
[263] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=80ff974dba8cc432ab81676fc09d3c357cb11276
[264] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4ed99a27d161ce6f1eb6657c5cd5e6aef365c665
[265] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af116101924914a9655dfad108548d0db58c40f9
[266] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e306501d1c4ff610feaba74ac35dd13e470480e6
[267] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=feccc30d90155bcbc937f87643182a43d25873eb
[268] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9214d1d80c19016172e685ce7bde0ea757c49097
[269] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6986a978eec70c867717fe6bee736f0bd1db1508
[270] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dddcb8b7d419b6726ba07efe53e6bb216a9e86cb
[271] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c7d3137fe4fce634d55a6e99c95dff4c6306702
[272] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=96cb15cf977356d9d3117dd88f3fe187d6024f4b
[273] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d75379a538708c5a8e3dba673d866c3f5f856620
[274] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=22552b286b44b8988e08fb74379507a9b32521b0
[275] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=35e5437e8c8cd013e1e573ac4671d556819edbcb
[276] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db11e47dd7b09b7f76c7eaa236277f23391331e7
[277] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e9b29ffc519b9e63d4e1c0b1278bb951bb418a9d
[278] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f7f85e9f9561507b009d26395c53e70758695ec
[279] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4546002c813568829b70d00fab752de3999c3f1a
[280] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c17f9c901c4e62cbf857b831bcc3070380449b88
[281] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c8f0f02f3cc86652a32640b101b1f779f7ea3076
[282] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=febf1dff119ef27ee22a54d40f284d2454f00d8d
[283] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f23c1d7579211c801494c7a8d6fca12905f7949f
[284] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9448cefc6689aa51f1cd1cfe8b701dc94789c7ee
[285] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dca98e91fb83a43fc430893f349fd8248fa0ba38
[286] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de22b9ef1020ffdb9e1ed6f4686e2e62eaeb0958
[287] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8a7ae2a890852b133342a6d72f84b0dac1bc8e8e
[288] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99de0912be6f384fc31c8e8e7ba0850d0d670385
[289] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cfbe20106fa00e89c1fb2c74dbff0ba80e0e539d
[290] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f3360ebffae254ab99a64bf97c7b4f8380b1e114
[291] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf48062658e7ab3bc55e10c65676c3c73c16f8bf
[292] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=664d080c41463570b95717b5ad86e79dc1be0877
[293] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e1fefea9cc4bc231b5c23fe19e3682fe061dc097
[294] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=01ce2601e4ba354fe1e25bb940817570d0c8ed4f
[295] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d799e083a80b220f3681d7790f11e77d1704022b
[296] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a3b103c27a7e3199b917bc3ca219530132afdfc
[297] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3072c379bccfa2844e33103ed9ff530780e660ea
[298] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e297d99e103f951a71fcb1534f1ff3480dd3a851
[299] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07ab85de4d960b6f39395e51c1853485ad120de5
[300] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06993d2237da45615b5a9a4dde3f344ce97ca17d
[301] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e49856d82a887ce365637176f9f99ab68076eae8
[302] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=02c1f32f1c524d2a389989f2482121f7c7d9b164
[303] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a594eeb1a1d320981fccc29584b6f21fcebd765f
[304] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a0e77f28b50128df0c9e26ae489e44e29a7270a
[305] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f01674e459923c6df540e6c983d37e5fc94d43b8
[306] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9dd4cf1fb949f6ba56b67078c09ef1b78f3c9421
[307] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e460a59751a7e53b549c63d4d308ba73582c8def
[308] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef87f8d09639cbe22201c7dfe07586c43b255108
[309] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cc12175ff2eadb0918d573169af88429440a21ae
[310] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=73f1ad8670effa9849c3d42457fa2b58f139e013
[311] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ebae41a5a0583fb732c41445df4ac2c41016df74
[312] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e87543a94fb2a966c81a61fc91246592f9719da
[313] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4706a7e03a03d6d206a93a49a0c723dd612cf8e9
[314] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1dbfeb4bc8fd0276750e5d1d454420f6c2da80e3
[315] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f5de6b105bfa45911d46566df0b36720b648c42
[316] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4d4df1932b6b116aecc81039066fec27f2050762
[317] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=655d722cf7812078306f975a3afe88b96a1306b8
[318] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=62ac5aedc51485d672a5d91c262a001acecbe447
[319] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db4742dd8f0aa9125b74f9b2516336a75f3d9106
[320] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ee959b00c335d7780136c5abda37809191fe52c3
[321] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=138fe4e069798d9aa948a5402ff15e58f483ee4e
[322] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7bc570c8b4f75ddb3fd5dbeb38127cdc4acbcc9c
[323] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=937e0dfd87a8b7946a17161664500fba93eb13fd
[324] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4910a087996e637adc50f955eccf114307f8fab7
[325] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d908a69a32e0171eb5eeac93f2f46ffa4190573
[326] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6185f870e293a0a3eae5c81eb0106480cf03dfde
[327] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2bc780499aa33311ec0f3e42624dfaa7be0ade5e
[328] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aab547ce0d1493d400b6468c521a0137cd8c1edf
[329] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97ac8caee238d2a81c23661916f7acd3a22c85fe
[330] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f3f7910c67adfb520bbae3d8b16985439a97198
[331] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ceee660aacb29721e26f08e336c58dc4847d1bd
[332] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a3b4fcedee5cf1d1342b85f1318c0fe1ff1727a9
[333] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3273c2e8c66a21ae1c53b0c730ee937c6efde7e2
[334] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9b39b625cf57cd0ea998717598b68963cbec3cb
[335] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4d9b1a022a33c57ca8f31a1364cef682c8c817d6
[336] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef11291bcd5f963c72e7ba5952be3e3c97463d2c
[337] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=57bb7e222804c68066e3e995dffbedda5b1ec1ea
[338] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b1394f961a90a7195ea177ee56d54fe5c37181ca
[339] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=305282ba19f81e571bd6d2dcc10ebb02e59a06ef
[340] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2e5071bce5ce4037ce852a916e8106811e68677b
[341] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dac2f83fce01f0c2900918a4a8abd4c652151804
[342] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=19a3da6c6e1e74ecac129a079139aaebb63fe6c8
[343] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4a71df50047f0db65ea09b1be155852e81a45eba
[344] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=04885948b101c44cbec9dacfb49b28290a899012
[345] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=293d984f0e3604c04dcdbf00117ddc1e5d4b1909
[346] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b46b4ee034645dc87a34b29a7989a2540a8ee8ea
[347] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=19758bef09abe9d2a14575ffb6f686947e97fcb1
[348] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ad97edd2f524940d524c26ae273a4eb23067a7c0
[349] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0211ddda9deb681a804572936cd49e466a1aa88b
[350] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e6f5b934fba8c44c87c551e066aa7ca6fde2939e
[351] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c8dccc77420fb7433da5674818959d3499d35be
[352] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9357136ac4729f589543afb6b1d17d443ae4f71
[353] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=122a881c776b7c155bf3f379928cc27aab435288
[354] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0e170c72c0c55bd78213a0f5053bd9a1dde403b7
[355] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d3adbc0c582b767ba1561ffa38313e905cc917ea
[356] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=25ce77abf8be3a96b3673e46722a9bd05f149584
[357] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=45e519052e8f583a709edd442a23f59581d3fe42
[358] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21efa2bac91b8d12064617c5a35492ec982544eb
[359] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2735977b12cb0f113aae24afff04747b6d0f5bf1
[360] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d3adbc0c582b767ba1561ffa38313e905cc917ea
[361] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=70b13d510fc9d137e362b7db3ac5b14b50d78477
[362] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=487145a1984b78e9b194aa44f8079cc019779a58
[363] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=850f0e5212a73a548b9c29faf452b4a14d80f43b
[364] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7bd3c0f73c9c5b47fd1ca49757c436e73f4cd55b
[365] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c2ba97b8a99c857758fd03513350b39a8b242d6
[366] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bc9b56238eedda865070dcaed6694d65b517c8d6
[367] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9e16bc548600124da9d24186364ee8d06040569
[368] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=79d06432a27601f096e08716fee3f0a7d3b68d5f
[369] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=269ef19caa16650bf3a68fd33a6cb800683419dd
[370] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=378bd6a5211f05d6d8eb3e78a92e2a197e456e4e
[371] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=07bc76dfa19b10017b518dd9aa1b2719e8c863de
[372] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97ec710cab76f90a6bece76a04e76aa50096a470
[373] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=df99cd334e5356b002a9480048c06265e558e180
[374] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3adb8abc70aaf5c071f27576069c8b01783cca83
[375] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb308f97aee2c816834240c8d5f7c98dd8aff157
[376] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=09f99701393c7b66bde01df6c292fe5d9f843033
[377] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0e31daf7d6484c60e96f63a905eb9b959b975da5
[378] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd97f47df377d2371940b69fa4c8b4d99a980580
[379] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4383fae0ec5bc269f9eb4383b223731e3ecd2fe3
[380] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f6c7e5461e9046445d50c5c7a9a4587824239623
[381] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a08160bdbe3148a405f72798f76e2a5d30bd243
[382] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c5059259688ab76f14f2f69a93e13575a36b614b
[383] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e48d6d97bb6bd8c008045ea0522ea8278fdccc55
[384] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=310355c111dbae005269fe3fc39afdd60779bf5d
[385] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef2cd2ccad66b4aba518eca7514eface267ee0f3
[386] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4235a31784f59c9be5ff71534743c055091f9735
[387] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=98f2a97f207a776603173ee96327d977e592579d
[388] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=83ac08c0846bc6106d6c7fbb342eab02b32dd399
[389] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2e74796a45ee05bd901968ef1eb6cb884d1dca5e
[390] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=265a6510629ab39f33ece43a857089dd37978184
[391] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb7b37cf913c19dbdbb9bf3e653924e126b4007e
[392] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7397bfbe10b52a47f1f6c69aa87192d97ffa1910
[393] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b1431ca1c98e26569c9b6cd6d06265cef9495ec
[394] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7b5b3f1765c9773ec9b10c3e5299ac001211a80d
[395] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6a6179b6db401acde5798b4da0fdff32b126ee15
[396] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5fe95e0b865060839449e1a61c1d5c67a4faab9a
[397] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9507901ef329b2dd3417372c7c9b2abcfd5c1885
[398] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5c00fac0bab95a378e60c1a67e3d3c5ac44df412
[399] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c2cb8fcc006ce59255de67e3fe9f65fb79db633b
[400] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fd1da7897999826d7491cdfd5b882ca8e9a965cb
[401] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e80faad3d7a332b7fe5a72dd64a81d28dd5c2e44
[402] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2422a9b3f47c75d3915e6af78ebe25b7d2540262
[403] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=637afdb563a0801b6983650f889c64c074111776
[404] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dc88807ed61ed0fc0d57bd80a92508b9de638f5d
[405] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5da4e2c645e4324f63fd87a0f93e3d0ad6619798
[406] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3ea01668907bdb32b0c690d28f9f2b1298bd258
[407] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6676237398d0c2e61e5a3a27e0951f60d6ef6fe3
[408] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=95814bc2b792dced5296a710704de7d5ecec2776
[409] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=025052716d124ab6e5f23d6a535e843a31fb8b35
[410] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=136531dac435828c4aa9ca694a7693b63a573be1
[411] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=74ee05109c9d6ae2dfe1b462592d3854ddbf1f6a
[412] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c3852cda6e0c557f5e0915b5451510c1acd64a2
[413] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36396c893272a577eafad40630a609ccd36d20ea
[414] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ee04e0faad386141f52dd812f220a2f0d128f1c6
[415] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3760f736716f74bdc62a4ba5406934338da93eb2
[416] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d2653e92732bd3911feff6bee5e23dbf959381db
[417] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af294867a52bf718df835a688e8c786d550bee26
[418] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ae429083efe996ca2c569c44fd6fea440676dc33
[419] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8808a793f052c0a67426a24b961402fa20e92814
[420] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5135b797c8466eac39dc7fb4ae1fac6e7276377a
[421] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b54f2863a26d2b7c002d96abcde149940733c8e6
[422] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e319e76521767f7f64cd1fb6f58d4d36bc861a67
[423] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=00d1c5e05736f947687be27706bda01cec104e57
[424] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef9257668e3199f9566dc4a31f5292838bd99b49
[425] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f7f17a67c589f031c567d9fdc809dee7c5868c8a
[426] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b62576a2f53ad7edf604fedba0da1d4329749b7d
[427] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=911f6a7ba21795865ab30fc5f88aa198b0daee5f
[428] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ad0920d7b11a88379ec4db186be3eee667c4278
[429] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=39b8d5254246ac56342b72f812255c8f7a74dca9
[430] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=884d04cd8d7bba3dc885227ad400f8aea5623cdc
[431] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=919ee677b656c52c5f86d3d916786891220d5452
[432] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16
[433] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ac7fe5a4aab409bd5674d0b070bce97f9d20872
[434] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c6f3a97f86a5c97be0ca255976110bb9c3cfe669
[435] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=691cc54c7d28542434d2b3ee4ddbad6a99312dec
[436] http://lwn.net/Articles/271614/
[437] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d3504fcf5606579d60b649d19f44b3871c1ddae
[438] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4d5f35533fb9b2cd553cec6611195bcbfb7ffd84
[439] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=354d60c2ff72d86627dfe2089d186824abf4bb8e
[440] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ac086bc22997a2be24fc40fc8d46522fe7e03d11
[441] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6510d41954dc6a9c8b1dbca7eaca0f23195ca727
[442] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=064106a91be5e76cb42c1ddf5d3871e3a1bd2a23
[443] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=413c239fad68258157f903b3ffd9bfcc53f5e34b
[444] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da19cbcf71cde3c09587b5924d113f0c7f1fd23a
[445] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=82af7aca56c67061420d618cc5a30f0fd4106b80
[446] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8bf2debd5f7bf12d122124e34fec14af5b1e8ecf
[447] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dfc7064500061677720fa26352963c772d3ebe6b
[448] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d71a6d7332e5881a65249f4fb97b0db3c61dd5ec
[449] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=571640cad3fda6475da45d91cf86076f1f86bd9b
[450] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6092d048183b76bfa3f84b32f8158dd8d10bd811
[451] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d1bc60138977d9c79471b344a64f2df13b2ccef
[452] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=73cd49ecdde92fdce131938bdaff4993010d181b
[453] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=719f5d7f0b90ac2c8f8ca4232eb322b266fea01e
[454] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1a2c409b666befc58c2db9c7fbddf200f153470
[455] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2d4d4864ac08caff5c204a752bd004eed4f08760
[456] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=97e7e0f71d6d948c25f11f0a33878d9356d9579e
[457] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f7f510ec195781c857ab76366a3e1c59e1caae42
[458] http://lwn.net/Articles/283103/
[459] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f4988927a257791d372dddeda8eda8521bf6cb00
[460] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3dcc5a387fc38e9c3c6c4f857cd9a7f71a8553a
[461] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a3fa73bd0eea74c58315114c9fc3e913f6c26d61
[462] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=714493cd5468f42ca3c4f730a9c17c203abd5059
[463] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52cd3b074050dd664380b5e8cfc85d4a6ed8ad48
[464] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=be089d79c46f5efa77fbdf03c5e576e220bf143f
[465] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64dbf07474d011540ca479a2e87fe998f570d6e3
[466] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3898b1b4ebff8dcfbcf1807e0661585e06c9a91c
[467] http://lwn.net/Articles/280279/
[468] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af40b485ea2d957ae2f237ab0e33539ae8f29562
[469] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b17170b2fac96705db3188f093f89e8e838418e4
[470] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a10aa579878fc6f9cd17455067380bbdf1d53c91
[471] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf0ca9fe5dd9e3693d935757a7b2fc50fc576554
[472] http://kernelnewbies.org/Linux_2_6_26
[473] http://www.eu.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.26
[474] http://www.heise.de/glossar/entry/Commit-397925.html
[475] http://www.heise.de/glossar/entry/Patch-395546.html
[476] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
[477] http://www.heise.de/glossar/entry/Patch-395546.html
[478] mailto:thl@heiseopen.de