A fost lansată versiunea proiectului QEMU 8.2. Ca emulator, QEMU permite rularea unei aplicații compilate pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, rularea unei aplicații pentru ARM pe un PC compatibil x86. În modul de virtualizare, performanța execuției codului într-un mediu izolat este aproape de sistemul hardware datorită execuției directe a instrucțiunilor pe CPU și utilizării hypervisor-ului Xen sau modulului KVM.
Proiectul a fost inițial creat de Fabrice Bellard cu scopul de a permite rularea fișierelor executabile Linux compilate pentru platforma x86 pe arhitecturi diferite de x86. De-a lungul anilor de dezvoltare, a fost adăugată suport pentru emulare completă pentru 14 arhitecturi hardware, numărul dispozitivelor hardware emulate depășind 400. În prepararea versiunii 8.2, au fost aduse mai mult de 3200 de modificări de la 238 de dezvoltatori.
Îmbunătățirile cheie adăugate în QEMU 8.2:
- A fost adăugat dispozitivul virtio-sound, care permite emularea unei plăci de sunet pentru înregistrarea și redarea sunetului în sistemul gazdă prin intermediul unui backend de sunet (pulseaudio, sdl sau coreaudio), care funcționează pe partea sistemului gazdă. Pentru emularea dispozitivului audio în nucleul Linux pentru sistemul gazdă, opțiunea CONFIG_SND_VIRTIO trebuie activată.
- A fost adăugat un interfață grafic virtuală (VGI, Virtual Graphics Interface) rutabaga cu implementarea unui GPU virtual (virtio-gpu), similar cu VirGL disponibil anterior, care, de asemenea, permite utilizarea unui GPU virtual pentru randare 3D în sistemul gazdă, fără a necesita acces direct exclusiv la GPU-ul fizic. Codul rutabaga a fost dezvoltat în cadrul proiectului Android/CrosVM și permite utilizarea emulatorului platformei Android cu QEMU obișnuit.
- A fost adăugat dispozitivul hv-balloon cu implementarea protocolului de gestionare dinamică a memoriei (Dynamic Memory) pentru Hyper-V, care permite returnarea paginilor de memorie neutilizate sistemului gazdă în timpul execuției și solicitarea de memorie suplimentară în cazul unei lipsuri de memorie. Noua unitate poate fi considerată o alternativă la virtio-balloon pentru sistemele gazdă Windows, care utilizează un backend pe partea sistemului gazdă care suportă protocolul Dynamic Memory.
- A fost propus un dispozitiv Universal Flash Storage pentru emularea unui mediu de stocare Flash.
- În driverul dispozitivelor de bloc NBD (Network Block Device) a fost adăugată suportul pentru extensia protocolului care utilizează deplasamente de 64 de biți pentru manipularea datelor de mari dimensiuni, îmbunătățind astfel performanța.
- Comanda dump-guest-memory a fost actualizată pentru a ieși în formatul standard kdump.
- A fost adăugat suport pentru simularea UFS, utilizând noi dispozitive ufs și ufs-lu.
- În VFIO (Virtual Function I/O) a fost adăugat suportul pentru modul P2P de migrare și s-a implementat capacitatea de distribuire dinamică a MSI-X. S-au efectuat pregătiri pentru tranziția la noul backend IOMMUFD.
- Dispozitivul virtio-mem a implementat modul "dynamic-memslots=on" pentru alocarea dinamică a mai multor sloturi de memorie în loc de distribuirea statică a unui singur slot mare. Utilizarea acestui mod permite reducerea consumului de memorie pe dispozitivele mari virtio-mem care oferă o cantitate mică de memorie VM.
- În emulatorul arhitecturii x86, în timpul simulării mediului Hypervisor Xen bazat pe KVM s-a garantat suportul pentru consola PV și dispozitivele de rețea, iar comenzile pentru dispozitivele de bloc și rețea au fost simplificate. Generatorul de cod TCG clasic a avut suport adăugat pentru instrucțiunile SHA.
- În emulatorul arhitecturii ARM a fost implementată simularea CPU Cortex-A710 și Neoverse-N2. A fost adăugat suport pentru extensiile de procesor PACQARMA3, EPAC, Pauth2, FPAC, FPACCOMBINE, TIDCP1, MOPS, HBC și HPMN0. Pentru placa Xilinx Versal a fost realizată simularea dispozitivelor CFU/CFI și TRNG.
- În emulatorul arhitecturii RISC-V a fost implementat un set de instrucțiuni criptografice vectoriale. A fost adăugat suport pentru IRQ-uri virtuale și filtrarea IRQ-urilor. Suportul pentru extensiile Zicond a fost stabilizat. A fost adăugat suport pentru extensiile de virtualizare AIA (Advanced Interrupt Architecture) prin KVM.
- În emulatorul arhitecturii HPPA a fost asigurată simularea CPU-ului PA-RISC 2.0 de 64 de biți și simularea sistemului C3700, inclusiv controlerul de memorie Astro și punțile PCI Elroy.
- În emulatorul arhitecturii LoongArch a fost implementată simularea CPU-ului Loongson LA132. A fost adăugat suport pentru extensiile setului de instrucțiuni LASX și instrucțiunea PRELDX.
- În emulatorul arhitecturii s390x a fost adăugat suport vfio-ap pentru redirecționarea adaptorului crypto pentru sistemele de găzduire securizate.
- În emulatorul Tricore a fost adăugat suport pentru procesoarele TC37x (ISA 1.6.2) și instrucțiunile CRCN, FTOU, FTOHP, HPTOF.
Sursa: opennet.ro
