Die Version 10.1.0 des QEMU-Projekts wurde veröffentlicht. Als Emulator ermöglicht QEMU das Ausführen von Programmen, die für eine bestimmte Hardwareplattform erstellt wurden, auf einem System mit einer völlig anderen Architektur, beispielsweise das Ausführen einer Anwendung für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU eine nahezu hardwareähnliche Leistung beim Ausführen von Code in einer isolierten Umgebung, indem es die Anweisungen direkt auf der CPU ausführt und den Hypervisor Xen oder das KVM-Modul in Linux oder das NVMM-Modul in NetBSD verwendet.
Das Projekt wurde ursprünglich von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform erstellten Executables unter anderen Architekturen als x86 zu ermöglichen. Im Laufe der Jahre wurde die Unterstützung für vollständige Emulation von 14 Hardwarearchitekturen hinzugefügt, und die Anzahl der emulierten Hardwaregeräte überstieg 400. Für die Version 11.0 wurden mehr als 2700 Änderungen von 226 Entwicklern vorgenommen.
Wichtige Verbesserungen in QEMU 10.1:
- In VFIO (Virtual Function I/O) wurde eine erste Unterstützung für das Speicher-Mapping in vertraulichen Gastumgebungen implementiert, in denen Speicherverschlüsselung zum Schutz vor Eingriffen und Analysen durch Administratoren des Host-Systems eingesetzt wird. Diese Änderung ermöglicht die Durchleitung von Geräten in Gast-Systeme, die durch Intel TDX (Trusted Domain Extensions) und AMD SEV-SNP (Secure Nested Paging) geschützt sind.
- Es wurde die Möglichkeit hinzugefügt, den multifd-Mechanismus zu verwenden, um die Live-Migration im Postcopy-Modus zu beschleunigen, bei dem zunächst auf den Ziel-Host übertragen und gestartet wird virtuelle Maschine, während der nicht benötigte Inhalt des Arbeitsspeichers allmählich übertragen wird. Der Live-Migrationsmodus Precopy wurde optimiert. Es wurde Unterstützung für die RDMA-Migration über IPv6 hinzugefügt.
- Im QEMU Guest Agent wurde der Befehl „guest-get-load“ hinzugefügt, um Informationen über die Systemauslastung (Load Average) in virtuellen Maschinen mit Windows zu erhalten.
- In virtio-gpu wurde die Unterstützung für die Platzhalter-Namensgebung in EDID (Extended Display Identification Data) hinzugefügt.
- Im x86-Architektur-Emulator wurde die Möglichkeit integriert, den Intel TDX (Trusted Domain Extensions) Mechanismus zur Verschlüsselung des Arbeitsspeichers von Gast-Systemen, die unter dem KVM-Hypervisor laufen, zu nutzen. Zudem wurde die Unterstützung für die Initialisierung von vertraulichen virtuellen Maschinen IGVM (Independent Guest Virtual Machine) hinzugefügt, wobei die Mechanismen Intel TDX und AMD SEV-SNP zum Einsatz kommen.
- Im ARM-Architektur-Emulator wurde die Unterstützung für Platinen (Analog Devices 'max78000fthr', 'ast2700fc', Meta 'catalina-bmc', NVIDIA 'gb200-bmc' und 'ast2700a0-evb') implementiert. Es wurde die Emulation der CPU-Erweiterungen FEAT_SME2, FEAT_SME2p1, FEAT_SME_B16B16, FEAT_SME_F16F16, FEAT_SVE_B16B16 und FEAT_SVE2p1 hinzugefügt. Auf der typischen ARM-Virtualisierungsplattform 'virt' wurde die Unterstützung für die nested Virtualisierung unter KVM sowie die Unterstützung für die CXL (Compute Express Link)-Busarchitektur und das Hot-Plugging von PCI-Geräten mithilfe von ACPI integriert.
- Im RISC-V-Architektur-Emulator wurde die Emulation des Kunminghu-Prozessors und der darauf basierenden Plattform implementiert. Zudem wurde die Unterstützung für die Befehlssatzerweiterung Ziccif mit der Implementierung einer atomar ausgeführten Fetch-Anweisung hinzugefügt.
- Im LoongArch-Architektur-Emulator wurde die Unterstützung für die Emulation eines Interrupt-Controllers (irqchip) auf der Kernel-Seite hinzugefügt.
- Experimentelle Unterstützung für die Kompilierung in das WebAssembly (WASM)-Format wurde hinzugefügt, unter Verwendung des Emscripten-Compilers.
- Die Unterstützung für Debian 11 in Host-Umgebungen wurde eingestellt.
Quelle: opennet.ru
