Spectre-Schutz für Quick Emulator: Zum 15. Geburtstag kommt QEMU 3.0.0

Version 3.0.0 des Quick Emulators fügt QEMU einen Spectre-Schutz hinzu. Künftig soll jedes Jahr eine neue Major Release erscheinen.

In Pocket speichern vorlesen Druckansicht 53 Kommentare lesen
Zum 15. Geburtstag kommt QEMU 3.0.0
Lesezeit: 3 Min.
Von

Mit Version 3.0.0 hat das QEMU-Projekt eine neue Major Release seines 2003 erstmals erschienenen Quick Emulator veröffentlicht. Spektakuläre Neuerungen gibt es nicht, dafür aber viele Detailverbesserungen.

QEMU emuliert die System-Hardware diverser Plattformen, angefangen bei x86/amd64 über PowerPC, ARM, Alpha oder SPARC32/64 bis hin zu Exoten wie m68k oder IBMs S/390. Der Emulator läuft auf fast allen gängigen Betriebssystemen und kann unter einigen von ihnen via KVM auch virtualisieren. Mehr als 2300 Änderungen am Quellcode, beigetragen von 169 Entwicklern, flossen seit dem Vorgänger 2.12 in QEMU 3.0.0 ein. Neben den vielen Änderungen waren die unhandlich gewordenen Versionsnummern und der dieses Jahr anstehende fünfzehnte Geburtstag des QEMU-Projektes ein Grund für das neue Major-Release. Von nun an soll jedes Jahr ein neues Major-Release erscheinen.

Auch an QEMU geht das Desaster um die Meltdown/Spectre-Sicherheitslücken nicht vorbei. Version 3.0.0 schützt mit den CPU-Flags ssbd, virt-ssbd, amd-ssbd und amd-no-ssb gegen Variante 4 (CVE-2018-3639). Über hv-reenlightenment lassen sich verschachtelte KVM-Gäste unter Hyper-V nutzen.

Virtueller Baukasten: QEMU 3.0.0 emuliert im Test eine Sun SPARCstation 5 mit NetBSD-8.0/sparc.

(Bild: Michael Plura)

Ein kleiner, aber dankenswerter Bugfix: Die Lesbarkeit der emulierbaren CPU-Typen der x86-Plattform ist wesentlich aufgeräumter. Dort fällt der neue Knights Mill auf, mit dem QEMU Intels Xeon Phi 72xx-CPUs nachbildet, die mit bis zu 72 Kernen und VNNI (Virtual Neural Network Instructions) speziell für den Deep-Learning-Einsatz gedacht sind.

Für ARM-Gäste gibt es jetzt eine Emulation der ARM System MMU Version 3 (SMMUv3/IOMMU) für universelle ARM-Gäste (virt-Plattform), sie sind im Gegensatz zu beispielsweise raspi2 an keine konkrete Hardware gebunden. ARM/virt lässt sich jetzt mit bis zu 512 Kernen konfigurieren, mithilfe des neuen FDPIC-Supports können shared-libraries auf ARM-Systemen ohne MMU genutzt werden.

Auf ARMv8M können Nutzer VLLDM/VLSTM (Floating-point Lazy Load/Store Multiple) verwenden, ebenso wie allgemein ARM/SVE (Scalable Vector Extension) als Alternative zu den SIMD/Vector-Erweiterungen NEON und AdvSIMD im Linux-User-Mode. Zu Armv8.2-FP16 (Fließkomma-Arithmetik mit halber Genauigkeit, 16bit) hat das Projekt fehlende Befehle hinzugefügt. Über die plattformunabhängige Schnittstelle SDL (Simple DirectMedia Layer) für Grafik-, Sound- und Eingabegeräte bietet QEMU 3.0.0 OpenGL ES (OpenGL für eingebettete Systeme).

Auch die vielen andere Zielplattformen wie PowerPC, RISC-V oder s390 haben etliche Neuerungen und Verbesserungen erhalten, die alle der Changelog aufführt. Vor einem Update sollten Anwender ihm einen Blick gönnen, da er nicht mehr aktiv unterstützte Host-Systeme (DragonFly BSD, Solaris, Haiku) auflistet – die Entwickler bitten hier um Mithilfe. Auch alle zu erwartenden Inkompatibilitäten zu älteren QEMU-Versionen finden sich hier.

Als unter der GPL2 stehendes Open-Source-Projekt ist QEMU frei verfügbar. Für Windows liegen auf der Projektseite Binärdateien bereit, macOS-Nutzer können brew oder MacPorts heranziehen. Für Linux lässt sich QEMU 3.0.0 aus dem Quellcode erzeugen, bis die Distributionen die Aktualisierungen aufnehmen. (fo)