Die Version QEMU 7.0 wurde vorgestellt. 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 ARM-Anwendung auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU eine nahezu hardwarenahe Ausführung von Code in einer isolierten Umgebung durch direkte CPI-Ausführung und die Nutzung des Hypervisors Xen oder des KVM-Moduls.
Das Projekt wurde ursprünglich von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform kompilierten Linux-Anwendungen auf anderen Architekturen zu ermöglichen. Im Laufe der Jahre wurde die Unterstützung für die vollständige Emulation von 14 Hardwarearchitekturen hinzugefügt, und die Anzahl der emulierten Hardwaregeräte überstieg 400. Für die Version 7.0 wurden mehr als 2500 Änderungen von 225 Entwicklern implementiert.
Wichtige Verbesserungen in QEMU 7.0:
- Im x86-Architektur-Emulator wurde die Unterstützung für den Intel AMX-Befehlssatz (Advanced Matrix Extensions), der in den Serverprozessoren Intel Xeon Scalable implementiert ist, hinzugefügt. AMX bietet neue konfigurierbare TMM-Register "TILE" und Anweisungen zur Manipulation von Daten in diesen Registern, wie z.B. TMUL (Tile Matrix MULtiply) zur Matrizenmultiplikation.
- Es wurde die Möglichkeit hinzugefügt, ACPI-Ereignisprotokolle von der Gastsystem über die ACPI ERST-Schnittstelle zu protokollieren.
- Im virtiofs-Modul, das verwendet wird, um einen Teil des Dateisystems der Hostumgebung in das Gastsystem weiterzuleiten, wurde die Unterstützung für Sicherheitslabels (Security Labels) verbessert. Die Schwachstelle CVE-2022-0358, die eine Eskalation der Berechtigungen im System durch die Erstellung von ausführbaren Dateien in über virtiofs weitergeleiteten Verzeichnissen, die einer anderen Gruppe gehören und mit dem SGID-Flag versehen sind, ermöglichte, wurde behoben.
- Die Flexibilität beim Backup von aktiven Systemabbildern wurde erhöht (ein Snapshot wird erstellt, anschließend wird ein Copy-Before-Write (CBW)-Filter angewendet, der Daten aus den Bereichen kopiert, in die das Gastbetriebssystem schreibt). Die Unterstützung für Abbildformate, die nicht qcow2 sind, wurde hinzugefügt. Der Zugriff auf den Snapshot mit Backup erfolgt nicht direkt, sondern über den Blockgerätetreiber snapshot-access. Die Verwaltung der CBW-Filterfunktionalität wurde erweitert, z.B. können bestimmte Bitmaps von der Verarbeitung ausgeschlossen werden.
- Im ARM-Emulator für 'virt'-Maschinen wurde die Unterstützung für virtio-mem-pci, die CPU-Topologie für die Gastmaschine sowie die Aktivierung von PAuth bei Verwendung des Hypervisors hinzugefügt. KVM Mit dem HVF-Beschleuniger. Im Emulator der 'xlnx-versal-virt'-Plattform wurde die Unterstützung für PMC SLCR und die Emulation des Flash-Speicherkontrollers OSPI hinzugefügt. Für die emulierten Maschinen 'xlnx-zynqmp' wurden neue Modelle zur Steuerung von CRF und APU hinzugefügt. Die Emulation der Erweiterungen FEAT_LVA2, FEAT_LVA (Large Virtual Address space) und FEAT_LPA (Large Physical Address space) wurde eingeführt.
- Im klassischen Code-Generator TCG (Tiny Code Generator) wurde die Unterstützung für Hosts mit ARMv4- und ARMv5-CPUs eingestellt, da diese keinen nicht ausgerichteten Speicherzugriff unterstützen und nicht genügend RAM für die Ausführung von QEMU bieten.
- Im RISC-V-Architektur-Emulator wurde die Unterstützung für den Hypervisor KVM hinzugefügt, sowie die Vektor-Erweiterungen Vector 1.0 und die Befehle Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx und zhinx{min}. Für die emulierten Maschinen 'spike' wurde die Unterstützung für das Laden von OpenSBI-Binärdateien (RISC-V Supervisor Binary Interface) implementiert. Für die emulierten Maschinen 'virt' wurde die Möglichkeit zur Nutzung von bis zu 32 Prozessorkernen und Unterstützung für AIA realisiert.
- Im HPPA-Architektur-Emulator besteht nun die Möglichkeit, bis zu 16 vCPUs zu verwenden, und der Grafiktreiber für die Benutzerumgebungen HP-UX VDE/CDE wurde verbessert. Zudem wurde die Möglichkeit zur Änderung der Boot-Reihenfolge für SCSI-Geräte hinzugefügt.
- Im OpenRISC-Architektur-Emulator für die 'sim'-Plattform wurde die Unterstützung für bis zu 4 CPU-Kerne, das Laden von externen initrd-Abbildern und die automatische Generierung des Device-Tree für den zu ladenden Kernel hinzugefügt.
- Im PowerPC-Architektur-Emulator für die emulierten Maschinen ‚pseries‘ wurde die Möglichkeit implementiert, Gast-Systeme unter einem eingebetteten Hypervisor KVM zu starten. Die Unterstützung für das Gerät spapr-nvdimm wurde hinzugefügt. Für die emulierten Maschinen ‚powernv‘ wurden die Unterstützung für den Interrupt-Controller XIVE2 sowie die Controller PHB5 integriert, und die Unterstützung für XIVE und PHB 3/4 wurde verbessert.
- Im s390x-Emulator wurde die Unterstützung für die z15-Erweiterungen (Miscellaneous-Instruction-Extensions Facility 3) hinzugefügt.
Quelle: opennet.ru
