Lëshimi i projektit QEMU 9.0 është paraqitur. Si një emulator, QEMU lejon 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ë ekzekutoni një aplikacion për ARM në një PC që është i pajtimshëm me x86. Në modin e virtualizimit, performanca e ekzekutimit të kodit në një mjedis të izoluar është afër sistemit hardueror falë ekzekutimit të drejtpërdrejtë të instruksioneve në CPU dhe përfshirjes së hipervizorëve si Xen ose modulit KVM në Linux, ose modulit NVMM në NetBSD.
Fillimisht, projekti u krijua nga Fabrice Bellard me qëllimin e mundësisë së ekzekutimit të skedarëve ekzekutivë të Linux, të ndërtuar për platformën x86, në arkitektura të ndryshme nga x86. Gjatë viteve të zhvillimit, u shtua mbështetje e plotë për 14 arkitektura harduerike, dhe numri i pajisjeve harduerike të emuluara kaloi 400. Në përgatitjen e versionit 9.0, u bënë më shumë se 2700 ndryshime nga 220 zhvillues.
Përmirësimet kryesore të shtyra në QEMU 9.0:
- Në drejtuesin virtio-blk, i cili ofron një pajisje virtuale të bllokut për makinave virtuale, u shtua mbështetje për sistemin e shumëfishtë të radhëve (multiqueue), që lejon ndarjen e radhëve për pajisje të ndryshme blloku për të siguruar qasje të shumëfishta në sisteme me shumë bërthama (radhë të ndryshme të një disku mund të përpunohen nga procese të ndryshme hyrje/daljeje).
- NĂ« pajisjen USB-storage Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r pronat âbackend_defaultsâ, âlogical_block_sizeâ, âphysical_block_sizeâ, âmin_io_sizeâ, âopt_io_sizeâ dhe âdiscard_granularityâ.
- Në bibliotekën gdbstub, e cila është e destinuar për debuggimin e largët në GDB duke përdorur protokollin RSP (Remote Serial Protocol), u shtua mbështetje për modin fork-follow, operacionin siginfo:read dhe kapjen e thirrjeve të sistemit në hapësirën e përdoruesit.
- Backend-et e paraprak të shpërndarjes së memories (preallocation) janë adapruar për të punuar në modin shumëprocesor dhe tani mund të përpunojnë kërkesat nga disa procese njëkohësisht.
- NĂ« mjetet pĂ«r migrimin e makina virtuale Ă«shtĂ« shtuar moda âmapped-ramâ, qĂ« rrit efikasitetin e krijimit tĂ« snapshoteve tĂ« makinave virtuale. ĂshtĂ« pĂ«rmirĂ«suar pĂ«rcaktimi i faqes sĂ« zeros sĂ« memories, duke lejuar qĂ« migrimi i makinave virtuale tĂ« pasive tĂ« shp braktisur ndjeshĂ«m kur sistemi mbĂ«shtet multifd. GjatĂ« migrimit tĂ« bazuar nĂ« VFIO (Virtual Function I/O) Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r rinisjen nga gjendja e ruajtur (checkpoint-restart).
- Implementimi i pajisjes ESP SCSI (am53c974/dc390) u riprogramua.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r algoritmin e enkriptimit SM4 dhe Ă«shtĂ« siguruar mundĂ«sia e pĂ«rdorimit tĂ« tij nĂ« drejtorin e pajisjes bllok âluksâ.
- NĂ« drejtorin âluksâ Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r krijimin dhe pĂ«rdorimin e skedarĂ«ve me tituj tĂ« ruajtur LUKS.
- Në emulatorin e arkitekturës ARM, u implementua mbështetje për pllakat L475E-IOT01A IoT, mp3-an536 (MPS3 me firmware AN536) dhe raspi4b (Raspberry Pi 4 Model B). U shtua mbështetje për emulimin e zgjerimeve të procesorëve ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) dhe NV2 (Enhanced Nested Virtualization). Mundësitë e emulatorëve të pllakatave Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx dhe virt u zgjeruan.
- Në emulatorin e arkitekturës RISC-V, u shtua mbështetje për zgjerimet e arkitekturës së grupit të komandave Zacas, amocas, RVA22, Zaamo, Zalrsc dhe Ztso. Në makinat virtuale RISC-V është siguruar mbështetje për SMBIOS. Për SRAT, SLIT, AIA dhe PLIC është implementuar mbështetje për ACPI. U përmirësua mbështetje për tabelat RHCT.
- NĂ« emulatorin e arkitekturĂ«s HPPA deri nĂ« versionin 16 Ă«shtĂ« pĂ«rditĂ«suar firmware SeaBIOS-hppa. Shuma maksimale e memories Ă«shtĂ« rritur nga 3 GB nĂ« 3840 MB. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r opsionin âânodefaultsâ.
- Në emulatorin e arkitekturës LoongArch, u implementua mbështetje për përshpejtimin KVM dhe u realizua mbështetje për zgjerimet vektorike të grupit të komandave LSX/LASX.
- Në emulatorin e arkitekturës s390x, u shtua mbështetje për instruksionet CVDG, CVB, CVBY dhe CVBG. U përmirësua emulimi LAE (Load Address Extended).
- Në emulatorin e arkitekturës 68k, u shtua pajisja nubus-virtio-mmio, e cila lejon aksesin në pajisjet virtio nga makinat q800.
- ĂshtĂ« siguruar ndĂ«rtimi me flagun â-fzero-call-used-regsâ, qĂ« lejon mbrojtjen nga rrjedhja e informacionit nga funksionet dhe redukton numrin e blloqeve, tĂ« cilat janĂ« tĂ« pĂ«rshtatshme pĂ«r ndĂ«rtimin e ROP-gadgjeteve (Return-Oriented Programming) nĂ« eksploit. Gjithashtu, Ă«shtĂ« shtuar ndĂ«rtimi me flagun â-ftrivial-auto-var-init=zeroâ pĂ«r inicializimin automatik me zero tĂ« tĂ« gjitha variablave tĂ« ruajtur nĂ« stack.
- Për ekzekutimin e QEMU me KVM tani kërkohet të paktën bërthama Linux 4.4. Për hostet ARM, në të ardhmen pritet që ky kufizim të rritet në versionin 4.19. U ndërpre mbështetje për përdorimin e Windows 32-bit si sistem operativ host.
- U shtua mbështetje për OpenBSD 7.4.
Burimi: opennet.ru
