Zum Hauptinhalt Zur Navigation

Linux-Kernel 2.6.20 bringt Virtualisierung

Unterstützung für Sonys PlayStation 3 integriert. Es hätte eine schnelle Veröffentlichung werden sollen, doch dann raubte ein kritischer Fehler im Linux-Kernel den Entwicklern zusätzliche vier Wochen. Nun hat Linus Torvalds die neue Version 2.6.20 freigegeben, die vor allem im Bereich Virtualisierung einiges zu bieten hat.
/ Julius Stiebert
19 Kommentare News folgen (öffnet im neuen Fenster)

Verschiedene Gruppen buhlen schon länger darum, ihre Virtualisierungsansätze in den Linux-Kernel zu bekommen. Doch weder Xen noch eine der unterschiedlichen Lösungen, die den Host-Kernel mitbenutzen, ist es bisher geworden. Stattdessen hat Linus Torvalds kurzerhand die recht junge Kernel-Based-Virtual-Machine (KVM) aufgenommen . Diese fügt dem Kernel Unterstützung für die Virtualisierungstechniken der Prozessorhersteller AMD und Intel hinzu. Über ein zeichenorientiertes Gerät können Userspace-Prozesse die Virtualisierungstechnik direkt ansprechen und virtuelle Maschinen starten, die eigene virtuelle Festplatten, Netzwerkkarten und Displays haben.

Auch mehrere virtuelle Systeme lassen sich mit KVM starten, wobei jede Umgebung als ein Prozess erscheint, deren virtuelle CPU ein Thread innerhalb dieses Prozesses ist. Durch den Treiber gesellt sich zu den bereits vorhandenen Kernel- und User-Modi noch ein Guest-Modus, der seinen eigenen Adressraum im physischen Speicher hat. Allerdings verbietet der Guest-Modus einen Zugriff auf I/O-Geräte. Jeder Versuch wird abgefangen und an den User-Mode zur Emulation weitergereicht.

KVM läuft ausschließlich auf x86 sowie x86-64 und benötigt außerdem eine veränderte Qemu -Version für die I/O- und BIOS-Emulation. Da die Hardware-Techniken genutzt werden, können mit KVM auch umodifizierte Gastsysteme wie Windows virtualisiert werden.

Doch KVM ist nicht die einzige Neuerung in Sachen Virtualisierung. Vielmehr gelangte auch die von XenSource und VMware entwickelte Hypervisor-Schnittstelle " paravirt_ops " in Linux 2.6.20. Der Bedarf für eine solche Schnittstelle ergab sich aus dem Prinzip der Paravirtualisierung. Diese gilt zwar als sehr leistungsfähig, erfordert aber einen modifizierten Betriebssystem-Kernel – das System "weiß" also quasi, dass es virtualisiert läuft. Ein so veränderter Kernel läuft dann allerdings nicht mehr nativ auf der Hardware, womit unterschiedliche Linux-Versionen für den nativen und den virtualisierten Einsatz notwendig sind. Durch die Schnittstelle hingegen soll der Linux-Kernel sowohl unter einem Hypervisor als auch direkt auf der Hardware laufen können.

Neu ist auch die Unterstützung für Sonys aktuelle Spielekonsole PlayStation 3, die Ende März 2007 auch in Europa zu haben sein wird . Den Weg für ein alternatives Betriebssystem auf der PlayStation ebnete Sony selbst und auch die integrierten Kernel-Patches stammen von Sonys Entwicklern. Doch ist die Unterstützung nur halbherzig. Sony setzt auf einen Hypervisor, um die Hardware zu virtualisieren und verhindert so beispielsweise den Zugriff auf den Grafikchip. So lassen sich weder 2D- noch 3D-Beschleunigung nutzen. Ob sich dies ändern wird, ist fraglich, Sony argumentiert mit dem Schutz des integrierten Sicherheitssystems.

Zu der 250-Hz-Konstante, mit der Linux zwischen Prozessen umschaltet, gesellt sich nun auch noch eine 300-Hz-Variante, die für Multimedia-Arbeiten im NTSC-Verbreitungsraum gedacht ist. Weiterhin lässt sich natürlich auch noch zwischen 250 und 1.000 Hz wählen.

Zudem gibt es zwei neue Funktionen, die die Fehlersuche im Kernel erleichtern sollen und damit primär für Entwickler interessant sind. Mit der "Fault Injection" lassen sich gezielt Fehler in einzelne Schichten des Kernels einschleusen, um beispielsweise die Qualität der Fehlerbehandlung zu testen. Ferner gibt es nun die Funktion "Relocatable Kernel", womit sich der Kernel in anderen Speicherbereichen als üblich ausführen und so im Zusammenspiel mit Kdump nach der Fehlerursache im Anschluss an einen Kernel-Crash suchen lässt.

Eine neue Variante des I/O-Accountings soll effizienter arbeiten und exportiert die pro Prozess gesammelten Statistiken über das Proc-Pseudo-Dateisystem. Neu hinzugekommen ist auch eine einheitliche Schnittstelle für Human-Interface-Geräte, wie Tastaturen. Bisher stand dieses nur für USB-Geräte zur Verfügung, lässt sich jetzt aber von allen Subsystemen ansprechen, ist also beispielsweise für Bluetooth-Geräte verfügbar.

Bei den Dateisystemen sticht vor allem die bereits mit Kernel 2.6.19.2 verfügbare Fehlerkorrektur für das Datenverlustproblem hervor, die den Entwicklungsprozess so lange herauszögerte. Durch den Fehler konnte es in seltenen Fällen zu Datenverlusten im Zusammenspiel mit Ext3 kommen, doch auch andere Dateisysteme waren offensichtlich betroffen. Kleinere Aktualisierungen gab es auch beim OCFS2- und beim FUSE-Code. Letzteres bringt vor allem in Bezug auf den NTFS-Treiber NTFS-3G und die ZFS-Implementierung Verbesserungen mit.

Wie üblich gibt es auch im Kernel 2.6.20 einige neue Treiber, darunter für die Atmel-MACB-Netzwerkchips. Besonders viele Änderungen gab es wieder bei den DVB-Treibern und die für SATA und Parallel-ATA genutzten Libata-Treiber wurden teilweise in Hinblick auf Energiesparfunktionen aktualisiert. Die Software-Suspend-Implementierung kann in der neuen Kernel-Version außerdem mit Swap-Dateien umgehen und soll auf Computern mit mehr als 1 GByte RAM besser funktionieren.

Der MMC-Treiber unterstützt nun SD-Speicherkarten mit einer Taktfrequenz von 50 Hz und zudem MMC-v4-High-Speed- und SDHCI-Hochgeschwindigkeitskarten. Auch das Firewire-Module ohci1394 bringt nun Suspend- und Resume-Funktionen mit.

Die IPv6-Implementierung im Linux-Kernel bietet nun Statistiken pro Schnittstelle. Das für WLAN genutzte IEEE80211-Subsystem unterstützt MTU-Werte über 1.500. Netfilter, mit dem sich Netzwerkpakete abfangen und manipulieren lassen, wurde um NAT-Unterstützung für den Connection Tracking Helper erweitert. Damit funktionieren Verbindungsverfolgungen – also das Speichern von Informationen wie der Quell- und Zieladresse – jetzt auch komplett zusammen mit Network Address Translation (NAT). Zur Verfügung stehen Helper für SIP, FTP, IRC, TFTP sowie ein paar weitere Protokolle inklusive H.323.

Zu den weiteren Änderungen zählt unter anderem die Vereinigung des Speedstep-Centrino- und des Acpi-Cpufreq-Treibers. Bei den Verschlüsselungsfunktionen kamen die Algorithmen XCBC und Liskov Rivest Wagner hinzu und der Kernel lässt sich beim Kompilieren nun auch für Intels Core2-Prozessoren optimieren. Um die neue Kernel-Version zu übersetzen, ist nun übrigens mindestens der GCC 3.2 nötig.

Linux 2.6.20 kann entweder als vollständiges Archiv(öffnet im neuen Fenster) oder als Patch(öffnet im neuen Fenster) von kernel.org(öffnet im neuen Fenster) heruntergeladen werden. Außerdem steht die neue Version auf diversen Mirror-Servern(öffnet im neuen Fenster) zum Download bereit.


Relevante Themen