izdanje projekta . Kao emulatore, QEMU omogućava pokretanje programa koji su sastavljeni za jednu hardversku platformu na sistemu sa potpuno drugačijom arhitekturom, na primer, izvršavanje aplikacije za ARM na x86-kompatibilnom PC-u. U režimu virtualizacije, performanse izvršavanja koda u izolovanom okruženju su bliske onima na nativnom sistemu zahvaljujući direktnom izvršenju instrukcija na CPU-u i korišćenju hipervizora Xen ili KVM modula.
Prvobitno je projekat kreirao Fabrice Bellard s ciljem omogućavanja pokretanja izvršnih datoteka Linux-a koje su sastavljene za platformu x86 na arhitekturama koje se razlikuju od x86. Tokom godina razvoja dodana je podrška za potpunu emulaciju za 14 hardverskih arhitektura, a broj emuliranih hardverskih uređaja je prešao 400. U pripremi verzije 4.1 izvršeno je više od 2000 izmena od 276 programera.
Ključne , dodane u QEMU 4.1:
- U emulatoru arhitekture x86 dodana je podrška za modele CPU Hygon Dhyana i Intel SnowRidge. Dodato je emuliranje RDRAND proširenja (hardverski generator pseudonarandomenih brojeva). Dodani su zastavice
md-clear i mds-no za upravljanje zaštitom od napada (Microarchitectural Data Sampling) na Intel procesorima. Dodana je mogućnost definisanja topologija integrisanih kola pomoću zastavice „-smp …,dies=“. Implementirana je verzionisanje za sve modele CPU x86; - SSH blok drajver je prebačen sa korišćenja na ;
- U virtio-gpu drajveru (virtuelni GPU, razvijan u okviru projekta ) dodana je podrška za eksternu obradu 2D/3D renderovanja u spoljašnjem procesu vhost-user (na primer, vhost-user-gpu);
- U emulatoru arhitekture ARM dodana je podrška za ARMv8.5-RNG proširenje za generisanje pseudonarandomenih brojeva. Implementirana je podrška za emulaciju FPU za čipove iz Cortex-M porodice i rešeni su problemi sa emulacijom FPU za Cortex-R5F. Predložena je nova sistemska podešavanja opcija gradnje, u stilu Kconfig. Za SoC Exynos4210 dodana je podrška za PL330 DMA kontrolere;
- U emulatoru arhitekture MIPS poboljšana je podrška za MSA ASE instrukcije prilikom korišćenja big-endian rasporeda bajtova i usklađena sa referentnom opremom obrada slučajeva deljenja sa nulom. Povećane su performanse emulacije MSA instrukcija za celobrojne proračune i operacije razmeštanja.
- V emulatorju arhitekture PowerPC je bila dodana podpora za preusmeritev na GPU NVIDIA V100/NVLink2 z uporabo VFIO. Za pseries je bila implementirana pospešitev emulacije krmilnika prekinitev XIVE in dodana podpora za vroče priključitev PCI mostov. Izvedene so bile optimizacije emulacije vektorskih ukazov (Altivec/VSX);
- V emulatorju arhitekture RISC-V je bila dodana nova modelna oprema - "spike". Dodana je podpora za ISA 1.11.0. Izboljšan je bil 32-bitni ABI sistemskih klicev, razširjena je obdelava neveljavnih ukazov in izboljšan vgrajeni razh debugging. Dodana je podpora za topologijo CPU v drevesu naprav;
- V emulatorju arhitekture s390 je bila dodana podpora za emulacijo vseh vektorskih ukazov skupine „Vector Facility“ in dodani so dodatni elementi za podporo sistemom gen15 (vključno s podporo za AP Queue Interruption Facility za vfio-ap). Implementirana je podpora za BIOS za nalaganje z ECKD DASD, povezanega z gostiteljsko sistemom preko vfio-ccw;
- V emulatorju arhitekture SPARC za sisteme sun4m so bile rešene težave s uporabo parametra „-vga none“ za OpenBIOS;
- V emulatorju procesorjev družine Tensilica Xtensa so bile implementirane možnosti za MPU (enota zaščite pomnilnika) in ekskluzivni dostop;
- V ukazu „qemu-img convert“ je bila dodana možnost „—salvage“ za onemogočanje nujnega zaključka procesa pretvorbe slike v primeru napak vhod/izhod (na primer, lahko se uporablja za obnovo delno poškodovanihdatotek qcow2). V ukazu
„qemu-img rebase“ je zagotovljen delovanje, ko osnovne (backing) datoteke za vhodno datoteko še niso bile ustvarjene; - Dodana je možnost preusmeritve izhoda, organiziranega z uporabo tehnologije „semihosting“ (omogoča emuliranemu napravi uporabo stdout, stderr in stdin za ustvarjanje datotek na strani gostitelja), v backend chardev („-semihosting-config enable=on,target=native,chardev=[ID]“);
- V blokovnem gonilniku VMDK je bila dodana podpora za subformat seSparse v načinu samo za branje;
- V gonilniku emulacije GPIO je bila dodana podpora za GPIO krmilnik SiFive.
Izvor: opennet.ru
