Zum Hauptinhalt Zur Navigation

Linux-Kernel 3.9: Viel Grafisches und mit Goldfischen

Der Linux-Kernel 3.9 ist erschienen. Viel Arbeit haben die Entwickler in den Grafikstack gesteckt. Außerdem wurde der Code des Android-Emulators Goldfisch in dem Hauptzweig des Kernels akzeptiert. Das Dateisystem Btrfs unterstützt Raid 5 und 6.
/ Jörg Thoma
32 Kommentare News folgen (öffnet im neuen Fenster)
Linux 3.9 ist erhältlich. (Bild: Suneko)
Linux 3.9 ist erhältlich. Bild: Suneko

Mit einwöchiger Verzögerung hat Linus Torvalds den Linux-Kernel 3.9 veröffentlicht(öffnet im neuen Fenster) . Die letzten Codeänderungen seien nicht aufregend gewesen, schreibt er, deshalb habe er den aktuellen Kernel freigegeben. Die Code-Einreichungen kurz vor der Veröffentlichung des vorletzten Release Candidate waren so umfangreich, dass Torvalds die endgültige Freigabe sicherheitshalber noch um eine Woche verschob.

Arbeiten am Grafikstack

Bei der Erkennung der angeschlossenen Bildschirme legen aktuelle Kernel-Versionen noch eine kleine Pause ein, die den Sperrfunktionen des Grafikstacks geschuldet ist. Mit dem aktuellen Kernel soll damit Schluss sein. Das soll auch die Zusammenarbeit mit dem Compositing Manager verbessern.

Von Aaron Plattner stammt weiterer Quellcode für die Hybrid-Grafik-Unterstützung durch den Linux-Kernel. Seine Patches sorgen für eine gemeinsame und deshalb effizientere Nutzung des Arbeitsspeichers durch mehrere Grafikkarten. Diese Prime/Buf-Helpers erlauben die Nutzung proprietären Codes, weshalb bereits die aktuelle Beta des Nvidia-Treibers diese Schnittstelle verwendet .

Der Nouveau-Treiber für Nvidia-Chipsätze und der Treiber für Grafikkarten von Intel können es schon lange, jetzt haben die Entwickler auch für den freien Radeon-Treiber für AMD-Chips von User-Space-Settings auf die Kernel-Mode-Settings (KMS) umgestellt. Aktuelle Oland- und die kommenden Richland-Chipsätze von AMD werden vom aktuellen Linux-Kernel 3.9 unterstützt.

Der Treiber für die Grafikchips in den OMAP-SoCs von Texas Instruments gilt nicht mehr als experimentell. Er wurde zudem um die Unterstützung für aktuelle OMAP-5-Chips erweitert. Außerdem wurde das Power Management für die SoCs verbessert.

Raid 5/6 für Btrfs

Das weiterhin als experimentell eingestufte Dateisystem Btrfs erhält die Unterstützung für Raid 5 und 6(öffnet im neuen Fenster) . Bisher konnte Btrfs mit Raid 0 und 1 umgehen, ohne auf die Dm-Raid angewiesen zu sein. Damit kann Btrfs Daten bei einem Datenträgerwechsel schneller wiederherstellen, da es direkt mit dem Datenträger kommunizieren kann. Die Änderungen ermöglichen beispielsweise das Restaurieren von Teilbereichen des Dateisystems, was mit Dm-Raid nicht möglich ist. Von mehreren Btrfs-Snapshots gemeinsam genutzte Daten werden bei der Defragmentierung nicht mehr aufgeteilt, was Speicherplatz spart. Zudem wurde Fsync im Dateisystem nochmals überarbeitet und verbessert.

Der Device Mapper des Linux-Kernels, mit dem virtuelle, blockorientierte Geräte erzeugt werden können, erhält mit Dm-Cache(öffnet im neuen Fenster) die Möglichkeit, den Datenpuffer auf einen schnelleren Datenträger auszulagern, etwa einer SSD.

Das bereits in Linux 3.8 eingeführte Flash-Friendly File-System (F2FS) von Samsung für Flash-Speicher erhielt eine Reihe von Korrekturen und Erweiterungen. F2FS basiert auf einem Log-Structured File System (LFS), soll aber die Nachteile eines solchen Ansatzes - Schneeballeffekte, Wandering-Trees und hohen Aufwand für Aufräumarbeiten - ausgleichen. Außerdem unterstützt F2FS Parameter zum Umgang mit den Eigenheiten von Flash-Speicher, beispielsweise zur Festlegung von On-Disk-Layouts und der Auswahl von Aufräumalgorithmen. F2FS gilt aber immer noch als experimentell.

Der Libata-Treiber des Linux-Kernels kommt jetzt mit Zero-Power Optical Device Drives (ZPODD) zurecht und kann damit diese optischen Laufwerke vollkommen ausschalten, wenn dort kein Medium eingelegt ist. Außerdem wurden die Latenzzeiten verringert, die durch die Stable Pages entstehen, jene Daten, die der Kernel zum Schreiben auf Datenträger zwischenspeichert.

Mehr Leistung

Auf Mehrkern-CPUs konnte ein Prozess zwischen Prozessoren durchgereicht werden, was zu Leistungseinbußen führte, vor allem beim Festplattendurchsatz. Ein Patch für den Scheduler des Kernels behebt das Problem, das die Entwickler etwas salopp als "bouncing cow problem" bezeichneten. Die Leistungssteigerung soll bis zu 15 Prozent betragen.

Der Code für CPU Time Accounting, das Printk()-Subsystem und der Irq_Work-Code wurden so abgeändert, dass sie im Userspace auch ohne Tick Interrupts funktionieren. Das sorgt für Entlastung und ebenfalls für einen Leistungsschub. Die Arbeiten an einem "Tickless Kernel" sind aber noch nicht abgeschlossen, der bereits 2007 vorgeschlagen wurde(öffnet im neuen Fenster) .

ARM und Android

Auf ARMs Cortex-A15-CPUs lässt sich mit KVM virtualisieren. Gleichzeitig wurde eine erste Unterstützung für Nvidias Tegra-4-SoC umgesetzt. Dieser soll die in den kommenden Monaten erwarteten Cortex-A15-Prozessoren von ARM unterstützen. Der Xen-Code im Kernel kommt mit Cortex-A15-CPUs bereits zurecht. Allerdings wird erst Xen 4.3 die neuen ARM-CPUs vollständig unterstützen, das ebenfalls in den nächsten Monaten erscheinen soll.

Von Google kommt der Code für Goldfish, den Android-Emulator. Als Goldfish bezeichnet Google dabei die virtuelle CPU, auf der der Emulator läuft.

Virtualisierung und Netzwerk

Das Xen-Subsystem unterstützt das Hotplugging von CPUs und Speicher. Allerdings können diese bislang nur hinzugefügt, aber nicht entfernt werden. Von VMware stammen das Subsystem "VM Sockets", das die Kommunikation zwischen virtuellen Maschinen und dem Hypervisor ermöglicht, und das "Virtual Machine Communication Interface", das die Kommunikation zwischen Hosts und Gästen ermöglicht.

Der Netzwerkstack wurde um das "Multiple VLAN Registration Protocol" (MVRP) erweitert, das sich um die Verständigung zwischen angemeldeten virtuellen Netzwerken und Switches kümmert.

Die TCP- und UDP-Sockets unterstützen die neue Option SO_REUSEPORT. Damit können mehrere Sockets gleichzeitig nach neuen Verbindungen oder Paketen lauschen. Damit sollen Engpässe vermieden werden, wenn beispielsweise ein Thread eines Webservers neue Verbindungen an weitere Threads verteilen muss. Die neue Option soll laut Google-Entwickler Tom Herbert auch eine ungleiche Verteilung von mehreren Prozessoren vermeiden. Der Netfilter-Code kann einzelne Verbindungen kennzeichnen. Diese Bitmasks können mit Tracking-Einträgen verbunden werden und mit Netfilter-Regeln geprüft werden.

Mit dem WLAN-Subsystem lassen sich künftig Radarsysteme aufspüren, die ebenfalls im 5-GHz-Bereich operieren. Damit wird die dynamische Frequenzauswahl in diesem Bereich möglich.

Die Webseite LWM des Linux-Entwicklers John Corbett hat bereits einen Überblick über drei Teilbereiche der Neuerungen des Linux-Kernels 3.9 veröffentlicht, darunter für die Infrastruktur(öffnet im neuen Fenster) , die Dateisysteme(öffnet im neuen Fenster) und die Netzwerkkomponenten(öffnet im neuen Fenster) . Der Quellcode ist unter kernel.org(öffnet im neuen Fenster) erhältlich.


Relevante Themen