ĂshtĂ« publikuar versioni i ri i projektit QEMU 9.0. Si emulator, QEMU bĂ«n tĂ« mundur ekzekutimin e njĂ« programi tĂ« ndĂ«rtuar pĂ«r njĂ« platformĂ« harduerike nĂ« njĂ« sistem me arkitekturĂ« krejt tjetĂ«r, pĂ«r shembull nisjen e njĂ« aplikacioni pĂ«r ARM nĂ« njĂ« PC tĂ« pajtueshĂ«m me x86. NĂ« modalitetin e virtualizimit, QEMU ofron performancĂ« tĂ« ekzekutimit tĂ« kodit nĂ« njĂ« mjedis tĂ« izoluar pranĂ« asaj tĂ« njĂ« sistemi fizik falĂ« ekzekutimit tĂ« drejtpĂ«rdrejtĂ« tĂ« instruksioneve nĂ« CPU dhe pĂ«rdorimit tĂ« hypervisor-it Xen ose modulit KVM nĂ« Linux, apo modulit NVMM nĂ« NetBSD.
Fillimisht, projekti u krijua nga Fabrice Bellard me qëllim që të mundësonte ekzekutimin e skedarëve ekzekutues Linux të ndërtuar për platformën x86 në arkitektura të tjera përveç x86. Gjatë viteve të zhvillimit, u shtua mbështetja për emulim të plotë për 14 arkitektura harduerike dhe numri i pajisjeve harduerike të emuluara kaloi 400. Gjatë përgatitjes së versionit 9.0 janë bërë mbi 2700 ndryshime nga 220 zhvillues.
Përmirësimet kryesore të shtuara në QEMU 9.0:
- Në driver-in virtio-blk, i cili ofron një pajisje virtuale blloku për makinat virtuale, është shtuar mbështetja për një sistem radhësh me shumë nivele (multiqueue), që mundëson ndarjen e radhëve për pajisje të ndryshme blloku për të siguruar qasje shumërrjedhore në sisteme me shumë bërthama (radhë të ndryshme të të njëjtit disk mund të përpunohen nga rrjedha të ndryshme hyrje/dalje).
- 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 dedikuar për debugim në distancë në GDB duke përdorur protokollin RSP (Remote Serial Protocol), është shtuar mbështetja për modalitetin fork-follow, operacionin siginfo:read dhe kapjen e thirrjeve të sistemit në hapësirën e përdoruesit.
- Backend-et e paracakimit të memories (preallocation) janë përshtatur për punë në modalitet shumërrjedhor dhe tani mund të përpunojnë njëkohësisht kërkesa nga disa rrjedha. .
- NĂ« mjetet pĂ«r migrimin e makinave virtuale Ă«shtĂ« shtuar moda «mapped-ram», e cila rrit efikasitetin e krijimit tĂ« snapshot-eve tĂ« makinave virtuale. ĂshtĂ« pĂ«rmirĂ«suar identifikimi i faqes sĂ« zeros sĂ« memories, çka ka lejuar pĂ«rshpejtimin e migrimit tĂ« makinave virtuale pasive kur sistemi mbĂ«shtet multifd. NĂ« migrimin qĂ« bazohet nĂ« VFIO (Virtual Function I/O) Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r rifillimin nga gjendja e ruajtur (checkpoint-restart).
- ĂshtĂ« rishkruar implementimi i pajisjes ESP SCSI (am53c974/dc390).
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r algoritmin e enkriptimit SM4 dhe Ă«shtĂ« garantuar mundĂ«sia e pĂ«rdorimit tĂ« tij nĂ« driverin e pajisjes sĂ« bllokut âluksâ.
- NĂ« driverin âluksâ Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r krijimin dhe pĂ«rdorimin e skedareve me tituj tĂ« ruajtur LUKS.
- NĂ« emulatorin e arkitekturĂ«s ARM Ă«shtĂ« implementuar mbĂ«shtetja pĂ«r platformat L475E-IOT01A IoT, mp3-an536 (MPS3 me firmware AN536) dhe raspi4b (Raspberry Pi 4 Model B). ĂshtĂ« shtuar mbĂ«shtetja pĂ«r emulimin e zgjerimeve tĂ« procesorit ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) dhe NV2 (Enhanced Nested Virtualization). JanĂ« zgjeruar gjithashtu mundĂ«sitĂ« e emulatorĂ«ve tĂ« platformave Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx dhe virt.
- NĂ« emulatorin e arkitekturĂ«s RISC-V Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r zgjerimet e arkitekturĂ«s sĂ« grupit tĂ« instruksioneve Zacas, amocas, RVA22, Zaamo, Zalrsc dhe Ztso. NĂ« makina virtuale RISC-V Ă«shtĂ« siguruar mbĂ«shtetja pĂ«r SMBIOS. PĂ«r SRAT, SLIT, AIA dhe PLIC Ă«shtĂ« implementuar mbĂ«shtetja pĂ«r ACPI. ĂshtĂ« pĂ«rditĂ«suar mbĂ«shtetja pĂ«r tabelat RHCT.
- NĂ« emulatorin e arkitekturĂ«s HPPA deri nĂ« versionin 16 Ă«shtĂ« pĂ«rditĂ«suar firmware SeaBIOS-hppa. MadhĂ«sia 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 është shtuar mbështetja për përshpejtimin KVM dhe është implementuar mbështetja për zgjerimet vektoriale të grupit të instruksioneve LSX/LASX.
- NĂ« emulatorin e arkitekturĂ«s s390x Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r instruksionet CVDG, CVB, CVBY dhe CVBG. ĂshtĂ« pĂ«rmirĂ«suar emulimi i LAE (Load Address Extended).
- Në emulatorin e arkitekturës 68k është shtuar pajisja nubus-virtio-mmio, e cila mundëson qasjen te pajisjet virtio nga makinat q800.
- ĂshtĂ« siguruar ndĂ«rtimi me flamurin â-fzero-call-used-regsâ, qĂ« lejon mbrojtjen nga rrjedhjet e informacionit nga funksionet dhe zvogĂ«lon numrin e blloqeve tĂ« pĂ«rshtatshĂ«m pĂ«r ndĂ«rtimin e ROP-gadgĂ«ve (Return-Oriented Programming) nĂ« eksploitĂ«. Po ashtu, Ă«shtĂ« shtuar ndĂ«rtimi me flamurin â-ftrivial-auto-var-init=zeroâ pĂ«r inicializimin automatik nĂ« zero tĂ« tĂ« gjitha variablave qĂ« ruhen nĂ« stack.
- Për ekzekutimin e QEMU me KVM tani kërkohet të paktën kernel-i Linux 4.4. Për hostët ARM, në të ardhmen planifikohet që ky minimum të rritet në versionin 4.19. Mbështetja për përdorimin e Windows 32-bit si sistem operativ host është ndërprerë.
- ĂshtĂ« shtuar mbĂ«shtetja pĂ«r OpenBSD 7.4.
Burimi: opennet.ru
