lëshimi i projektit . Si një emulator, QEMU lejon që të ekzekutohet një program i ndërtuar për një platformë harduerike në një sistem me një arkitekturë krejtësisht tjetër, për shembull, të ekzekutohet një aplikacion për ARM në një PC të pajtueshëm me x86. Në modin e virtualizimit, performanca e ekzekutimit të kodit në një mjedis të izoluar është afërsisht e ngjashme me sistemin vendor për shkak të ekzekutimit të drejtpërdrejtë të instruksioneve në CPU dhe përfshirjes së hipervizorit Xen ose modulit KVM.
Fillimi i projektit u bë nga Fabrice Bellard me qëllimin për të lejuar ekzekutimin e skedarëve të Linux të ndërtuar për platformën x86 në arkitektura të tjera përveç x86. Gjatë viteve të zhvillimit është shtuar përkrahja për simulim të plotë për 14 arkitektura hardueri, numri i pajisjeve të simuluara ka kaluar 400. Në përgatitje për versionin 4.0 janë bërë më shumë se 3100 ndryshime nga 220 zhvillues.
Karakteristikat kryesore , të shtuar në QEMU 4.0:
- Në emulimin e arkitekturës ARM është shtuar përkrahja për zgjerimet e instrukcioneve ARMv8+: SB, PredInv, HPD, LOR, FHM, AA32HPD,
PAuth, JSConv, CondM, FRINT dhe BTI. Shtuar përkrahja për emulimin e kartave 'Musca' dhe 'MPS2'. Përmirësuar emulimi i ARM PMU (Njësia e Menaxhimit të Energjisë). Në platformë është shtuar mundësia e përdorimit të më shumë se 255 GB RAM dhe përkrahja për imazhet e u-boot me tipin 'noload'; - Në emulimin e arkitekturës x86 në motorin e përshpejtimit të virtualizimit (Intel Hardware Accelerated Execution) është shtuar përkrahja për hostet e përputhshme me POSIX, si Linux dhe NetBSD (më parë mbështetej vetëm platforma Darwin). Në emulimin e çipsetit Q35 (ICH9) për portat kryesore PCIe tani mund të shpallet opsional shpejtësia maksimale (16GT/s) dhe numri i linjave të lidhjes (x32), të përcaktuara në specifikimin PCIe 4.0 (për të siguruar përputhshmëri, përveç që për llojet e vjetra të makinave QEMU caktohet 2.5GT/s dhe x1). Siguruar mundësia e ngarkimit të imazheve Xen PVH me opsionin '-kernel';
- Në emulimin e arkitekturës MIPS është shtuar përkrahja për emulimin me shumë bërthama duke përdorur gjeneratorin klasike të kodit TCG (Tiny Code Generator). Po ashtu është shtuar përkrahja për emulimin e CPU I7200 (nanoMIPS32 ISA) dhe I6500 (MIPS64R6 ISA), mundësia e përpunimit të kërkesave të tipit CPU duke përdorur protokollin QMP (Protokolli i Menaxhimit të QEMU), është shtuar përkrahja për regjistrat konfiguruese SAARI dhe SAAR. Përmirësuar funksionimi i makinave virtuale me tipin Fulong 2E. Rëndomuar implementimi i Njësisë së Komunikimit Ndërmjet Thread-eve;
- Në emulimin e arkitekturës PowerPC është shtuar përkrahja për emulimin e kontrollorit të ndërprerjeve XIVE, është zgjeruar mbështetja për POWER9, për serinë P është shtuar mundësia e lidhjes së nxehtë të urave kryesore PCI (PHB, PCI host bridge). Aktivizuar për mbrojtje nga sulmet Spectre dhe Meltdown si default;
- Në emulimin e arkitekturës RISC-V është shtuar përkrahja për emulimin e PCI dhe USB. Në serverin e integruar të debugimit (gdbserver) është implementuar mbështetje për përcaktimin e listave të regjistrave në skedarët XML. Shtuar përkrahja për fushat mstatus TSR, TW dhe TVM;
- Në emulatorin e arkitekturës s390 është shtuar mbështetja për modelin e CPU z14 GA 2, si dhe mbështetje për emulimin e zgjerimeve të instrukcioneve për llogaritjet me pikë fluturuese dhe operacioneve vektoriale. Në vfio-ap është shtuar mundësia e lidhjes së nxehtë të pajisjeve;
- Në emulatorin e procesorëve të familjes Tensilica Xtensa është përmirësuar mbështetja SMP për Linux dhe është shtuar mbështetje për zgjerimin FLIX (Flexible length instructions extension);
- NĂ« ndĂ«rfaqen grafike Ă«shtĂ« shtuar opsioni â-display spice-appâ pĂ«r konfigurimin dhe nisjen e variantit tĂ« klientit tĂ« qasjes tĂ« largĂ«t Spice me njĂ« dizajn tĂ« ngjashĂ«m me ndĂ«rfaqen GTK tĂ« QEMU;
- Në realizimin e serverit VNC është shtuar mbështetje për menaxhimin e aksesit përmes opsioneve tls-authz/sasl-authz;
- Në QMP (QEMU Management Protocol) është shtuar mbështetje për ekzekutimin e komandeve centralizuar/ekstern (Out-of-band) dhe janë realizuar komanda shtesë për punën me pajisjet bllokuese;
- Në VFIO është shtuar realizimi i ndërfaqes EDID për mdev të mbështetur (Intel vGPU), i cili lejon ndryshimin e rezolutës së ekranit duke përdorur opsionet xres dhe yres;
- PĂ«r Xen Ă«shtĂ« shtuar pajisja e re âxen-diskâ, e cila mund tĂ« krijojĂ« vetĂ« njĂ« back-end disku pĂ«r Xen PV (pa iu drejtuar xenstore). ĂshtĂ« rritur performanca e back-end-it tĂ« diskut Xen PV dhe Ă«shtĂ« shtuar mundĂ«sia e ndryshimit tĂ« madhĂ«sisĂ« sĂ« diskut;
- NĂ« pajisjet bllokuese rrjetĂ«rore janĂ« zgjeruar mundĂ«sitĂ« e diagnostikimit dhe ndjekjes, Ă«shtĂ« pĂ«rmirĂ«suar pĂ«rputhshmĂ«ria e klientit me realizimet problematike tĂ« serverit NBD. NĂ« qemu-nbd janĂ« shtuar opsionet «âbitmap», «âlist» dhe «âtls-authz»;
- Në pajisjen e emuluar IDE/via është shtuar mbështetje për modin PCI IDE;
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rdorimin e algoritmit lzfse pĂ«r kompresimin e imazheve dmg. PĂ«r formatin qcow2 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r lidhjen e skedarĂ«ve tĂ« jashtĂ«m me tĂ« dhĂ«nat. Operacionet e shpĂ«rthimit tĂ« qcow2 janĂ« nxjerrĂ« nĂ« njĂ« rrjedh tĂ« veçantĂ«. NĂ« imazhet vmdk Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r operacionin «blockdev-create»;
- Në pajisjen bllokuese virtio-blk është shtuar mbështetje për operacionet DISCARD (njoftimi për lirimin e blloqeve) dhe WRITE_ZEROES (zerozimi i një vargu logjik blloqesh);
- Në pajisjen pvrdma është realizuar mbështetje për shërbimet RDMA Management Datagram (MAD);
- Janë bërë , që shkelin përshtatshmërinë prapa. Për shembull, në vend të opsionit «handle» në «-fsdev» dhe «-virtfs» duhen përdorur opsionet «local» ose «proxy». Janë fshirë opsionet «-virtioconsole» (e zëvendësuar me «-device virtconsole»), «-no-frame», «-clock», «-enable-hax» (e zëvendësuar me «-accel hax»). Pajisja «ivshmem» është fshirë (duhet përdorur «ivshmem-doorbell» ose «ivshmem-plain»). Ndihma për ndërtimin me SDL1.2 është ndalur (duhet përdorur SDL2).
Burimi: opennet.ru
