Predstavljen je izid projekta QEMU 11.0.0. Kot emulator QEMU omogoča zagon programa, sestavljenega za eno strojno platformo, na sistemu z povsem drugačno arhitekturo, na primer, izvajanje aplikacije za ARM na x86-združljivem osebnem računalniku. V načinu virtualizacije QEMU zmogljivost izvajanja kode v izoliranem okolju je blizu strojni sistemski zmogljivosti zaradi neposrednega izvajanja ukazov na CPU in angažiranja hipervizorja Xen ali modula KVM v Linuxu, ali modula NVMM v NetBSD.
Projekt je prvotno ustvaril Fabrice Bellard z namenom omogočiti zagon izvršnih datotek Linux, zbranih za platformo x86, na arhitekturah, ki se razlikujejo od x86. Skozi leta razvoja je bila dodana podpora za popolno emulacijo za 14 strojnih arhitektur, število emuliranih strojnih naprav pa je preseglo 400. Pri pripravi različice 11.0.0 je bilo izvedenih več kot 2500 sprememb od 237 razvijalcev.
Ključne izboljšave, dodane v QEMU 11.0:
- Podpora za 32-bitne hlejenjske sisteme je bila odstranjena, kar je bilo razglašeno za zastarelo aprila lani v QEMU 10.0. V decembrskem izidu 10.2 je prenehala podpora za platforme mips32 in ppc32 v generatorju kode TCG (Tiny Code Generator), v izidu QEMU 11.0 pa so odstranjene preostale platforme i386, arm, ppc in riscv32, prav tako je bila izvedena čiščenja kode in zbiralne sistema od komponent za delo na 32-bitnih hlejenjskih sistemih.
- Uveden je pospeševalnik virtualizacije "nitro" ("-accel nitro") in nova vrsta emuliranih sistemov "nitro", ki omogoča zagon izoliranih enklav v QEMU, temelječih na tehnologiji zaupnih izračunov AWS Nitro Enclave, na primer, za lokalno testiranje QEMU okolij Nitro Enclave. V AWS EC2 tehnologija Nitro Enclave omogoča zagon v virtualnem stroju vgrajenih izoliranih enklav za delo s zaupnimi podatki, pri čemer jim dodeli del svojih virov.
- Izboljšana je podpora za pospeševalnike virtualizacije MSHV (Microsoft Hypervisor) in WHPX (Microsoft Windows Hypervisor Platform Extensions).
- Pri uporabi hipervizorja KVM ("-accel kvm") je na voljo podpora za virtualizacijo razširitev Intel CET (Control-flow Enforcement Technology) za uporabo v virtualnim mašinama zaščiti pred izkoriščanji, ki uporabljajo metode vračno usmerjenega programiranja (ROP — Return-Oriented Programming). Prav tako je dodana podpora za ponovni zagon zaupnih virtualnih naprav, ki uporablja AMD SEV-SNP (Secure Encrypted Virtualization — Secure Nested Paging) in Intel TDX (Trust Domain Extensions) za šifriranje pomnilnika.
- V napravo VirtIO-GPU, ki omogoča delovanje virtualnega GPU, je dodana možnost nastavitve različnih ločljivosti zaslona za različne izhodne naprave.
- VirtIO-GPU je dodal podporo za kontekste DRM (Direct Rendering Manager native context), ki omogočajo povečanje zmogljivosti dela z virtualnim GPU iz gostujočega sistema s pomočjo neposrednega prenosa ukazov na dejanski gostiteljski GPU. Podpora za DRM kontekste se aktivira ob uporabi nove naprave virtio-gpu-gl z možnostjo „drm_native_context=on“. V nasprotju z Virgl in Venus kontekstom, ki delujeta na nivoju API OpenGL in Vulkan, je DRM kontekst izveden na nivoju UAPI jedra Linux.
- Dodana je bila možnost uporabe jezika C++ za razvoj vtičnikov za generator kode TCG (Tiny Code Generator).
- Blokiranemu vmesniku NFS je bila dodana podpora za gradnjo z knjižnico libnfs 6.
- Blokiranemu vmesniku curl je bila dodana možnost „force-range“ za prisilno uporabo HTTP-oglasa „Range“ pri nalaganju slik brez predhodne preverjanja njegove podpore z ločenim zahtevkom z oglasom HEAD.
- V blokiranem vmesniku FUSE je bila onemogočena obdelava operacij izvoza v sinhronem načinu, ki je ovirala zagon virtualnega stroja do konca obdelave drugih FUSE zahtevkov. Dodana je možnost uporabe večih nitk vhod/izhod (iothread) pri izvajanju izvoza v FUSE.
- Emulator arhitekture x86 je pridobil podporo za procesor Intel Diamond Rapids („Xeon 7“).
- Emulator arhitekture ARM je dodal procesorske razširitve FEAT_ASID2 in FEAT_E2H0. V generatorju kode TCG je bila implementirana emulacija razširitev SME (Scalable Matrix Extension).
- Emulator arhitekture HPPA je dodal podporo za emulacijo 64-bitnih procesorjev s 40- in 44-bitnim naslovnim prostorom. Z uporabo SeaBIOS-hppa 24 je bila omogočena inicializacija PCI-nadzornika Astro, ki omogoča uporabo PCI-grafičnih kartic na 64-bitnih sistemih.
- V emulatorju arhitekture LoongArch je postala možna migracija PMU (Performance Monitoring Unit) pri uporabi hipervizorja KVM. V generatorju kode TCG je bila implementirana emulacija razširitev LA v1.1, sc.q in llacq/screl, pa tudi ukazov FRECIP in DRECIP za izračunavanje obratnih vrednosti.
- Emulator arhitekture PowerPC je pridobil podporo za zajemanje.
- V emulatorju arhitekture RISC-V je bila implementirana podpora za CPU MIPS P8700 in razširitve zbirke ukazov Zilsd, Zclsd, ZALASR in Smpmpmt.
- V emulatorju arhitekture s390 je bila dodana podpora za zagon z naprav virtio-blk-pci in implementirana emulacija ukaza 'DIVIDE TO INTEGER'.
- Sprejeta je bila popravka, ki v 50-80 krat zmanjša zakasnitev pri delu fdmon (monitoring datotečnih descriptorjev) v načinu 'aio=io_uring' in pri delovanju sistema v stanju mirovanja (idle).
Izvor: opennet.ru
