Software::Kernel
Linux-Kernel 2.6.39 freigegeben
Linux-Initiator Linus Torvalds hat Version 2.6.39 des Linux-Kernels freigegeben, die unter anderem diverse Optimierungen und die erstmalige Unterstützung der chinesischen Prozessorarchitektur Unicore bringt.
Linux Foundation
Linus Torvalds, Initiator des Linux-Kernels
Nur neun Wochen dauerte der jüngste Entwicklungszyklus des
Linux-Kernels, nachdem schon die Entwicklung von
Linux 2.6.38 nur zehn Wochen in Anspruch nahm. Ob dies einen dauerhaften Trend zu höheren Veröffentlichungsfrequenzen bedeutet, bleibt abzuwarten. Der Grund für die kurze Entwicklungszeit könnte auch einfach darin bestehen, dass es dieses Mal keine umwälzenden Änderungen gab. Dennoch war der Umfang der Änderungen insgesamt noch ein klein wenig höher als in der Vorversion.
Wie Linus Torvalds in seiner Ankündigung schreibt, war er allerdings kurz davor, einen weiteren Veröffentlichungskandidaten einzuschieben, da es für seinen Geschmack noch zuviele Korrekturen in letzter Minute gab. Schließlich gab er sich mit dem aktuellen Stand aber doch noch zufrieden, ansonsten hätte er auch Schwierigkeiten mit der Terminplanung gehabt, da er in knapp zwei Wochen zur LinuxCon nach Japan fliegt, und er das zweiwöchige Zeitfenster zum Integrieren der Neuerungen für Linux 2.6.40 nicht über die LinuxCon hinaus ausdehnen wollte.
Insgesamt hat Torvalds in Linux 2.6.39 rund 11000 Änderungen integriert, die letzten 2000 davon waren überwiegend Korrekturen. Wie meistens waren zwei Drittel aller Änderungen neue oder aktualisierte Treiber. Die ARM-Architektur erhielt Unterstützung für weitere Boards, und die Vereinheitlichung der m68k-Architektur mit und ohne Speicherverwaltungseinheit auf den Prozessoren wurde vollzogen.
Neu ist die erstmalige Portierung auf die chinesische Prozessorarchitektur Unicore, nicht zu verwechseln mit zahlreichen anderen Produkten gleichen Namens. Diese an der Universität von Peking entwickelte 32-Bit-Architektur ist bereits einige Jahre alt. Sie wird in CPU- und Microcontroller-Chips genutzt, die in einer Anzahl von Produkten in China eingesetzt werden.
Bei der Interrupt-Behandlung wurde eine Option eingeführt, alle Interrupt-Handler als Threads auszuführen. Hauptsächlich dient dies zum Debuggen von Interrupt-Handlern, viele Treiber wurden infolgedessen geändert. Auch im Dateisystembereich wurde optimiert und aufgeräumt. Von besonderer Bedeutung ist dabei ein neues »Plugging«-Modell für Blockgeräte. Dieses wurde so umstrukturiert, dass weniger Sperren erforderlich sind, was einen häufig genutzten Aufruf beschleunigen sollte. Ferner wurden zwei neue Systemaufrufe eingeführt, die mit Datei-Handles arbeiten. Vor allem Dateiserver im Userspace sollten davon profitieren; das Dateisystem XFS bot bereits einen ähnlichen Mechanismus an. Ein weiterer neuer Systemaufruf syncfs
wirkt wie sync
, aber nur auf ein einzelnes Dateisystem.
Der »Big Kernel Lock« (BKL), eine seinerzeit von Alan Cox eingeführte globale Sperre, um die Ausführung des Kernels auf mehreren Prozessoren zu ermöglichen, ist nun endgültig entfernt. Viele Jahre Arbeit waren nötig, um die Sperrmechanismen im Kernel immer weiter zu verfeinern, so dass die effiziente Ausführung des Betriebssystems auf immer mehr Prozessorkernen, mittlerweile tausenden, parallel möglich ist. Zuletzt waren nur noch wenige Treiber für eher ungebräuchliche Hardware verblieben, die den BKL benötigten. Jetzt sind auch die letzten umgestellt.
Der Speicherallokator SLUB wurde erheblich beschleunigt, da er nun viele Allokierungen ausführen kann, ohne eine Sperre setzen zu müssen. Der CPU-Scheduler erhielt ein Directed Yield-Feature, mit dem virtuelle Maschinen unter Umständen etwas schneller werden. IP sets ermöglichen künftig die Gruppierung von IP-Adressen, um sie mit einer einzelnen IPTables-Regel abzudecken. Durch die Vergrößerung des initialen Sendefensters im TCP-Protokoll soll die Latenzzeit in einigen Fällen sinken. User Namespaces, deren Anfänge jetzt integriert wurden, sind eine Art von Containern, in denen ein nichtprivilegierter Benutzer Root-Rechte für diesen Container erhalten kann, nicht jedoch außerhalb.
Viele neue Treiber fanden auch dieses Mal den Weg in den Kernel, darunter die Unterstützung für USB 3.0-Hubs und Intel GMA500-Grafikchips. Intern wurde das videobuf-Framework in Video4Linux2 durch das verbesserte videobuf2 ersetzt.
Eine Liste aller Änderungen enthält das sehr ausführliche Changelog. Die Seite Kernelnewbies.org wird in Kürze eine übersichtliche Zusammenfassung der Änderungen veröffentlichen. Die aktuelle Version von Linux kann von kernel.org und zahlreichen Spiegel-Servern in Form von Patches oder tar-Paketen heruntergeladen werden.