A fost prezentată lansarea proiectului QEMU 10.0.0. Ca emulator, QEMU vă permite să rulați un program compilat pentru o platformă hardware pe un sistem cu o arhitectură complet diferită, de exemplu, să rulați o aplicație ARM pe un PC compatibil x86. În modul de virtualizare în QEMU, performanța execuției codului într-un mediu izolat este apropiată de sistemul hardware datorită execuției directe a instrucțiunilor pe CPU și utilizării hypervisorului Xen sau a modulului KVM în Linux, sau a modulului NVMM în NetBSD.
Proiectul a fost creat inițial de Fabrice Bellard pentru a oferi capacitatea de a rula executabile Linux compilate pentru platforma x86 pe arhitecturi non-x86. De-a lungul anilor de dezvoltare, a fost adăugat suport pentru emulare completă pentru 14 arhitecturi hardware, numărul de dispozitive hardware emulate a depășit 400. În pregătirea versiunii 10.0, au fost făcute peste 2800 de modificări de la 211 de dezvoltatori.
Îmbunătățiri cheie adăugate la QEMU 10.0:
- Driverul virtio-scsi oferă un controler SCSI virtual (adaptor SCSI Host Bus) pentru mașini virtualeA fost adăugat suport pentru un sistem de așteptare pe mai multe niveluri (multiqueue), permițând separarea cozilor pentru diferite dispozitive bloc pentru a susține accesul multi-threaded pe sisteme multi-core (cozi diferite pentru o singură unitate pot fi procesate de diferite thread-uri I/O). Comparativ cu driverul de dispozitiv bloc virtual (virtio-blk), controlerul SCSI virtual are performanțe puțin mai lente, dar permite utilizarea a mai mult de 28 de unități.
- VFIO (Virtual Function I/O) a îmbunătățit suportul passthrough IGD (Integrated Graphics Device) pentru GPU-urile integrate utilizate în procesoarele Intel din generația a 11-a (Rocket Lake) și a 12-a (Alder Lake). S-a adăugat suport pentru GPU-uri ATI mai vechi (x550). A fost implementat suport de bază pentru PCI PM (Managementul energiei).
- Documentația pentru QEMU Machine Protocol (QMP), care permite aplicațiilor să controleze QEMU, a fost revizuită și extinsă în mod semnificativ.
- S-a adăugat un nou mod de migrare live „cpr-transfer” (CheckPoint și Restart), permițând mutarea unui sistem invitat într-o nouă instanță QEMU care rulează pe aceeași gazdă. Modul minimizează timpul de suspendare prin maparea memoriei sistemului oaspete în spațiul de adrese virtuale al noului QEMU fără a copia conținutul.
- S-au adăugat dispozitive grafice „apple-gfx-pci” și „apple-gfx-mmio” care utilizează cadrul ParavirtualizedGraphics furnizat în macOS pentru grafica accelerată de hardware pentru oaspeți. Primul driver este destinat utilizării pe dispozitive x86-64, iar al doilea este destinat ARM64.
- Emulatorul de arhitectură x86 acceptă acum modelele de procesoare Intel Xeon Clearwater Forest și Sierra Forest v2. Emularea instrucțiunilor de manipulare a datelor șirurilor a fost accelerată.
- Emulatorul arhitecturii ARM acceptă acum plăcile de evaluare NPCM8445 și i.MX 8M Plus EVK. S-a adăugat emularea extensiilor FEAT_AFP, FEAT_RPRES și FEAT_XS, precum și a temporizatoarelor fizice și virtuale EL2. Suport depreciat pentru procesoarele Arm PXA2xx și emularea instrucțiunilor iwMMXt.
- Emulatorul arhitecturii RISC-V implementează emularea plăcilor Microblaze V, procesorului Ascalon și procesorului RV64 Xiangshan Nanhu. S-a adăugat suport pentru extensiile arhitecturii setului de comenzi „svukte”, „ssstateen”, „smrnmi”, „smdbltrp”/“ssdbltrp”, „supm”, „sspm”, precum și etichetele de traducere IOMMU și dispozitivele riscv-iommu-sys.
- Emulatorul de arhitectură HPPA oferă emularea plăcilor Diva GSP BMC. Firmware-ul SeaBIOS-hppa a fost actualizat la versiunea 18. Viteză de difuzare crescută. Cod îmbunătățit pentru resetarea procesorului virtual. Pe sistemele pe 64 de biți, este furnizată emularea configurațiilor cu dimensiuni de memorie de până la 256 GB.
- Emulatorul de arhitectură LoongArch acceptă acum conectarea la cald a procesorului. A fost implementat un IPI (întrerupere inter-procesor) paravirtualizat. A fost implementată urmărirea timeout-ului de alocare a resurselor hipervizorului. KVMS-a adăugat suport pentru rutarea virtuală a întreruperilor externe (extioi).
- Emulatorul de arhitectură s390x adaugă suport pentru a 17-a generație de procesoare mainframe și implementează suport virtio-mem. Pentru a îmbunătăți performanța, a fost adăugată capacitatea de a interacționa cu dispozitivele PCI care ocolesc IOMMU.
Sursa: opennet.ru
