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.
Projektet blev oprindeligt oprettet af Fabrice Bellard for at muliggøre kørsel af Linux-udførelsesfiler samlet til x86-platformen på arkitekturer, der er forskellige fra x86. I løbet af udviklingen er der tilføjet support til fuld emulering for 14 hardwarearkitekturer, og antallet af emulerede hardwareenheder overstiger 400. I forberedelsen af version 5.0 blev der foretaget mere end 2800 ændringer af 232 udviklere.
Nøglepunkter , tilføjet i QEMU 5.0:
- Muligheden for at dirigere en del af værtsmiljøets filsystem ind i gæstesystemet ved hjælp af . Gæstesystemet kan montere et katalog, der er markeret til eksport på værtsystemets side, hvilket væsentligt forenkler organiseringen af delt adgang til kataloger i virtualiseringssystemer. I modsætning til brugen af netværks-FS som NFS og virtio-9P, gør virtiofs det muligt at opnå ydeevne, der ligner den lokale filsystens ydeevne;
- live-migrering af data fra eksterne processer, der bruger QEMU D-Bus-bussen;
- Muligheden for at bruge til at sikre drift af gæsternes hovedarbejdshukommelse. Backend angives med mulighed ‚-machine memory-backend‘;
- Ny filter ‚compress‘, der kan bruges til at oprette komprimerede sikkerhedskopier af billeder;
- Kommandoen ‚qemu-img measure‘ kan nu arbejde med LUKS-billeder, og kommandoen ‚qemu-img convert‘ har fået mulighederne ‚--target-is-zero‘ for at springe nulstillingen af målbilledet over;
- Eksperimentel support er tilføjet for qemu-storage-daemon-processen, som leverer adgang til QEMU’s blokniveau og QMP-kommandoer, herunder udførelse af arbejde med blokke og indbygget NBD-server uden behov for at starte en fuld virtuel maskine;
- Emulatoren for ARM-arkitekturen har fået mulighed for at emulere CPU Cortex-M7 og sikret support til tacoma-bmc, Netduino Plus 2 og Orangepi PC-platformer. Enhederne vTPM og virtio-iommu er blevet tilføjet til de emulerede ’virt’-maskiner. Muligheden for at bruge AArch32-værtsystemer til at køre KVM-gæstemiljøer er blevet erklæret forældet. Support til emulering af følgende arkitekturfunktioner er blevet implementeret:
- ARMv8.1: VHE, VMID16, PAN, PMU
- ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
- ARMv8.3: RCPC, CCIDX
- ARMv8.4: PMU, RCPC
- Emulatoren for HPPA-arkitekturen har fået tilføjet support til grafisk konsol ved brug af grafikapparatet HP Artist;
- Emulatoren for MIPS-arkitekturen har fået tilføjet support til instruktionen GINVT (Global Invalidation TLB);
- I emulators af PowerPC-arkitekturen for ‘powernv’-maskiner er der tilføjet emulering af hardwareaccelerationsmidlerne KVM til kørsel af gæstesystemer.
KVM med klassisk TCG (Tiny Code Generator) kodegenerator. Der er tilføjet støtte til filafspejlet NVDIMM for emulering af vedholdende hukommelse. For ‘pseries’-maskiner er det ikke længere nødvendigt at genstarte for at synkronisere arbejdet mellem XIVE/XICS-afbrydelseskontrollere i ‘ic-mode=dual’ tilstand; - I emulatoren for RISC-V-arkitekturen til ‘virt’- og ‘sifive_u’-plader er der implementeret støtte til standard syscon-drivere i Linux til strømstyring og genstart. For ‘virt’-pladen er der tilføjet støtte til Goldfish RTC. Der er tilføjet en eksperimentel implementering af hypervisorudvidelser;
- I emulatoren af s390-arkitekturen er der tilføjet støtte til AIS (Adapter Interrupt Suppression) ved drift i KVM-tilstand.
Kilde: opennet.ru
