Neue Version des quelloffenen System- und CPU-Emulators

Gebloggt: Qemu 2.1 ist fertig

| Redakteur: Thomas Drilling

Drillings Open-Source-Eck
Drillings Open-Source-Eck (Bild: Thomas Drilling)

Der quelloffene, als Fundament der Virtualisierung mit KVM- oder XEN dienende CPU- und System-Emulator Qemu ist in einer aktualisierten Version 2.1 mit zahlreichen Neuerungen erschienen. Qemu 2.1 kann z.B jetzt USB-3-Geräte an Gastsysteme durchreichen und verfügt über eine verbesserte Unterstützung für Non-Uniform Memory Access (NUMA) oder für das Erweitern des Arbeitsspeichers im laufenden Betrieb.

Qemu ist in erster Linie ein System-Emulator und kann auf einem Linux-Host virtuelle Gastsysteme auszuführen. Im Gegensatz zur echten Virtualisierung kann Qemu auch als reine Emulator zum Einsatz kommen und dann Betriebssysteme und Programme, die für eine bestimmte Architektur erstellt wurden, auf einer einer gänzlich anderen Architektur ausführen. Dass die Ausführungsgeschwindigkeit trotzdem relativ hoch ist, liegt am verwendeten Just-in-Time-Compiler. Qemu lässt sich aber auch als Virtualisierungslösung, als Frontend für einen Hypervisor wie KVM oder XEN verwenden. Der Quellcode von Qemu 2.1 ist auf der Download-Seite erhältlich.

Fehlerkorrekturen und Änderungen

Die neue Version 2.1 bringt erneut viele Änderungen, Korrekturen und Verbesserungen. Alle Fehler-Korrekturen, Änderungen und Neuerungen im Detail finden sich im Änderungsprotokoll. Was Korrekturen betrifft haben die Entwickler z. B. in der x86-Version unter anderem die Migration von Qemu 1.7 auf 2.1 repariert. Diese könnte allerdings für Anwender, die bereits Qemu 2.0 einsetzen, eine gewisse Inkompatibilität mit sich bringen. Alle übrigen Neuerungen sind aber mit älteren Versionen kompatibel, sieht man vom Umbenennen dreier eher selten benötigter Optionen ab.

Die Neuerungen von Qemu 2.1 unter der Lupe

Qemu 2.1 bringt auch zahlreiche Neuerungen: so haben die Entwickler beispielsweise für eine bessere Unterstützung beim Erweitern des Arbeitsspeichers im laufenden Betrieb gesorgt. Dabei „sieht“ ein Gast via Memory-Hotplugging aufgestockte Speicherbereiche wie ein nachgestecktes Speichermodul. Ferner lassen sich mit Qemu 2.1 USB-3-Controller in die virtuelle Maschine durchreichen und ein USB 2.0 Controller kann mit einem USB-3-Gerät des Hosts verbunden werden. Neu ist auch, dass sich Dateien via MTP-Emulation gemeinsam nutzen lassen. Dies funktioniert aber nur lesend. Qemu 2.1 kann außerdem jetzt mehrere Arbeitsplätze bedienen. Das bedeutet, dass sich Tastaturen und Mäuse gezielt einer ausgewählten Grafikkarte zuweisen lassen. Außerdem unterstützt Qemu in der SDL 2.0-Oberfläche das Mausrad. Darüber hinaus haben die Qemu-Entwickler den Support des Memory Pinning auf x86-NUMA-Systemen verbessert. Auf Mehrprozessor-Systemen nutzen Gastsysteme dann den Speicher, auf den der von der jeweiligen VM genutzte Prozessorkern den schnellsten Zugriff hat. Verbesserungen haben die Entwickler auch am Monitor vorgenommen. Der verfügt jetzt unter anderem über eine automatische Ergänzung, wenn der Nutzer die Anfangsbuchstaben des gewünschten Kommandos und dann Tab drückt.

Unterstützte Architekturen und neue emulierte Geräte

Verbesserungen gab es auch bei den unterstützten Architekturen und emulierten Geräten. So wurde etwa für die x86-Architektur der emulierte locale APIC auf die Version 0x14 gehievt. Zudem gab es Verbesserungen bei der Emulation des SMBus-Controllers und des TCG-Modus. Darüber hinaus haben die Qemu-Entwickler eine neues CPU-Modell Broadwell hinzugefügt. Ferner beherrscht Qemu 2.1 die SHA- und Krypto-Instruktionen von AArch64 und kennt das AArch64 TCG-System. Zudem ist die bereits in Qemu 1.4 angefangene neue Emulation für Blockgeräte virtio-blk dataplane nun laut Aussage der Entwickler fast vollständig. Sie ist aber immer noch als experimentell eingestuft und ist daher vom Nutzer explizit zu aktivieren werden. Schließlich haben die Entwickler eine Reihe von Funktionen bei der Infrastruktur zur Datenträgeremulation erweitert und Qemu 2.1 eine bessere Unterstützung für Hot-Plug/Hot-Unplug bei der Emulation von x86-Systemen mit dem Q35-Systemtyp spemdiert, sowie den Mulitseat-Suport verbessert.