Predstavljen je novi izdanja projekta QEMU 9.1. Kao emulator, QEMU omogućuje pokretanje programa koji su sastavljeni za jednu hardversku platformu na sustavu potpuno drugačije arhitekture, na primjer, izvršavanje aplikacije za ARM na x86-kompatibilnom PC-u. U načinu virtualizacije, izvedba koda u izoliranom okruženju u QEMU bliska je hardverskom sustavu zahvaljujući izravnom izvršavanju instrukcija na procesoru i korištenju hipervizora Xen ili KVM modula u Linuxu, ili NVMM modula u NetBSD-u.
Projekt je prvotno kreiran od strane Fabricea Bellarda s ciljem omogućavanja pokretanja izvršnih datoteka Linuxa sastavljenih za x86 platformu na arhitekturama koje se razlikuju od x86. Tijekom godina razvoja dodana je podrška za potpunu emulaciju za 14 hardverskih arhitektura, a broj emuliranih hardverskih uređaja premašio je 400. Prilikom pripreme verzije 9.1 implementirano je više od 2800 promjena od 263 programera.
Ključna poboljšanja dodana u QEMU 9.1:
- U alatu za migraciju gostujućih sustava implementirana je podrška za ubrzanje operacija kompresije podataka, koristeći tehnologiju IAA (Intel In-Memory Analytics Accelerator) ili UADK (User Space Accelerator Development Kit). Poboljšana je podrška za oporavak nakon neuspjelih migracija u postcopy načinu.
- U mehanizmu virtio, korištenom za organiziranje interakcije između gostujućih sustava i host sustava, dodana je podrška za funkciju VIRTIO_F_NOTIFICATION_DATA koja omogućuje drajverima na strani gostujućih sustava da prenose dodatne podatke zajedno sa poslanim obavijestima. Ova funkcija može se koristiti, na primjer, za slanje podataka za debagiranje ili za optimizaciju performansi.
- U guest-agentu za Linux sustave dodana je komanda guest-network-get-route, dok su za Windows sustave dodane komande guest-ssh-*. U sučelju naredbenog retka proširene su mogućnosti konfiguracije rada komandi "allowed" i "blocked".
- U emulatoru arhitekture ARM dodana je podrška za procesorske proširenja EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. Pri emulaciji bloka za upravljanje memorijom SMMUv3 (System Memory Management Unit) implementirana je podrška za ugniježdene i dvostruke razine stranica memorije. Za Xilinx Zynq ploče dodana je podrška za emulaciju višeprocesorskih konfiguracija, kontrolera za prikaz DM163 i kontrolera predmemorije.
- Emulator arhitekture LoongArch pruža mogućnost izravnog učitavanja slika jezgre u ELF formatu i dodaje podršku za pokretanje do 256 CPU-a, korištenjem proširenja extioi. Poboljšane su mogućnosti za otklanjanje grešaka.
- Emulator arhitekture RISC-V dodaje podršku za procesorska proširenja Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs i Smcntrpmf, kao i za verziju 1.13 specifikacije arhitekture privilegiranog skupa instrukcija. Poboljšane su mogućnosti za otklanjanje grešaka.
- Emulator arhitekture SPARC dodaje podršku za procesorska proširenja FMAF, IMA, VIS3 i VIS4.
- U emulatoru arhitekture x86 za hipervizor KVM implementirana je mogućnost pokretanja gostujućih sustava korištenjem procesorskog proširenja AMD SEV-SNP (Secure Nested Paging), koje osigurava sigurnu obradu s ugniježdenim tablicama stranica memorije. Implementirana je podrška za emulaciju CPU-a temeljenog na mikroarhitekturama Icelake-Server-v7, SapphireRapids-v3 i SierraForest.
- Uklonjena je ranjivost (CVE-2024-7409) u serveru blokovnim uređajima NBD (Network Block Device), koja omogućava manipulacijom u gostujućem sustavu uzrokovati iznenadni prekid rada QEMU-a tijekom izvođenja operacije nbd-server-stop, čak i ako klijent nema TLS ključeve za povezivanje s NBD serverom.
Izvor: opennet.ru
