Predstavljen je izdelek projekta QEMU 8.2. Kot emulator QEMU omogoča zagon programa, zbranega za eno strojno platformo, v sistemu z povsem drugo arhitekturo, na primer, izvajanje aplikacije za ARM na x86-združljivem računalniku. V načinu virtualizacije je učinkovitost izvajanja kode v izoliranem okolju blizu strojni izvedbi s pomočjo neposrednega izvajanja navodil na CPU-ju in angažiranjem hipervizorja Xen ali modula KVM.
Projekt je bil prvotno ustvarjen s strani Fabricea Bellarda z namenom omogočiti zagon zbranih izvršnih datotek Linux za platformo x86 na arhitekturah, ki so drugačne od x86. V letih razvoja je bila dodana podpora za popolno emulacijo za 14 strojnih arhitektur, število emuliranih strojnih naprav pa je preseglo 400. Ob pripravi različice 8.2 je bilo izvedenih več kot 3200 sprememb od 238 razvijalcev.
Ključne izboljšave, dodane v QEMU 8.2:
- Dodano je naprava virtio-sound, ki omogoča emulacijo zvočne kartice za snemanje in predvajanje zvoka v gostujočem sistemu s pomočjo zvočnega vtičnika (pulseaudio, sdl ali coreaudio), ki deluje na strani gostitelja. Za emulacijo zvočne naprave v jedru Linux za gostujoči sistem mora biti vključena možnost CONFIG_SND_VIRTIO.
- Dodano je virtualno grafično vmesnik (VGI, Virtual Graphics Interface) rutabaga z implementacijo virtualnega GPU (virtio-gpu), ki spominja na prej dostopni VirGL in prav tako omogoča uporabo v gostujočem sistemu virtualnega GPU za 3D-renderiranje, brez omogočanja ekskluzivnega neposrednega dostopa do fizičnega GPU. Koda rutabaga je bila razvita v okviru projekta Android/CrosVM in omogoča uporabo emulatorja platforme Android z običajnim QEMU.
- Dodano je naprava hv-balloon z izvedbo protokola dinamičnega upravljanja pomnilnika (Dynamic Memory) za Hyper-V, ki omogoča med delovanjem vračanje neizkoriščenih strani pomnilnika gostitelju in zahtevanje dodatnih v primeru pomanjkanja pomnilnika. Nova naprava se lahko obravnava kot alternativa virtio-balloon za gostujoče sisteme z Windows, ki uporablja na strani gostitelja vtičnik, ki podpira protokol Dynamic Memory.
- Predlagana je naprava Universal Flash Storage za emulacijo Flash-pomnilnika.
- V drajverju blokovnih naprav NBD (Network Block Device) je bila dodana podpora za razširitev protokola, ki uporablja 64-bitne zamike za izboljšanje zmogljivosti pri manipulaciji z velikimi podatki.
- V ukaz dump-guest-memory je bila dodana podpora za izhod v standardnem formatu kdump.
- Dodana je podpora za emulacijo UFS z novimi napravami ufs in ufs-lu.
- V VFIO (Virtual Function I/O) je bila dodana podpora za P2P način migracije in implementirana možnost dinamične dodelitve MSI-X. Priprave na prehod na nov b backend IOMMUFD so bile izvedene.
- V napravi virtio-mem je bila uvedena nastavitev „dynamic-memslots=on“ za dinamično dodelitev več pomnilniških slotov namesto statične razdelitve enega velikega slot. Uporaba načina omogoča zmanjšanje porabe pomnilnika na velikih napravah virtio-mem, ki dodelijo v VM majhno količino pomnilnika.
- V emulatorju arhitekture x86 je pri emulaciji okolja hipervizorja Xen na osnovi KVM zagotovljena podpora za PV konzolo in omrežne naprave, prav tako pa so bile poenostavljene ukaze za blokovne in omrežne naprave. V klasičnem generatorju kode TCG je bila dodana podpora za ukaze SHA.
- V emulatorju arhitekture ARM je bila izvedena emulacija CPU Cortex-A710 in Neoverse-N2. Dodana je podpora za procesorske razširitve PACQARMA3, EPAC, Pauth2, FPAC, FPACCOMBINE, TIDCP1, MOPS, HBC in HPMN0. Za ploščo Xilinx Versal je bila izvedena simulacija naprav CFU/CFI in TRNG.
- V emulatorju arhitekture RISC-V je bil implementiran sklop vektorskih kriptografskih ukazov. Dodana je podpora za virtualne IRQ in filtriranje IRQ. Stabilizirana je podpora za razširitve Zicond. Dodana je podpora za razširitve za virtualizacijo AIA (Advanced Interrupt Architecture) prek KVM.
- V emulatorju arhitekture HPPA je bila izvedena emulacija 64-bitnega CPU PA-RISC 2.0 in emulacija sistema C3700, vključno s krmilnikom pomnilnika Astro in PCI mostovi Elroy.
- V emulatorju arhitekture LoongArch je bila izvedena emulacija CPU Loongson LA132. Dodana je podpora za razširitev nabora ukazov LASX in ukaza PRELDX.
- V emulatorju arhitekture s390x je bila dodana podpora vfio-ap za preusmerjanje krmilnika crypto za zaščitene gostujoče sisteme.
- V emulatorju Tricore je bila dodana podpora za procesorje TC37x (ISA 1.6.2) in ukaze CRCN, FTOU, FTOHP, HPTOF.
Izvor: opennet.ru
