Schluss mit 32-Bit-x86-Hosts: QEMU 8.0.0 ist da

Mit Version 8.0.0 führt QEMU viele kleine, aber feine Änderungen ein. Vor allem aber streicht die freie Virtualisierungssoftware den 32-Bit-x86-Support.

In Pocket speichern vorlesen Druckansicht 40 Kommentare lesen

(Bild: iX)

Lesezeit: 5 Min.
Von
  • Michael Plura
Inhaltsverzeichnis

Die QEMU-Entwickler stellen Version 8.0.0 ihrer freien Virtualisierungssoftware vor. Die Neuerungen und Fixes sind überschaubar, dafür wurde einiges entfernt – beispielsweise die Möglichkeit, x86-Retro-Hardware als Host einzusetzen.

Es gab Zeiten, in denen man bei Software an einer neuen Versionsnummer erkennen konnte, dass es wesentliche Neuerungen gab. Wie viele andere Projekte schraubt auch QEMU die Hauptversionsnummern in einem festen Rhythmus nach oben, egal wie klein die Fortschritte bei den Funktionen sind. QEMU 8.0.0 suggeriert daher mehr, als der Sprung von Version 7.2.1 rechtfertigt – auch wenn nach eigenen Angaben mehr als 2800 Änderungen von 238 Entwicklern eingeflossen sind.

Herausragend ist hingegen vor allem, was es nicht mehr gibt. Beim Vorgänger, dem 7.x-Zweig, konnten Nutzer auch betagte x86-Systeme mit 32-Bit-CPUs einsetzen, um beispielsweise Retrosysteme von 68k über Alpha und MIPS bis hin zu SPARC zu emulieren. Das QEMU-Team hält nach eigener Aussage im Changelog "die Unterstützung von 32-Bit-x86-Hosts für die Systememulation nicht mehr für eine effektive Nutzung seiner begrenzten Ressourcen und beabsichtigt daher, diese einzustellen." Die begrenzten Ressourcen beziehen sich dabei offensichtlich nicht auf die 32-bittigen x86-Plattformen, sondern auf die Arbeitszeit der Entwickler. Wer also QEMU auf entsprechender Hardware nutzt, muss auf das Upgrade verzichten und bei 7.x bleiben – oder seine Projekte auf amd64-Hardware oder den Raspberry Pi migrieren.

Wie bei jedem Update von QEMU lohnt sich ein Blick in die ersten Absätze des Changelogs, denn dort beschreiben die Entwickler immer Änderungen bei den Parametern oder Funktionen, die weggefallen sind. Viele Probleme mit virtuellen Maschinen nach dem Upgrade lassen sich anhand dieser Informationen schnell beheben. Beispielsweise hat Intel sich von seiner Vision eines Hardware Accelerated Execution Manager (HAXM) verabschiedet, und so gibt es bei QEMU den Parameter -accel hax nicht mehr. Auch das manchmal eingesetzte -no-hpet und -no-acpi muss QEMU 8 nun als -M hpet=off und -M acpi=off übergeben werden.

Zwei Fixes für die 68k-Architektur, bei HPPA oder s390x, zeigen, dass es auch für diese Exoten noch Anwender und Entwickler-Ressourcen gibt. Deutlich mehr Neuerungen gibt es für ARM und vor allem für das aufstrebende RISC-V.

ARM-CPUs dürfen in der Emulation nun auch FEAT_EVT und FEAT_FGT benutzen, außerdem werden ARMv8-R unterstützt. Als neue CPU-Typen sind Cortex-A55 und Cortex-R52 hinzugekommen. Das Board Olimex STM32 H405 mit dem STM32F405RGT6-Mikrocontroller wird ab QEMU 8 als kompletter machine type angeboten.

Die mit Abstand meisten, wenn auch oft winzigen Neuerungen gibt es für RISC-V. QEMU 8 unterstützt eine Reihe neuer Erweiterungen wie smstateen, Zawrs, proprietäre T-Head-Erweiterungen, Svadu, Zicond und Zicbiom, ZCicboz und Zicbop. Betroffene Systementwickler werden wissen, was das ist, der normale Anwender freut sich vielleicht eher darüber, dass RISC-V nun auch ACPI unterstützt.

Die x86-Architektur bietet nun auch Intel Sapphire Rapids als CPU-Modell an. Spannender dürfte die Option sein, Xen-Gäste unter KVM zu starten, wenn sie mit dem Linux-Kernel 5.12 oder neuer laufen.

Es gibt Verbesserungen im Bereich USB für den Windows Guest Agent. Der qemu-guest-agent ist ein Helper-Daemon, der im Gastsystem installiert wird. Er dient dem Austausch von Informationen zwischen Host und Gast und dem Ausführen von Befehlen im Gast. In Proxmox VE beispielsweise wird qemu-guest-agent vor allem für zwei Dinge verwendet: Um den Gast ordnungsgemäß herunterzufahren, anstatt sich auf ACPI-Befehle oder Windows-Richtlinien zu verlassen, und zum Einfrieren des Gast-Dateisystems bei der Erstellung eines Backups – unter Windows wird der Volume Shadow Copy Service VSS verwendet, bei dem auch einige Probleme gelöst wurden. Erfreulich sind erste Versuche, auch für OpenBSD und NetBSD einen solchen Guest Agent zur Verfügung zu stellen.

Die neue ide-cf-Option erlaubt es, Gästen von QEMU 8 die Emulation eines CompactFlash-Karten-Blockgeräts zur Verfügung zu stellen. Einige Systeme verwenden mehr als die beim PC üblichen zwölf Funktionstasten und so unterstützt QEMU 8 nun auch F13 und F14.

Im Bereich der User-Mode-Emulation bringt das neue QEMU-8-Release genau eine einzige Neuerung: Für Xtensa-Prozessoren – ursprünglich von Tensilicia entwickelt, dann von Cadence übernommen – werden jetzt auch FDPIC-Programme und -Bibliotheken unterstützt. FDPIC ist ein alternatives ELF Binary Format.

Alle Änderungen und mögliche Inkompatibilitäten von QEMU 8.0.0 sind im Changelog dokumentiert. Eine Online-Doku und den aktuellen Quellcode stellen die Entwickler ebenfalls kostenlos auf der QEMU-Projektseite bereit.

(fo)