projektudgivelse . Som emulator tillader QEMU at køre et program, der er bygget til en hardwareplatform, på et system med en helt anden arkitektur, for eksempel at køre en applikation til ARM på en x86-kompatibel PC. I virtualiseringsmode er ydelsen af kodeudførelse i et isoleret miljø tæt på den nativ system ved direkte udførelse af instruktioner på CPU'en og ved brug af hypervisoren Xen eller KVM-modulet.
Oprindeligt blev projektet oprettet af Fabrice Bellard med det formål at give mulighed for at køre Linux-udførbare filer, der er bygget til x86-platformen, på arkitekturer, der adskiller sig fra x86. I årenes løb er der tilføjet support til fuld emulering for 14 hardware-arkitekturer, og antallet af emulerede hardware-enheder har oversteget 400. Forberedelsen af version 4.1 inkluderede mere end 2000 ændringer fra 276 udviklere.
Nøglepunkter , tilføjet i QEMU 4.1:
- I x86-arkitekturens emulator er der tilføjet support for CPU-modellerne Hygon Dhyana og Intel SnowRidge. Emuleringen af RDRAND-udvidelsen (hardware tilfældige talgenerator) er blevet tilføjet. Flags
md-clear og mds-no til kontrol af beskyttelse mod angreb (Microarchitectural Data Sampling) på Intel-processorer. Muligheden for at bestemme topologier for integrerede kredsløb er blevet implementeret ved hjælp af flaget "-smp ...,dies= ". Versionsstyring er implementeret for alle x86 CPU-modeller; - SSH-blokdriveren er blevet overført fra brugen af og få en fungerende kommando. ;
- I virtio-gpu-driveren (virtuel GPU, udviklet inden for projektet ) er der tilføjet support til at flytte 2D/3D rendering operationer til den eksterne proces vhost-user (for eksempel vhost-user-gpu);
- I ARM-arkitekturens emulator er der tilføjet support for ARMv8.5-RNG-udvidelsen til generering af pseudo-tilfældigt tal. Emuleringen af FPU for Cortex-M chipfamilien er blevet implementeret, og problemer med emuleringen af FPU for Cortex-R5F er blevet løst. En ny system til indstilling af byggeindstillinger er blevet foreslået i Kconfig-stil. For SoC Exynos4210 er der tilføjet support for PL330 DMA-controllere;
- I MIPS-arkitekturens emulator er understøttelsen af MSA ASE-instruktioner ved brug af big-endian byte rækkefølge forbedret, og håndteringen af divisions med nul er blevet harmoniseret med referencenhardware. Ydelsen af emuleringen af MSA-instruktioner til heltalsberegninger og permuteringsoperationer er blevet forbedret;
- I PowerPC-arkitekturens emulator er der tilføjet support til viderekobling til NVIDIA V100/NVLink2 GPU via VFIO. For pseries er der implementeret acceleration af emuleringen af XIVE-interruptkontroleren, og der er tilføjet support for varm tilslutning af PCI-broer. Der er foretaget optimeringer af emuleringen af vektor-instruktioner (Altivec/VSX);
- En RISC-V arkitektur emulator er der tilføjet en ny hardwaremodel - "spike". ISA 1.11.0 understøttelse er blevet tilføjet. Den 32-bit ABI for systemopkald er blevet forbedret, håndteringen af ugyldige instruktioner er udvidet, og den indbyggede debugger er forbedret. Understøttelse af CPU-topologi er blevet tilføjet til device tree;
- I s390 arkitektur emulatoren er der tilføjet støtte til emulering af alle vektorinstruktioner fra "Vector Facility"-gruppen, og der er tilføjet yderligere elementer til støtte for gen15-systemer (herunder støtte til AP Queue Interruption Facility for vfio-ap). BIOS-understøttelse til booting fra ECKD DASD, der er tilknyttet gæstesystemet via vfio-ccw, er blevet implementeret;
- I SPARC emulatoren for sun4m-systemer er der blevet løst problemer med brugen af flaget "-vga none" for OpenBIOS;
- Tensilica Xtensa processor familie emulatoren har implementeret muligheder for MPU (memory protection unit) og eksklusiv adgang;
- I "qemu-img convert"-kommandoen er der tilføjet en "—salvage" mulighed for at deaktivere den nødstop af konverteringsprocessen af billedet i tilfælde af I/O-fejl (for eksempel kan den bruges til at genoprette delvist beskadigede qcow2-filer). I kommandoen
"qemu-img rebase" er det sikret, at arbejdet fungerer, selv når der endnu ikke er oprettet en backing-fil til inddatafilen; - Muligheden for at omdirigere output, som er organiseret ved hjælp af "semihosting" teknologi (tillader den emulerede enhed at bruge stdout, stderr og stdin til at oprette filer på værtsiden), er blevet tilføjet til chardev-backend ("-semihosting-config enable=on,target=native,chardev=[ID]");
- I VMDK blokdriveren er der tilføjet støtte til seSparse-subformatet i skrivebeskyttet tilstand;
- I GPIO-emulatordriveren er der tilføjet støtte til SiFive GPIO-controlleren.
Kilde: opennet.ru
