A fost lansată versiunea proiectului QEMU 7.0. Ca emulator, QEMU permite rularea unui program compilat 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 se apropie de cea a sistemului hardware, datorită executării directe a instrucțiunilor pe CPU și folosirii hypervisor-ului Xen sau a modulului KVM.
Proiectul a fost inițial creat de Fabrice Bellard cu scopul de a oferi posibilitatea de a rula fișiere executabile Linux compilate pentru platforma x86 pe arhitecturi diferite de x86. Pe parcursul anilor de dezvoltare, suportul complet pentru 14 arhitecturi hardware a fost adăugat, iar numărul dispozitivelor hardware emulate a depășit 400. În pregătirea versiunii 7.0 au fost realizate peste 2500 de modificări de către 225 de dezvoltatori.
Îmbunătățiri cheie adăugate în QEMU 7.0:
- Emulatorul arhitecturii x86 a adăugat suport pentru setul de instrucțiuni Intel AMX (Advanced Matrix Extensions), implementat în procesoarele server Intel Xeon Scalable. AMX oferă registre TMM „TILE” personalizabile și instrucțiuni pentru manipularea datelor în aceste registre, cum ar fi TMUL (Tile matrix MULtiply) pentru înmulțirea matricelor.
- A fost oferită posibilitatea de jurnalizare a evenimentelor ACPI din sistemul gazdă prin intermediul interfetei ACPI ERST.
- În modulul virtiofs, utilizat pentru a redirecționa o parte a sistemului de fișiere al mediului gazdă către sistemul gazdă, a fost îmbunătățit suportul pentru etichetele de securitate (security label). A fost remediată vulnerabilitatea CVE-2022-0358, care permitea creșterea privilegiilor în sistem prin crearea de fișiere executabile în directoarele redirecționate prin virtiofs, aparținând unei alte grupuri și având activat flag-ul SGID.
- A fost crescută flexibilitatea creării de copii de siguranță a imaginilor sistemelor active în funcțiune (se creează un snapshot, după care pentru actualizarea stării snapshot-ului se aplică un filtru copy-before-write (CBW), care copiază datele din zonele în care sistemul gazdă efectuează scrieri). A fost adăugat suport pentru imagini în formate diferite de qcow2. A fost asigurată posibilitatea de acces la snapshot-ul cu backup nu direct, ci prin intermediul driver-ului de dispozitive bloc snapshot-access. Funcționalitățile de gestionare a filtrului CBW au fost extinse, de exemplu, este posibil să se excludă din procesare anumite hărți bit cu bit.
- În emulatorul ARM pentru mașinile ‘virt’ a fost adăugată suport pentru virtio-mem-pci, definirea topologiei CPU pentru sistemul gazdă și activarea PAuth la utilizarea hipervizorului KVM cu acceleratorul hvf. În emulatorul plăcilor ‘xlnx-versal-virt’ a fost adăugat suport pentru PMC SLCR și simularea controlerului de memorie Flash OSPI. Pentru mașinile emulate ‘xlnx-zynqmp’ au fost adăugate noi modele de control pentru CRF și APU. A fost adăugată simularea extensiilor FEAT_LVA2, FEAT_LVA (Large Virtual Address space) și FEAT_LPA (Large Physical Address space).
- În generatorul de cod clasic TCG (Tiny Code Generator) a fost oprit suportul pentru gazde cu CPU ARMv4 și ARMv5, care nu au suport pentru acces nealiniat la memorie și memorie RAM insuficientă pentru a rula QEMU.
- În emulatorul arhitecturii RISC-V a fost adăugat suport pentru hipervizorul KVM și au fost implementate extensiile vectoriale Vector 1.0, precum și instrucțiunile Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx și zhinx{min}. Pentru mașinile emulate ‘spike’ a fost adăugată suport pentru încărcarea fișierelor binare OpenSBI (RISC-V Supervisor Binary Interface). Pentru mașinile emulate ‘virt’ a fost implementată posibilitatea utilizării până la 32 de nuclee de procesor și suport pentru AIA.
- În emulatorul arhitecturii HPPA a fost posibilă utilizarea până la 16 vCPU și a fost îmbunătățit driverul grafic pentru medii utilizator HP-UX VDE/DCE. A fost adăugată posibilitatea de a schimba ordinea de încărcare pentru dispozitivele SCSI.
- În emulatorul arhitecturii OpenRISC pentru plăcile ‘sim’ a fost adăugat suport pentru utilizarea până la 4 nuclee CPU, încărcarea unei imagini externe initrd și generarea automată a arborelui de dispozitive pentru nucleul încărcat.
- În emulatorul arhitecturii PowerPC pentru mașinile emulate ‘pseries’ a fost implementată posibilitatea de a rula sistemele gazdă sub un hipervizor încorporat KVM. A fost adăugat suport pentru dispozitivul spapr-nvdimm. Pentru mașinile emulate ‘powernv’ a fost adăugat suport pentru controlerul de întreruperi XIVE2 și controlerele PHB5, îmbunătățind suportul pentru XIVE și PHB 3/4.
- În emulatorul arhitecturii s390x a fost adăugat suport pentru extensiile z15 (Miscellaneous-Instruction-Extensions Facility 3).
Sursa: opennet.ro
