Projektveröffentlichung . Als Emulator ermöglicht QEMU das AusfĂŒhren von Programmen, die fĂŒr eine Hardwareplattform kompiliert wurden, auf einem System mit völlig anderer Architektur, beispielsweise das AusfĂŒhren einer Anwendung fĂŒr ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU in einer isolierten Umgebung eine nahezu native CodeausfĂŒhrungsleistung durch direkte BefehlsausfĂŒhrung auf der CPU und die Nutzung des Hypervisors Xen oder des KVM-Moduls.
UrsprĂŒnglich wurde das Projekt von Fabrice Bellard ins Leben gerufen, um die AusfĂŒhrung von unter der x86-Plattform kompilierten Linux-Executables auf anderen Architekturen als x86 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 hat 400 ĂŒberschritten. Bei der Vorbereitung der Version 4.1 wurden ĂŒber 2000 Ănderungen von 276 Entwicklern vorgenommen.
Hauptmerkmale , hinzugefĂŒgt zu QEMU 4.1:
- Im x86-Emulator wurde die UnterstĂŒtzung fĂŒr die CPU-Modelle Hygon Dhyana und Intel SnowRidge hinzugefĂŒgt. Es wurde die Emulation der RDRAND-Erweiterung (Hardware-Pseudorandom Number Generator) hinzugefĂŒgt. Die Flags
md-clear und mds-no zur Steuerung des Schutzes vor Angriffe (Microarchitectural Data Sampling) auf Intel-Prozessoren hinzugefĂŒgt. Es wurde die Möglichkeit zur Bestimmung von Chip-Topologien ĂŒber das Flag â-smp âŠ,dies=â implementiert. Die Versionierung wurde fĂŒr alle x86-CPU-Modelle realisiert; - Der Blocktreiber SSH wurde von der Verwendung von auf ;
- Im virtio-gpu-Treiber (virtueller GPU, der im Rahmen des Projekts ) wurde die UnterstĂŒtzung fĂŒr das Auslagern von 2D/3D-Zeichnungsoperationen in einen externen vhost-user-Prozess (z. B. vhost-user-gpu) hinzugefĂŒgt;
- Im ARM-Emulator wurde die UnterstĂŒtzung fĂŒr die ARMv8.5-RNG-Erweiterung zur Generierung von Pseudorandomzahlen hinzugefĂŒgt. Die Emulation von FPU fĂŒr Cortex-M-Chips wurde implementiert, und Probleme mit der FPU-Emulation fĂŒr Cortex-R5F wurden behoben. Ein neues System zur Anpassung von Build-Optionen im Kconfig-Stil wurde vorgeschlagen. FĂŒr den SoC Exynos4210 wurde die UnterstĂŒtzung fĂŒr die DMA-Controller PL330 hinzugefĂŒgt;
- Im MIPS-Emulator wurde die UnterstĂŒtzung fĂŒr MSA ASE-Befehle bei Verwendung von Big-Endian-Bitfolge verbessert und die Behandlung von Divisionen durch Null wurde an die Referenzhardware angepasst. Die Leistung der Emulation von MSA-Befehlen fĂŒr ganzzahlige Berechnungen und Permutationsoperationen wurde erhöht;
- Im PowerPC-Emulator wurde die UnterstĂŒtzung fĂŒr das Durchreichen an die NVIDIA V100-/NVLink2-GPU mit Hilfe von VFIO hinzugefĂŒgt. FĂŒr pseries wurde eine Beschleunigung der Emulation des Interrupt-Controllers XIVE implementiert und die UnterstĂŒtzung fĂŒr das heiĂe AnschlieĂen von PCI-BrĂŒcken hinzugefĂŒgt. Optimierungen wurden in die Emulation von Vektorbefehlen (Altivec/VSX) integriert;
- Im RISC-V Architektur-Emulator wurde ein neues Hardwaremodell â âspikeâ â hinzugefĂŒgt. UnterstĂŒtzung fĂŒr ISA 1.11.0 hinzugefĂŒgt. Der 32-Bit ABI fĂŒr Systemaufrufe wurde verbessert, die Verarbeitung ungĂŒltiger Instruktionen wurde erweitert und der integrierte Debugger wurde optimiert. UnterstĂŒtzung fĂŒr CPU-Topologien im Device Tree hinzugefĂŒgt;
- Im s390 Architektur-Emulator wurde die UnterstĂŒtzung fĂŒr die Emulation aller vektorisierten Instruktionen der Gruppe âVector Facilityâ hinzugefĂŒgt und zusĂ€tzliche Elemente zur UnterstĂŒtzung von Gen15-Systemen hinzugefĂŒgt (einschlieĂlich UnterstĂŒtzung fĂŒr die AP Queue Interruption Facility fĂŒr vfio-ap). BIOS-UnterstĂŒtzung fĂŒr das Booten von ECKD DASD, das mit dem Gast-System ĂŒber vfio-ccw verbunden ist, wurde implementiert;
- Im SPARC-Emulator fĂŒr sun4m-Systeme wurden Probleme mit der Verwendung des Flags â-vga noneâ fĂŒr OpenBIOS behoben;
- Im Emulator fĂŒr die Tensilica Xtensa-Prozessorfamilie wurden Optionen fĂŒr die MPU (Memory Protection Unit) und exklusiven Zugriff implementiert;
- Dem Befehl âqemu-img convertâ wurde die Option ââsalvageâ hinzugefĂŒgt, um die Fehlermeldungen beim Starten des Konvertierungsprozesses im Falle von Ein-/Ausgabefehlern abzuschalten (z. B. kann sie zur Wiederherstellung teilweise beschĂ€digter qcow2-Dateien verwendet werden). Im Befehl
âqemu-img rebaseâ wurde die FunktionalitĂ€t gewĂ€hrleistet, wenn fĂŒr die Eingabedatei noch keine Basiseinheit (Backing-File) vorhanden ist; - Die Möglichkeit, Ausgaben umzuleiten, die mit der Technologie âSemihostingâ organisiert wurden (erlaubt dem emulierten GerĂ€t, stdout, stderr und stdin zu verwenden, um Dateien auf der Host-Seite zu erstellen), wurde dem Chardev-Backend hinzugefĂŒgt (â-semihosting-config enable=on,target=native,chardev=[ID]â);
- Im VMDK-Blocktreiber wurde die UnterstĂŒtzung fĂŒr das Subformat seSparse im Nur-Lese-Modus hinzugefĂŒgt;
- Im GPIO-Emulationstreiber wurde die UnterstĂŒtzung fĂŒr den GPIO-Controller SiFive hinzugefĂŒgt.
Quelle: opennet.ru
