Menü
iX Magazin

QEMU 4.0 mit vielen Neuerungen für ARM

Der freie Quick Emulator ist in Version 4.0 erschienen. Änderungen gibt es vor allem für die ARM-Plattform, aber auch für MIPS, PowerPC und das freie RISC-V.

vorlesen Drucken Kommentare lesen 37 Beiträge

(Bild: Coyau, CC BY-SA 3.0)

Mit QEMU 4.0 erscheint eine neue Major Release der freien und universellen Emulations- und Virtualisierungssoftware. Nach nur vier Monaten Arbeit seit dem Vorgänger 3.1 enthält Version 4.0 über 3100 Commits von 220 Entwicklern.

Neuerungen gibt es in QEMU 4.0 vor allem für die ARM-Architektur, darunter viele zusätzliche ARM-Erweiterungen sowie neue Emulationen für Musca-und MPS2-Boards. Virtuelle ARM-Boards lassen sich mit mehr als 255 GByte RAM definieren und AArch64-Prozessoren können Kernel von einer Startadresse jenseits der 4-GByte-Grenze laden.

Kernel lassen sich via U-Boot mit einem separaten U-Boot-Header (noload image) laden. Populäre ARM-Boards wie der Raspberry Pi 2/3 erhalten einen local timer; die Emulation des BBC micro:bit startet nun einfache MicroPython-Skripte, da die Geräteemulationen für Timer, GPIO, NVMC und RNG fertig sind. Wichtig für Entwickler von ARM-Hard- und Software ist die voranschreitende Emulation der ARM PMU (Performance Monitoring Unit).

Für der PowerPC-Emulation gibt es viele Verbesserungen für POWER9. Unter anderem bietet sie ein hotplugging für PCI Host Bridges (PHBs) und einen Schutz vor Spectre und Meltdown. Bei MIPS kann QEMU 4.0 zusätzlich mit den CPUs I7200 (nanoMIPS32) und I6500 (MIPS64R6) umgehen. In virtuellen Systemen der freie RISC-V-Plattform kann der Nutzer nun PCI- und USB-Geräte verwenden.

Für x86 gibt es gerade einmal vier Verbesserungen, darunter die Unterstützung von Intels HAX (Hardware Accelerated Execution) nicht nur für macOS, sondern nun auch für Linux und NetBSD. Intels Memory Protection Extensions (Intel MPX) sieht das QEMU-Team als fehlgeschlagenes Experiment an und hat es daher entfernt.

Auf Seite des Hosts unterstützt QEMU 4.0 PCIe 4.0 mit bis zu 16GT/s und 32 PCIe-Lanes. Virtuelle Treiber für Blockgeräte (virtio-blk) können nun DISCARD und WRITE_ZEROS nutzen und so von SSDs im Host-System profitieren.

Alle Änderungen, darunter Inkompatibilitäten zu Version 3.1, finden sich im Changelog auf qemu.org. Der Sourcecode von QEMU 4.0 liegt ebenfalls auf der Projektseite zum Download bereit. Zum Übersetzen ist mindestens GCC Version 4.8 oder Clang Version 3.4 nötig. (Michael Plura) / (fo)