Die Veröffentlichung von QEMU 7.1 wurde vorgestellt. Als Emulator ermöglicht QEMU die Ausführung von Programmen, die für eine bestimmte Hardware-Plattform kompiliert wurden, auf einem System mit einer völlig anderen Architektur, beispielsweise einer ARM-Anwendung auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU eine Codeausführungsleistung in einer isolierten Umgebung, die der einer physischen Maschine nahekommt, dank der direkten Ausführung von Anweisungen auf der CPU und der Nutzung des Xen-Hypervisors oder des KVM-Moduls.
Ursprünglich wurde das Projekt von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform kompilierten Linux-Binärdateien auf Architekturen zu ermöglichen, die nicht auf x86 basieren. Im Laufe der Jahre wurde die Unterstützung für die vollständige Emulation von 14 Hardware-Architekturen hinzugefügt, und die Anzahl der emulierten Hardwaregeräte überstieg 400. Für die Version 7.1 wurden über 2800 Änderungen von 238 Entwicklern vorgenommen.
Wesentliche Verbesserungen in QEMU 7.1:
- Auf der Linux-Plattform wurde die Option zero-copy-send implementiert, die eine Übertragung von Speicherseiten bei der Live-Migration ohne Zwischenpufferung ermöglicht.
- Im QMP (QEMU Machine Protocol) wurde die Möglichkeit hinzugefügt, den Befehl block-export-add zu verwenden, um NBD-Images mit Seiteninformationen im Zustand „dirty“ zu exportieren. Außerdem wurden die neuen Befehle ‘query-stats’ und ‘query-stats-schema’ hinzugefügt, um Statistiken aus verschiedenen QEMU-Subsystemen abzufragen.
- Im Agenten für Gastbetriebssysteme wurde die Unterstützung für die Solaris-Plattform verbessert, und es wurden neue Befehle ‘guest-get-diskstats’ und ‘guest-get-cpustats’ hinzugefügt, um den Zustand von Festplatten und CPU anzuzeigen. Der Befehl ‘guest-get-disks’ gibt jetzt Informationen aus NVMe SMART aus, und der Befehl ‘guest-get-fsinfo’ gibt Daten zum NVMe-Bustyp aus.
- Ein neuer LoongArch-Emulator mit Unterstützung für die 64-Bit-Variante des LoongArch-Befehlssatzes (LA64) wurde hinzugefügt. Der Emulator unterstützt die Loongson 3 5000 Prozessoren und die Northbridge Loongson 7A1000.
- Im ARM-Emulator wurden neue Typen von emulierten Maschinen implementiert: Aspeed AST1030 SoC, Qualcomm und AST2600 / AST1030 (fby35). Die Emulation der CPUs Cortex-A76 und Neoverse-N1 sowie von Prozesseerweiterungen wie SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) und Befehlen zur Verhinderung von Speicherlecks während der spekulativen Ausführung von Anweisungen auf der CPU wurde hinzugefügt. Für Maschinen vom Typ ‘virt’ wurde die Emulation des Interruptcontrollers GICv4 realisiert.
- Im x86-Architektur-Emulator für KVM wurde die Unterstützung für die Virtualisierung des LBR (Last Branch Record) Trace-Mechanismus hinzugefügt.
- Im HPPA-Architektur-Emulator wurde ein neues Firmware-Update auf Basis von SeaBIOS v6 eingeführt, das die Verwendung von PS/2-Tastaturen im Bootmenü unterstützt. Die Emulation des seriellen Ports wurde verbessert. Zusätzliche Konsolenschriften STI wurden hinzugefügt.
- Im MIPS-Architektur-Emulator für Nios2-Platinen (-machine 10m50-ghrd) wurde die Emulation des Vektorgesteuerten Interrupt-Controllers (Vectored Interrupt Controller) sowie des Shadow-Register-Satzes implementiert. Die Ausnahmebehandlung wurde verbessert.
- Im OpenRISC-Architektur-Emulator für die Maschine 'or1k-sim' wurde die Möglichkeit zur Nutzung von bis zu 4 UART-Geräten vom Typ 16550A hinzugefügt.
- Im RISC-V-Architektur-Emulator wurde die Unterstützung neuer Befehlssatzerweiterungen (ISA), die in der Spezifikation 1.12.0 definiert sind, hinzugefügt. Zudem wurde die Unterstützung für die Sdtrig-Erweiterung und die vektorisierten Anweisungen verbessert. Die Debugging-Funktionen wurden erweitert. Der emulierten Maschine 'virt' wurde die Unterstützung für TPM (Trusted Platform Module) hinzugefügt, während für die Maschine 'OpenTitan' die Unterstützung für Ibex SPI integriert wurde.
- Im 390x-Architektur-Emulator wird die Unterstützung für die VEF 2 (Vector-Enhancements Facility 2) Erweiterungen bereitgestellt. Im s390-ccw BIOS wurde die Möglichkeit implementiert, von Festplatten mit einer anderen Sektorgröße als 512 Byte zu booten.
- Im Xtensa Architektur-Emulator wurde Unterstützung für die lx106 Kerne und Objektcode zum Testen des Caches hinzugefügt.
Quelle: opennet.ru
