Tutvustame QEMU 7.1 projekti väljaannet. QEMU emulaatorina võimaldab see käivitada ühe riistvaraplatvormi jaoks kompileeritud programme täiesti erineva arhitektuuriga süsteemis, näiteks käivitada ARM-i rakenduse x86 ühilduval PC-l. Virtuaalitamisel on QEMU koodi täitmise jõudlus isoleeritud keskkonnas lähedane riistvarasüsteemile, kuna see täidab käske otse CPU-l ja kasutab Xen hüperviisorit või KVM-i moodulit.
Projekt loodi esmakordselt Fabrice Bellardi poolt eesmärgiga võimaldada x86 platvormile kompileeritud Linuxi käivitatavate failide käivitamist arhitektuuridel, mis erinevad x86-st. Arenduse käigus on lisatud täielikku emulatsiooni toetust 14 riistvaraarhitektuurile, emuleeritud riistvaraseadmete arv ületab 400. Versiooni 7.1 ettevalmistamisel tehti üle 2800 muudatuse 238 arendajalt.
QEMU 7.1-sse lisatud peamised täiustused:
- Linuxi platvormil on rakendatud zero-copy-send valik, mis võimaldab organiseerida mälu lehekülgede edastamist live-migreerimise ajal ilma vahebufferita.
- QMP-s (QEMU Machine Protocol) on lisatud võimalus kasutada käsu block-export-add NBD piltide eksportimiseks teadmistega lehtede kohta 'dirty' olekus. Samuti on lisatud uued käsud 'query-stats' ja 'query-stats-schema', et küsida statistikat erinevatest QEMU alamsüsteemidest.
- Külgagentide süsteemide toetust Solaris platvormile on parendatud ja lisatud uued käsud 'guest-get-diskstats' ja 'guest-get-cpustats' diskide ja CPU oleku kuvamiseks. 'guest-get-disks' käsule on lisatud NVMe SMART teabe väljund ja 'guest-get-fsinfo' käsule andmed NVMe bussitüübi kohta.
- Uus LoongArch emulaator on lisatud, toetades 64-bitist LoongArch (LA64) käsu kogumi arhitektuuri varianti. Emulaator toetab Loongson 3 5000 protsessoreid ja Loongson 7A1000 põhijuge.
- ARM emulaatoris on rakendatud uusi emuleeritavaid masinaid: Aspeed AST1030 SoC, Qaulcomm ja AST2600/AST1030 (fby35). Lisatud on Cortex-A76 ja Neoverse-N1 CPU emulatsiooni tugi, samuti protsessorite laienduste SME (Skaleeritavad maatriksi laiendused), RAS (Usaldusväärsus, Saadavus, Hooldatavus) toetamine ja käsud, et blokeerida lekete tekkimist sise-Cache’is spetsiifiliste käskude täitmise ajal. 'virt' masinate jaoks on emuleeritud katkestuste kontroller GICv4.
- x86 arhitektuuri emulaatoris KVM lbr (Last Branch Record) jälgimise virtualiseerimise toega.
- HPPA arhitektuuri emulaatorisse on lisatud uus SeaBIOS v6 põhine püsivara, mis toetab PS/2 klaviatuuri kasutamist käivitamismenüüs. Parandatud on serial porti emuleerimist. Lisatud on täiendavad konsolide stiilid STI.
- MIPS arhitektuuri emulaatoris Nios2 platvormil (-machine 10m50-ghrd) on ellu viidud katkendite juhtimisüksuse (Vectored Interrupt Controller) ja varjatud registrite komplekti emuleerimine. Parandatud on erandeid käsitlevat töötlemist.
- OpenRISC arhitektuuri emulaatoris on ‘or1k-sim’ masinale lisatud tugi kuni 4 UART-seadmest 16550A.
- RISC-V arhitektuuri emulaatorisse on lisatud toe uutele käskude laienditele (ISA), nagu on määratletud spetsifikatsioonis 1.12.0, samuti on lisatud toe Sdtrig laiendile ja parendatud vektorite instruktsioonide toetust. Parendatud on silumise võimalusi. Emuleeritavale masinale ‘virt’ on lisatud TPM (Trusted Platform Module) toe ning masinale ‘OpenTitan’ - toe Ibex SPI.
- 390x arhitektuuri emulaatorisse on lisatud tugi VEF 2 (Vector-Enhancements Facility 2) laienditele. s390-ccw BIOS-is on ellu viidud tugi kettadelt käivitamiseks, mille sektorite suurus erineb 512 baitist.
- Xtensa arhitektuuri emulaatorisse on lisatud tugi lx106 tuumade ja objekti koodide jaoks, et katsetada vahemälu.
Allikas: opennet.ru
