Lansohet versioni i projektit QEMU 6.0. Si emulator, QEMU lejon që të ekzekutoni një program të ndërtuar për një platformë harduerike, në një sistem me një arkitekturë krejtësisht të ndryshme, për shembull, të ekzekutoni një aplikacion për ARM në një PC të pajtueshëm me x86. Në modalitetin e virtualizimit në QEMU, performanca e ekzekutimit të kodit në një mjedis të izoluar është e afërt me sistemin hardueror për shkak të ekzekutimit të drejtpërdrejtë të instrukcioneve në CPU dhe angazhimit të hipervizorit Xen ose modulit KVM.
Fillimisht projekti u krijua nga Fabrice Bellard me qëllimin e mundësimit të ekzekutimit të skedarëve ekzekutivë të ndërtuar për platformën x86 në arkitektura të ndryshme nga x86. Gjatë viteve të zhvillimit, u shtua mbështetje për emulimin e plotë të 14 arkitekturave harduerike dhe numri i pajisjeve harduerike të emuluara kaloi 400. Në përgatitje për versionin 6.0, u bënë më shumë se 3300 ndryshime nga 268 zhvillues.
Përmirësimet kyçe të shtuar në QEMU 6.0:
- Emulatori i kontrollorëve NVMe është përshtatur me specifikimin NVMe 1.4 dhe është furnizuar me mbështetje eksperimentale për hapësira të zonuara emrash, multipath I/O dhe përkrhejje të të dhënave të koduara në disk.
- Shtohen opsionet eksperimentale "-machine x-remote" dhe "-device x-pci-proxy-dev" për të nxjerrë emulimin e pajisjeve në procese të jashtme. Në këtë modalitet aktualisht mbështetet vetëm emulimi i adaptorit SCSI lsi53c895.
- Shtohet mbështetje eksperimentale për krijimin e snapshots të përmbajtjes së RAM-it.
- Shtohet moduli FUSE pĂ«r eksportimin e pajisjeve bllokuese, i cili lejon ngjitjen e njĂ« pĂ«rmendjeje tĂ« gjendjes sĂ« çdo pajisjeje bllokuese qĂ« pĂ«rdoret nĂ« sistemin mikpritĂ«s. Eksporti realizohet pĂ«rmes komandĂ«s QMP block-export-add ose pĂ«rmes opsionit "âexport" nĂ« utilitarin qemu-storage-daemon.
- Në emulatorin ARM është shtuar mbështetje për arkitekturën ARMv8.1-M 'Helium' dhe procesorët Cortex-M55, si dhe për instruksionet e avancuara ARMv8.4 TTST, SEL2 dhe DIT. Shtohet mbështetje për platformat ARM mps3-an524 dhe mps3-an547. Gjithashtu, për platformat xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx dhe sabrelite është realizuar emulimi shtesë i pajisjeve.
- Për ARM në modet e emulimit në nivelin e sistemit dhe ambientin e përdoruesit, është implementuar mbështetje për zgjerimin ARMv8.5 MTE (MemTag, Zgjatja e Etiketimit të Memories), e cila lejon lidhjen e etiketave me çdo operacion të alokimit të memories dhe organizimin e një kontrolli të treguesit gjatë aksesit në memorie, i cili duhet të lidhet me etiketën e saktë. Ky zgjerim mund të përdoret për të parandaluar shfrytëzimin e dobësive që ndodhin për shkak të qasjes në blloqe memories që janë çliruar tashmë, mbipopullimeve të tamponëve, qasjes përpara inicializimit dhe përdorimit jashtë kontekstit aktual.
- Në emuluesin e arkitekturës 68k është shtuar mbështetje për një lloj të ri makinash të emuluara 'virt', që përdorin për optimizimin e performancës pajisjen virtio.
- Në emuluesin e arkitekturës x86 është shtuar mundësia e aplikimit të teknologjisë AMD SEV-ES (Virtualizimi i Sigurt të Kriptuar) për kriptimin e regjistrave të procesorit të përdorur në sistemin mik, që e bën përmbajtjen e regjistrave të paprekshme për ambientin host, nëse sistemi mik nuk ofron qasje të qartë në to.
- NĂ« gjeneratorin klasik tĂ« kodit TCG (Tiny Code Generator) gjatĂ« emulimit tĂ« sistemeve x86 Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r mekanizmin PKS (ĂelĂ«sat e Mbrojtjes tĂ« Supervisorit), i cili mund tĂ« pĂ«rdoret pĂ«r mbrojtjen e aksesit nĂ« faqet e privilegjuara tĂ« memories.
- Në emuluesin e arkitekturës MIPS është shtuar një lloj i ri makinash të emuluara 'virt' me mbështetje për procesorët kinezë Loongson-3.
- Në emuluesin e arkitekturës PowerPC për makinat e emuluara 'powernv' është shtuar mbështetje për kontrollet externe BMC. Për makinat e emuluara pseries është siguruar informacion mbi dështimet gjatë përpjekjeve për nxjerrjen e nxehtë të memories dhe CPU.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r emulimin e procesorĂ«ve Qualcomm Hexagon me DSP.
- Në gjeneratorin klasik të kodit TCG (Tiny Code Generator) është implementuar mbështetje për ambientet host macOS në sistemet me çipin e ri ARM Apple M1.
- Në emuluesin e arkitekturës RISC-V për pllakat Microchip PolarFire është implementuar mbështetje për QSPI NOR flash.
- Në emuluesin Tricore është shtuar mbështetje për modelin e ri të pllakatave TriBoard, që emulon SoC Infineon TC27x.
- Në emuluesin ACPI është ofruar mundësia e caktimit të emrave për adaptuesit rrjetorë në sistemet mik, që nuk varen nga rendi i lidhjes në autobusin PCI.
- Në virtiofs është shtuar mbështetje për opsionin FUSE_KILLPRIV_V2 për të rritur performancën e sistemeve mik.
- Në VNC është shtuar mbështetja për transparencën e kursori dhe mbështetja për zmadhimin e rezolutës së ekranit në virtio-vga, duke u bazuar në përmasat e dritares.
- Në QMP (Protokolli i Makinerisë QEMU) është shtuar mbështetje për qasje paralele asimetrike gjatë përfundimit të detyrave të kopjimit.
- Në emulatorin USB është shtuar mundësia për të ruajtur trafikun që shkaktohet gjatë punës me pajisjet USB në një skedar pcap të veçantë për inspektim të mëvonshëm në Wireshark.
- Janë shtuar komanda të reja QMP load-snapshot, save-snapshot dhe delete-snapshot për menaxhimin e snapshot-eve qcow2.
- Në virtiofs janë eliminuar dobësitë CVE-2020-35517 dhe CVE-2021-20263. Problemi i parë lejon qasje në mjedisin e hostit nga sistemi mysafir duke krijuar nga një përdorues me privilegje një skedar special pajisjesh në katalogun e përbashkët me mjedisin e hostit. Problemi i dytë shkaktohet nga një gabim në trajtimin e atributeve të zgjeruara në opsionin 'xattrmap' dhe mund të çojë në injorimin e rikthimit të të drejtave të shkruajta dhe rritjen e privilegjeve brenda sistemit mysafir.
Burimi: opennet.ru
