Die Neuerungen von Linux 2.6.23

Dank eines neuen Scheduler soll Linux 2.6.23 flotter und fairer agieren als seine Ahnen und bringt neben den Virtualisierungstechniken Xen und Lguest zudem haufenweise frische Treiber sowie Optimierungen unter der Oberfläche mit.

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

Trotz Ferienzeit und der jährlichen Konferenz wichtiger Kernel-Entwickler haben Torvalds und seine Mannen in den vergangenen dreizehn Wochen wieder eine Linux-Version mit reichlich größeren und kleineren Neuerungen fertig gestellt. Die erstmals enthaltenen Virtualisierungstechniken Xen und Lguest sowie der frisch entwickelte Scheduler dürften die von Linux-Fans wohl am meisten beachteten Änderungen zur Vorversion sein. Die überarbeiteten oder neu hinzu gestoßenen Treiber – etwa der erste auf dem mit 2.6.22 eingeführten WLAN-Stack basierende Treiber für Realtek-USB-WLAN-Hardware – und zahlreiche Verbesserungen an der Infrastruktur dürften aber mindestens von ebenso großer Bedeutung sein.

Linux in Zahlen
Linux-
Version
Entwicklungs-
zeitraum
Anzahl
Patches
Diffstat
2.6.1894 Tage63238972 files changed, 381890
insertions(+), 217058 deletions(-)
2.6.1971 Tage66858040 files changed, 515161
insertions(+), 291784 deletions(-)
2.6.2066 Tage47685825 files changed, 262475
insertions(+), 136162 deletions(-)
2.6.2180 Tage50166568 files changed, 319232
insertions(+), 175247 deletions(-)
2.6.2274 Tage65267620 files changed, 519591
insertions(+), 266699 deletions(-)
2.6.2393 Tage66627203 files changed, 406268
insertions(+), 339071 deletions(-)

Nach den zahlreichen im ersten Halbjahr dieses Jahres geführten Diskussionen um "den besten neuen Prozess-Scheduler für Linux" machte Torvalds direkt nach der Veröffentlichung von 2.6.22 seinen Standpunkt klar und nahm den Completely Fair Scheduler (CFS) in den Entwicklerzweig von 2.6.23 auf. Er regelt zukünftig, wann und wie oft ein Programm Prozessorzeit bekommt.

CFS stammt von Red-Hat-Mitarbeiter Ingo Molnar, der bereits den alten, während der Linux-2.5-Entwicklung integrierten O(1)-Scheduler programmiert hatte, der nun CFS weichen musste. Im Unterschied zu seinem Vorgänger verfolgt CFS einen strikt "fairen" Ansatz: zwei mit der gleichen Priorität um den Prozessor konkurrierende Prozesse sollten jeweils 50 Prozent der zur Verfügung stehenden CPU-Zeit bekommen. Mit diesem Ansatz reagieren manche Systeme laut Angaben von Testern bei der Benutzung einiges flotter als mit dem alten Scheduler. Mit dem konnte es durchaus passieren, dass ein im Hintergrund arbeitender Prozess viel Prozessorzeit bekam und so den X-Server oder die Desktop-Oberfläche erst nach einer kleinen Verzögerung zum Zuge kommen ließ – in Folge dessen fühlte sich das System zäh an.

Das Konzept des strikt fairen Ansatzes stammt vom lange vor CFS entwickelten Staircase-CPU-Scheduler – dessen Programmierer Con Kolivas wird auch in den Credits von CFS auch für die Idee gewürdigt. Als sich jedoch abzeichnete, dass nicht Kolivas Scheduler, sondern CFS das Rennen machen würde, zeigte sich Kolivas tief enttäuscht. Da es auch einige andere seiner Ideen für Linux nicht in den offiziellen Kernel geschafft haben, hat er sich mittlerweile von der Mitarbeit am Linux-Kernel öffentlichkeitswirksam zurückgezogen und auch seine CK-Kernel-Serie eingestellt.

Einige Fans seines Scheduler beklagten die Entscheidung für CFS und das Vorgehen der Kernel-Entwickler – Torvalds verteidigte seine Entscheidung in verschiedenen Mails detailliert. Das ganze ähnelte fast den Diskussionen um das Reiser4-Dateisystem, wo ebenfalls einige zuvor auf der Linux Kernel Mailinglist nie gesehene Reiser4-Fans auftauchten und kritisieren, dass die Kernel-Entwickler nicht die von Ihnen bevorzugte Technik integrieren.

Abgeschlossen ist die CFS-Entwicklung wohl noch lange nicht – noch nach der Vorstellung von 2.6.23-rc1 zogen zahlreiche Korrekturen und kleinere Verbesserungen in den Entwicklerzweig ein, aus dem nun 2.6.23 hervorging. Für 2.6.24 stehen schon wieder weitere Patches bereit, die unter anderem den Overhead des Scheduler reduzieren sollen, um die Performance zu steigern. Mit dem Really Fair Scheduler oder DeskOpt 005 (completely unfair scheduling ;) ) tauchten weitere Scheduler-Ideen auf, die wohl auch die weitere CFS-Entwicklung beeinflussen dürften.

Auch Xen hat endlich den Sprung in den offiziellen Linux-Kernel geschafft – zweieinhalb Jahre später, als es sich die Xen-Entwickler ursprünglich erhofft hatten. Bevor die Kernel-Entwickler zu diesem Schritt bereit waren, mussten die Xen-Entwickler aber ihre Virtualisierungsumgebung massiv abspecken. So ermöglicht der nun integrierte Code nur das Übersetzen eines DomU-Kernels, der in einem unprivilegierten Gastsystem unter Kontrolle des Xen-Hypervisors und eines Dom0-Kernels arbeitet. Um eben diese beiden Gastgeber-Teile zu erstellen, sind nach wie vor die Xen-Quellen und spezielle Kernel-Patches erforderlich.

Neben Xen integrierten die Entwickler auch Lguest, mit dem sich Linux-Kernel unter einem anderem paravirtualisiert betreiben lassen. Der Mini-Hypervisor war im Rahmen der paravit_ops-Programmierung eigentlich zu Testzwecken entwickelt worden, der Ansatz fand jedoch schnell Anklang. Der Verwalter des Hypervisors will die Code-Basis jedoch auch in Zukunft klein und einfach halten. Einige Entwickler arbeiten jedoch bereits daran, Ideen und Teile von lguest als KVM-Lite in die mit 2.6.20 aufgenommenen Virtualisierungslösung KVM (Kernel-based Virtual Machine) zu integrierten. Sie ist bisher auf Prozessoren mit Virtualisierungsfunktionen angewiesen ist und nutzt Paravirtualisierung nur in einigen wenigen Bereichen zur Performance-Steigerung. Auch an KVM selbst wurde geschraubt, das Gastsystemen nun auf Wunsch mehrere virtuelle Prozessoren bereitstellt. KVM ist zudem nicht mehr auf PAE angewiesen.

[Weiter: Userspace-Treiber, Suspend]