De release van het QEMU 11.0.0-project is gepresenteerd. Als emulator stelt QEMU in staat om programma's die zijn samengesteld voor één hardwareplatform uit te voeren op een systeem met een totaal andere architectuur, bijvoorbeeld het uitvoeren van een applicatie voor ARM op een op x86 gebaseerde pc. In de virtualisatiemodus is de uitvoering van code in een geïsoleerde omgeving met QEMU bijna gelijk aan die van de hardwarematige systemen, door directe uitvoering van instructies op de CPU en gebruik van de hypervisor Xen of de KVM-module in Linux, of de NVMM-module in NetBSD.
Het project werd oorspronkelijk opgericht door Fabrice Bellard met als doel de mogelijkheid te bieden om uitvoerbare bestanden die voor het x86-platform zijn samengesteld, te draaien op andere architecturen dan x86. In de loop der jaren is de ondersteuning voor volledige emulatie voor 14 hardwarearchitecturen en voor meer dan 400 geëmuleerde hardwareapparaten toegevoegd. Voor versie 11.0.0 zijn er meer dan 2500 wijzigingen door 237 ontwikkelaars aangebracht.
Belangrijke verbeteringen toegevoegd in QEMU 11.0:
- Ondersteuning voor 32-bits host-systemen is verwijderd, wat vorig jaar in april als verouderd werd verklaard in QEMU 10.0. In de december-uitgave 10.2 is de ondersteuning voor de mips32- en ppc32-platforms stopgezet in de TCG (Tiny Code Generator). In de QEMU 11.0-release zijn de resterende platforms i386, arm, ppc en riscv32 verwijderd, en is de codebasis en het bouwsysteem opgeschoond van componenten voor 32-bits hosts.
- Een virtualisatieversneller 'nitro' ('-accel nitro') en een nieuw type geëmuleerde systemen 'nitro' zijn geïmplementeerd, waarmee geïsoleerde enclaves op basis van AWS Nitro Enclave vertrouwelijke computing-technologie in QEMU kunnen draaien, bijvoorbeeld voor lokaal testen van Nitro Enclave-omgevingen in QEMU. In AWS EC2 maakt de Nitro Enclave-technologie het mogelijk om geneste, geïsoleerde enclaves uit te voeren in een virtuele machine voor het werken met vertrouwelijke gegevens, waarbij delen van zijn middelen aan hen worden toegewezen.
- De ondersteuning voor virtualisatieversnellers MSHV (Microsoft Hypervisor) en WHPX (Microsoft Windows Hypervisor Platform Extensions) is verbeterd.
- Bij gebruik van de KVM-hypervisor ('-accel kvm') is ondersteuning voor de virtualisatie van de Intel CET (Control-flow Enforcement Technology) uitbreiding geïmplementeerd voor gebruik in virtuele machines bescherming tegen exploits die gebruik maken van Return-Oriented Programming (ROP). Ook is ondersteuning toegevoegd voor het opnieuw opstarten van vertrouwelijke virtuele machines, die gebruik maken van AMD SEV-SNP (Secure Encrypted Virtualization - Secure Nested Paging) en Intel TDX (Trust Domain Extensions) voor geheugencryptie.
- In het VirtIO-GPU apparaat is de mogelijkheid toegevoegd om verschillende schermresoluties in te stellen voor verschillende uitvoerapparaten.
- In VirtIO-GPU is ondersteuning voor DRM-contexten (Direct Rendering Manager native context) toegevoegd, waardoor de prestaties van de virtuele GPU vanuit het gastensysteem worden verbeterd door directe opdrachtoverdracht naar de echte host-GPU. Ondersteuning voor DRM-contexten wordt ingeschakeld bij het gebruik van het nieuwe apparaat virtio-gpu-gl met de optie 'drm_native_context=on'. In tegenstelling tot Virgl- en Venus-contexten, die op het niveau van de OpenGL- en Vulkan-API werken, is de DRM-context geïmplementeerd op het niveau van UAPI van de Linux-kernel.
- De mogelijkheid om C++ te gebruiken voor het ontwikkelen van plug-ins voor de TCG (Tiny Code Generator) codegenerator is toegevoegd.
- In de blokdriver NFS is ondersteuning voor compilatie met de libnfs 6-bibliotheek toegevoegd.
- In de blokdriver curl is de optie 'force-range' toegevoegd om de HTTP-header 'Range' af te dwingen tijdens het downloaden van afbeeldingen zonder vooraf de ondersteuning ervan met een HEAD-verzoek te controleren.
- In de blokdriver FUSE is de verwerking van exportoperaties in synchrone modus uitgeschakeld, wat leidde tot het blokkeren van de opstart van de virtuele machine totdat andere FUSE-verzoeken waren verwerkt. De mogelijkheid om meerdere invoer-/uitvoerthreads (iothread) te gebruiken tijdens het uitvoeren van export naar FUSE is toegevoegd.
- In de x86-architectuur emulator is ondersteuning voor Intel Diamond Rapids CPU ('Xeon 7') toegevoegd.
- In de ARM-architectuur emulator zijn processoruitbreidingen FEAT_ASID2 en FEAT_E2H0 toegevoegd. In de TCG-codegenerator is emulatie van SME (Scalable Matrix Extension) uitbreidingen geïmplementeerd.
- In de HPPA-architectuur emulator is ondersteuning voor emulatie van 64-bits CPU's met 40- en 44-bits adresruimtes toegevoegd. Met behulp van SeaBIOS-hppa 24 is de initialisatie van de PCI-controller Astro mogelijk gemaakt, wat het gebruik van PCI-videokaarten op 64-bits systemen mogelijk maakt.
- In de LoongArch-architectuur emulator is de mogelijkheid van PMU (Performance Monitoring Unit) migratie toegevoegd bij het gebruik van de KVM-hypervisor. In de TCG-codegenerator is emulatie van LA v1.1, sc.q en llacq/screl uitbreidingen, evenals de instructies FRECIP en DRECIP voor het berekenen van inverse waarden, geïmplementeerd.
- In de PowerPC-architectuur emulator is ondersteuning voor snapshots toegevoegd.
- De RISC-V architectuur emulator ondersteunt de MIPS P8700 CPU en de extensies van de instructieset Zilsd, Zclsd, ZALASR en Smpmpmt.
- De s390 architectuur emulator heeft ondersteuning toegevoegd voor opstarten vanaf virtio-blk-pci apparaten en heeft de emulatie van de instructie 'DIVIDE TO INTEGER' geïmplementeerd.
- Er is een correctie aangenomen die de vertragingen bij het werken met fdmon (file descriptor monitoring) in de 'aio=io_uring' modus en wanneer het systeem in idle toestand verkeert, met 50-80 keer vermindert.
Bron: opennet.ru
