Da der 2.6.33er Kernel kurz vor Redaktionsschluss veröffentlicht wurde, passt es ja ganz gut und ich übernehme den Kernel-Rückblick. Dieser ist, neben vielen anderen interessanten Themen, in der aktuellen Ausgabe von freiesMagazin enthalten.
In unter drei Monaten und nach nur acht Vorabversionen veröffentlichte Torvalds Ende Februar noch den Kernel 2.6.33 [1]. Der trotz Weihnachtszeit und des Jahreswechsels vergleichsweise schnell fertiggestellte Neuling der Linux-Kernel-Reihe kann dennoch mit bedeutenden Neuerungen aufwarten. So befindet sich der freie Treiber „Nouveau“ für NVIDIA-Grafik-Chipsätze nun im Kernel. Er wurde mittels Reverse Engineering ohne Hilfe von NVIDIA entwickelt, bietet jedoch bereits gute 2-D-Unterstützung und eine eingeschränkte 3-D-Beschleunigung. Die Arbeiten daran laufen weiter, unter anderem mit dem Ziel, die Abhängigkeit von der Firmware ctx_voodoo zu entfernen. Die Nouveau-Entwickler erhoffen sich eine bessere und längerfristige Unterstützung von Grafikhardware, da Anwender unterstützter Karten nun nicht mehr allein auf das Wohlwollen des Herstellers angewiesen sind.
Ebenfalls populär war die Aufnahme des Kernel-Moduls von DRBD (Distributed Replicated Block Device). Diese Software ermöglicht die Replikation eines Blockspeichergerätes über das Netzwerk auf andere Systeme. Damit lassen sich zum Beispiel Partitionen erstellen, die auf mehreren Servern synchron gehalten werden und somit beim Ausfall eines Systems noch zur Verfügung stehen - sei es durch einen Festplattendefekt, eine Störung des Netzwerks oder sonstige Ausfälle bedingt.
Etwas Schutz vor bösen Absichten sollen „TCP Cookie Transactions“ (TCPCT) bieten - eine Erweiterung des TCP-Protokolls, die die Wirksamkeit von Denial-of-Service-Attacken vermindert. Dabei wird beim Verbindungsaufbau ein Cookie mitgesendet, mit dessen Hilfe auf der Gegenseite eben jener Verbindungsaufbau ohne die Nutzung weiterer Ressourcen durchgeführt werden kann. Ebenso werden direkt nach Beendigung der Verbindung Ressourcen auf dem Server wieder freigegeben.
Auch von ReiserFS gibt es wieder etwas zu hören. Allerdings von der etwas älteren Version 3, die bislang immer noch Gebrauch vom Big Kernel Lock (BKL) machte. Diese mittlerweile veraltete Variante zur Verhinderung gleichzeitiger Zugriffe auf den Kernelspace sperrt den gesamten Kernel, im Gegensatz zur aktuellen Methode, nur einzelne Zweige zu sperren. ReiserFS machte hiervon exzessiv Gebrauch und erleichterte es den Entwicklern dadurch nicht gerade, ihm den BKL auszutreiben. Sie bedienten sich daher rekursiver Locks (mehrfacher Sperren durch einen einzigen Thread). Dies wird auch nicht als saubere Lösung gesehen, allerdings hätte eine Implementierung aktueller Sperrmechanismen ein Umschreiben großer Teile von ReiserFS erfordert.
Auch diesmal ist die Anzahl der Änderungen wieder zu groß, um sie alle beschreiben zu können. Spieler und Bastler können sich über die Unterstützung für Sonys Wii und Nintendos Gamecube freuen, Entwickler über weitere Werkzeuge zur Leistungsmessung des Kernels. Der Radeon-Treiber wurde verbessert und arbeitet nun auch mit R6xx- und R7xx-Modellen, neue Treiber kamen in allen Bereichen hinzu. Eine umfassende, englischsprachige Auflistung bietet Kernelnewbies [2].
Seit 2.6.33 sind die Android-spezifischen Anpassungen nicht länger im Linux-Kernel enthalten. Einmal mehr betonte der Verwalter des staging-Zweiges, Greg Kroah-Hartman, staging ist kein Abladeplatz für ungepflegten Code und warf die entsprechenden Treiber kurzerhand raus [3]. Android nutzt ein anderes Verfahren zum Sperren genutzter Bereiche im Kernelspace und verfügt auch über ein abweichendes Sicherheitsmodell, wodurch zusätzliche Anpassungen benötigt werden, damit Android-Treiber in den Linux-Kernel aufgenommen werden könnten. Leider machte Google bislang keine Anstalten, um diese notwendigen Änderungen vorzunehmen. Nachdem Jan Wildeboer nun einen Fork des Kernels [4] befürchtete, kam wieder Leben in das Thema. In einem Interview mit Linux-Magazin ließ Kroah-Hartman durchsickern, dass Google die Zusammenarbeit mit den Entwicklern des Mainstream-Kernels aufnehmen möchte und auch das Sicherheitsmodell von Android überarbeiten wolle [5].
Auch Con Kolvias, der ein ausgeprägtes Faible für Scheduler hat, meldet sich zurück - mit einem umfassenden Satz an Patches für den Kernel 2.6.33, der sich auf die Leistung des Kernels auf einem Desktop-System positiv auswirken soll [6]. So findet sich darin unter anderem der von ihm erdachte Brain Fuck Scheduler (BFS), mit dem er sich im September vergangenen Jahres nach zweijähriger Pause wieder bei der Kernel-Entwicklergemeinde zurückmeldete (siehe „Der September im Kernel-Rückblick“, freiesMagazin 10/2009 [7]). BFS nutzt die Ressourcen auf Systemen mit vier oder weniger Prozessoren besser als der derzeit verwendete Completely Fair Scheduler (CFS). Weitere enthaltene Patches verringern Latenzzeiten oder optimieren das Swap-Verhalten.
Eine Methode, um Kernelaktualisierungen ohne Neustart des Systems zu installieren, stellt Ksplice dar (siehe „Kernel-Rückblick“, freiesMagazin 05/2008 [8]). Das am MIT (Massachusetts Institute of Technology) [9] entwickelte Verfahren wird nun durch das Unternehmen Ksplice [10] als Dienstleistung namens „Ksplice Uptrack“ vertrieben. Dabei stellt Ksplice angepasste Aktualisierungen bereit, die per Abonnement durch ein auf dem System installierten Programm heruntergeladen und als Modul zur Laufzeit in den Kernel eingehängt werden. Während das Abonnement für Red Hat Enterprise Linux, CentOS, Debian und Ubuntu 8.04 LTS kostenpflichtig ist, steht es Anwendern von Ubuntu 9.04 und 9.10 kostenfrei zur Verfügung [11].
Linux ist Freie Software. Dass damit nicht frei im Sinne von Freibier gemeint ist, darauf wies schon Richard M. Stallman hin. Eine Forschungsgruppe an der Universität von Oviedo (Spanien) hat diese Aussage nun mit harten Zahlen untermauert [12]. Die Forscher ermittelten nach dem Constructive Cost Model (COCOMO) [13] den Wert des Kernels 2.6.30 mit über einer Milliarde Euro. Bei einer Entwicklungszeit von 14 Jahren würden von Anfang an 985 Personen an der Kernel-Entwicklung mitarbeiten müssen. Die Forscher weisen darauf hin, dass die verwendeten Kostenmodelle der Komplexität der Open-Source-Software-Entwicklung nicht ganz gerecht werden, da hier Code beständig einfließt, aber auch wieder entfernt wird. Dies würde ein Überdenken dieser Modelle erfordern, um zum Beispiel auch die Wiederverwendung und Weiterentwicklung des Codes zu berücksichtigen [14].
Quellen:
[1] [lkml.org]
[2] [kernelnewbies.org]
[3] [www.pro-linux.de]
[4] http://jan.wildeboer.net/2010/02/is-google-forking-the-linux-kernel
[5] [www.linux-magazin.de]
[6] [www.linux-community.de]
[7] [www.freiesmagazin.de]
[8] [www.freiesmagazin.de]
[9] http://mit.edu
[10] http://www.ksplice.com
[11] [www.pro-linux.de]
[12] [www.pro-linux.de]
[13] [de.wikipedia.org]
[14] [iri.jrc.ec.europa.eu]
Der Kernel 2.6.33 für Ubuntu im Mainline-Kernel-Archiv:
Das
Ubuntu-Kernel-Team stellt ein
Archiv mit dem Mainline-Kernel zur Verfügung, der ohne die spezifischen Anpassungen der regulären Ubuntu-Versionen erstellt wird.
Achtung! Die Installation des nicht angepassten Kernels kann die Systemstabilität beeinträchtigen!
Die Pakete 2 und 3 müssen nur installiert werden, wenn Anwendungen vorhanden sind, die die Headerdateien benötigen um z.B. Kernelmodule zu kompilieren. Die Pakete sollten dann in der jeweils aufgeführten Reihenfolge installiert werden. Die Kernel-Quellen werden nicht benötigt.
Architektur i386 (32 Bit):
- http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-image-2.6.33...
- http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-headers-2.6....
- http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-headers-2.6....
Architektur amd64 (64 Bit):
- http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-image-2.6.33...
- http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-headers-2.6....
- http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/linux-headers-2.6....
Kernel-Quellen:
