Kernel-Log – Was 3.0 bringt (3): Architektur, Infrastruktur und Virtualisierung

Trends & News | Kernel-Log

Sechs Jahre später als ursprünglich erwartet enthält der Kernel nun alles Wichtige zum Betrieb als Xen Dom0. Bei Linux 3.0 gehen die Entwickler einige Probleme im ARM-, Reboot- und UEFI-Code an. Das Optimieren auf kleinen Code per Compiler-Schalter gibt Torvalds etwas enttäuscht auf.

In der Nacht von Montag auf Dienstag hat Linus Torvalds eine weitere Vorabversion von Linux 3.0 veröffentlicht. In der Freigabe-Mail zum RC6 hebt er die Aufnahme des Isci-Treibers (u. a. 1) für den SAS-Controller in Intels Server- und Workstation-Chipsatz C600 hervor, der in den kommenden Monaten erscheinen soll. Da der Treiber vergleichsweise groß ist, war sich Torvalds unsicher, ob er so spät im Entwicklungszyklus noch aufgenommen werden soll. Da der Treiber-Code aber für sich alleine stehe, könne er keine Fehler auslösen, die frühere Kernel nicht gezeigt haben.

Von dem Treiber abgesehen hat es vorwiegend kleine Korrekturen an verschiedenen Stellen gegeben. Torvalds deutete an, dem Punkt näher zu kommen, wo er über eine Freigabe von Linux 3.0 nachdenkt, weil es ziemlich ruhig und die Änderungen nicht sonderlich aufregend seien. Das Kernel-Log will daher seine Berichterstattung über die Neuerungen von Linux 3.0 mit einer Beschreibung der Änderungen rund um Architektur, Infrastruktur und Virtualisierung fortsetzen. In den nächsten Tagen folgt der vierte und letzte Teil der "Was 3.0 bringt"-Mini-Serie, der sich Treibern widmen wird; der erste Teil hatte sich mit Netzwerk-Treibern und -Infrastruktur beschäftigt, der zweite mit Dateisystemen.

Unter den für Linux 3.0 aufgenommenen Änderungen findet sich das Storage-Backend für Xen (u. a. 1, 2, 3). Damit enthält der Kernel nun endlich alle essentielle Komponenten, um als Dom0 mit dem Xen-Hypervisor zusammen Gastsysteme zu hosten. Und nicht nur das: Auch der Entwicklerzweig von Qemu enthält seit Mitte Mai alles nötige, um die Hardware für Xen-Gäste zu emulieren, die mit Hilfe der Virtualisierungsfunktionen moderner Prozessoren laufen (HVM/Hardware-assisted Virtualization).

Hintergründe zu diesen beiden lange vorbereiteten Änderungen finden sich in einigen Blog-Einträgen (1, 2, 3, 4, 5, 6). Bei dem in Kernel und Qemu integrierten Code handelt es sich allerdings um eine erheblich zusammengestrichene und überarbeitete Variante des Codes, den kommerzielle Xen-Produkte wie Citrix XenServer derzeit einsetzen. Der Funktionsumfang ist daher kleiner; es lassen sich beispielsweise keine USB-Geräte an Gäste durchreichen und Suspend-to-RAM funktioniert nicht. Die Xen-Entwickler haben daher noch einige Arbeit vor sich, aber die Aufnahme der Hauptkomponenten jetzt endlich geschafft, nachdem die schon 2005 schon zum Greifen nahe schien.

Die Verzögerung bei Xen hat sicher auch zum Erfolg des von KVM (Kernel-based Virtual Machine) beigetragen (siehe auch: Die Woche: Xen hat KVM vorbeiziehen lassen). Der Kernel-eigene Hypervisor unterstützt mit Linux 3.0 nun VIA-Prozessoren und die virtuelle Time Stamp Counter (TSC) Rate neuerer AMD-Prozessoren. Ferner wollen die Kernel-Hacker die Genauigkeit des Emulators und die Performance verbessert haben, wie aus dem Haupt-Git-Pull-Request von KVM-Betreuer Avi Kivity hervor geht. Ferner soll die "Event Index"-Unterstützung in den häufig mit KVM genutzten Virtualisierungsschnittstellen Virtio und Vhost den Overhead beim Datenaustausch zwischen Gast und Host reduzieren.

Neu ist auch Unterstützung für die Supervisor Mode Execution Protection (SMEP) kommender Intel-Prozessoren. Sie versucht zu verhindern, dass Ring-0-Treiber direkt Usermode-Code anspringen können; einige Hintergründe dazu erläutert Dan Rosenberg in einem Blog-Eintrag.

Der Kernel 3.0 wird erstmals die 64-bittige Tilera-Architektur (TILE-Gx) unterstützen – ein Multi-Core-Design der Prozessorfirma Tilera. Der Code für Power-Prozessoren spricht nun die CPUs der Familie PowerEN (Power Edge of Network) an, die auch unter ihrem Codenamen "Wirespeed Pro" (wsp) bekannt sind; einige weitere Power-Neuerungen finden sich im Haupt-Git-Pull-Request für den PPC-Code. Die SMP- und Highmem-Unterstützung für ARM gilt nicht mehr als experimentell (1, 2).

Kommentare