Die Veröffentlichung von QEMU 10.0.0 wurde angekündigt. Als Emulator ermöglicht QEMU, Programme, die für eine bestimmte Hardware-Plattform entwickelt wurden, auf Systemen mit völlig anderer Architektur auszuführen, zum Beispiel Anwendungen für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht die Ausführung von Code in isolierten Umgebungen in QEMU eine Leistung, die der von Hardwaresystemen ähnelt, indem CPU-Anweisungen direkt ausgeführt und der Hypervisor Xen oder das KVM-Modul in Linux oder das NVMM-Modul in NetBSD verwendet werden.
Ursprünglich wurde das Projekt von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform kompilierten Linux-Executable-Dateien auf nicht-x86-Architekturen zu ermöglichen. Im Laufe der Entwicklung wurde die vollständige Emulation von 14 Hardware-Architekturen hinzugefügt, und die Zahl der emulierten Hardwaregeräte hat 400 überstiegen. Für die Version 10.0 wurden über 2800 Änderungen von 211 Entwicklern vorgenommen.
Wichtige Verbesserungen in QEMU 10.0:
- Im Virtio-Scsi-Treiber, der einen virtuellen SCSI-Controller (SCSI Host Bus Adapter) bereitstellt, für virtuellen Maschinen, es wurde Unterstützung für ein mehrstufiges Warteschlangen-System (Multiqueue) hinzugefügt, das es ermöglicht, Warteschlangen für verschiedene Blockgeräte zu trennen, um einen multithreaded Zugriff auf Mehrkernsystemen zu gewährleisten (verschiedene Warteschlangen eines Speichermediums können von unterschiedlichen Ein-/Ausgabeströmen verarbeitet werden). Im Vergleich zum Virtuellen Blockgerätetreiber (virtio-blk) schneidet der virtuelle SCSI-Controller in Bezug auf die Leistung etwas schlechter ab, ermöglicht jedoch die Verwendung von mehr als 28 Festplatten.
- Im VFIO (Virtual Function I/O) wurde die Unterstützung für die Weiterleitung von IGD (Integrated Graphics Device) für integrierte GPUs, die in den 11. (Rocket Lake) und 12. (Alder Lake) Generationen von Intel-Prozessoren verwendet werden, verbessert. Unterstützung für ältere ATI-GPUs (x550) wurde hinzugefügt. Grundlegende Unterstützung für PCI PM (Power Management) wurde implementiert.
- Die Dokumentation zum QMP (QEMU Machine Protocol) wurde erheblich überarbeitet und erweitert, was es Anwendungen ermöglicht, QEMU zu steuern.
- Ein neuer Live-Migrationsmodus "cpr-transfer" (CheckPoint und Restart) wurde hinzugefügt, der es ermöglicht, ein Gastbetriebssystem auf eine neue QEMU-Instanz zu verschieben, die auf demselben Host läuft. Dieser Modus minimiert die Ausfallzeit, indem der Speicher des Gastbetriebssystems im virtuellen Adressraum der neuen QEMU-Instanz gespiegelt wird, ohne den Inhalt zu kopieren.
- Grafikgeräte ‘apple-gfx-pci’ und ‘apple-gfx-mmio’ wurden hinzugefügt, die das in macOS bereitgestellte Framework ParavirtualizedGraphics nutzen, um die Grafikleistung von Gastbetriebssystemen zu beschleunigen. Der erste Treiber ist für den Einsatz auf x86-64-Geräten ausgelegt, der zweite für ARM64.
- Im x86-Architektur-Emulator wurde die Unterstützung für die Intel Xeon-Modelle Clearwater Forest und Sierra Forest v2 implementiert. Die Emulation von Instruktionen zur Datenmanipulation wurde beschleunigt.
- Im ARM-Architektur-Emulator wurde die Unterstützung der NPCM8445 Evaluation- und i.MX 8M Plus EVK-Platinen implementiert. Es wurden Emulationen der Erweiterungen FEAT_AFP, FEAT_RPRES und FEAT_XS sowie physische und virtuelle Timer für EL2 hinzugefügt. Die Unterstützung für die CPU Arm PXA2xx und die Emulation der iwMMXt-Instruktionen wurde als veraltet erklärt.
- Im RISC-V-Architektur-Emulator wurde die Emulation der Microblaze V-Plattformen, der CPU Ascalon und der CPU RV64 Xiangshan Nanhu implementiert. Unterstützung für die Erweiterungen des Befehlssatzarchitektur 'svukte', 'ssstateen', 'smrnmi', 'smdbltrp'/'ssdbltrp', 'supm', 'sspm' sowie für die IOMMU- und riscv-iommu-sys Geräte-Tags wurde hinzugefügt.
- Im HPPA-Architektur-Emulator wird die Emulation der Diva GSP BMC-Plattformen unterstützt. Die Firmware SeaBIOS-hppa wurde bis zur Version 18 aktualisiert. Die Geschwindigkeit der Emulation wurde verbessert. Der Code zum Zurücksetzen der virtuellen CPU wurde optimiert. Auf 64-Bit-Systemen wird die Emulation von Konfigurationen mit einem Speichervolumen von bis zu 256 GB bereitgestellt.
- Im LoongArch-Architektur-Emulator gibt es Unterstützung für das Hot-Plugging von CPUs. Ein paravirtualisierter IPI (inter-processor interrupt) wurde implementiert. Die Überwachung der Wartezeit zur Bereitstellung von Ressourcen durch den Hypervisor wurde gewährleistet. KVMEs wurde Unterstützung für die virtuelle Routenführung externer Interrupts (extioi) hinzugefügt.
- Im s390x-Architektur-Emulator wurde die Unterstützung für die 17. Generation von Mainframe-CPUs hinzugefügt, und die Unterstützung für virtio-mem wurde implementiert. Um die Leistung zu steigern, wurde die Möglichkeit der Interaktion mit PCI-Geräten ohne IOMMU hinzugefügt.
Quelle: opennet.ru
