Është prezantuar lëshimi i projektit QEMU 7.2. Si emulator, QEMU mundëson ekzekutimin e një programi të ndërtuar për një platformë harduware në një sistem me një arkitekturë të ndryshme, për shembull, të drejtojë një aplikacion për ARM në një PC të pajtueshëm me x86. Në modin e virtualizimit, performanca e ekzekutimit të kodit në një ambient të izoluar është afër sistemit harduerik falë ekzekutimit të drejtpërdrejtë të instruksioneve në CPU dhe angazhimit të hipervizorit Xen ose modulit KVM.
Fillimisht projekti u krijua nga Fabrice Bellard me qëllimin për të mundësuar ekzekutimin e skedave të ekzekutueshme Linux të ndërtuara për platformën x86 në arkitektura të ndryshme nga x86. Gjatë viteve të zhvillimit, është shtuar mbështetje për emulimin e plotë për 14 arkitektura harduerike, ndërsa numri i pajisjeve harduerike të emuluara e kalon 400. Gjatë përgatitjes së versionit 7.2 janë bërë më shumë se 1800 ndryshime nga 205 zhvillues.
Përmirësimet kryesore të shtuar në QEMU 7.2:
- Në emulatorin e arkitekturës x86, në gjeneratorin klasik të kodit TCG është shtuar mbështetje për instruksionet AVX, AVX2, F16C, FMA3 dhe VAES, si dhe është optimizuar performanca e lidhur me përdorimin e instruksioneve SSE. Për KVM është shtuar mbështetje për mekanizmin e ndjekjes së daljes nga makina virtuale (“notify vmexit”), i cili lejon shmangien e gabimeve në CPU që mund të shkaktojnë ngrirje.
- Në emulatorin ARM është implementuar mbështetje për CPU Cortex-A35 dhe zgjerimet e procesorit ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (menaxhimi harduerik i flagut të aksesit dhe gjendjes “dirty”) dhe E0PD (parandalimi i aksesit EL0 në hartat e ndara të adresave).
- Në emulatorin LoongArch është shtuar mbështetje për fw_cfg DMA, lidhjen e nxehtë të memories dhe emulimin e pajisjeve TPM (Trusted Platform Module).
- Në emulatorin e arkitekturës OpenRISC është implementuar platforma ‘virt’ për testimin e pajisjeve dhe për përdorim në sistemet e integrimit të vazhdueshëm. Është realizuar mbështetje për ekzekutimin me shumë thirje të gjeneratorit klasik të kodit TCG (Tiny Code Generator).
- Në emulatorin e arkitekturës RISC-V në makinat e emuluara ‘virt’ është implementuar mundësia e ngarkimit të firmware nga pflash në S-modus (S-mode). Është përmirësuar puna me pemën e pajisjeve.
- Në emulatorin e arkitekturës 390x është siguruar mbështetje për zgjerimin MSA5 (Message-Security-Assist Extension 5 me instruksionin PRNO për gjenerimin e numrave pseudo-rastësorë), instruksionet KIMD/KLM (implementimi i SHA-512) dhe interpretimin e avancuar të zPCI për sistemet nikoqire mbi hipervizorin KVM.
- Në backend-et për punën me memorje është siguruar alokimi paraprak i memories duke marrë parasysh arkitekturën NUMA.
- Është forcuar kontrolli i titujve të pajisjeve të bllokuar të enkriptuara LUKS, është shtuar mundësia e krijimit të imazheve LUKS në macOS.
- Në backend-in 9pfs, që lejon përdorimin e sistemit të skedarëve të Plan 9 për aksesin e një makine virtuale tek tjetra, është kaluar në përdorimin e hasharit GHashTable në tabelën e identifikuesve, që në disa situata ka çuar në përmirësimin e performancës nga 6-12 herë.
- Janë shtuar backend-et e rinj netdev stream dhe dgram.
- Në agjentin për sistemet nikoqire mbi arkitekturën ARM është shtuar mbështetje për FreeBSD.
- Në ndërtimet GUI për macOS është mundësuar përfshirja e interfecave bazuar në Cocoa dhe SDL/GTK në një skedar ekzekutues.
- Është hequr nënmoduli i ndërtuar ‘slirp’, për të cilin rekomandohet të përdoret biblioteka sistemike libslirp.
- Për shkak të mungesës së mundësisë për testim, është shpallur e tërhequr mbështetja për sistemet nikoqire me procesorë 32-bit MIPS, që përdorin rendin e bytes ‘Big endian’.
Burimi: opennet.ru
