Është lanҫuar versioni i projektit QEMU 6.0. Si emulator, QEMU lejon të ekzekutohet një program i ndërtuar për një platformë harduerike në një sistem me një arkitekturë krejtësisht të ndryshme, për shembull, të ekzekutohet 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 harduerik për shkak të ekzekutimit të drejtpërdrejtë të instruksioneve në CPU dhe angazhimit të hipervizorit Xen ose modulit KVM.
Fillimisht, projekti u krijua nga Fabrice Bellard me qëllimin e mundësisë për të ekzekutuar skedarë ekzekutivë të ndërtuar për platformën x86 në arkitektura që nuk janë x86. Gjatë viteve të zhvillimit, është shtuar mbështetje e plotë për 14 arkitektura harduerike, numri i pajisjeve harduerike të emuluara ka tejkaluar 400. Në përgatitje për versionin 6.0, janë bërë më shumë se 3300 ndryshime nga 268 zhvillues.
Përmirësimet kryesore të shtuar në QEMU 6.0:
- Emulatori i kontrolleve NVMe është përputhur me specifikimin NVMe 1.4 dhe është furnizuar me mbështetje eksperimentale për hapësirat e zonuara të emrave, I/O të multipath dhe enkriptimin e të dhënave në disqe.
- Janë shtuar mundësi eksperimentale «-machine x-remote» dhe «-device x-pci-proxy-dev» për transferimin e emulimit të pajisjeve në procese të jashtme. Në këtë modalitet për momentin mbështetet vetëm emulimi i adaptorit SCSI lsi53c895.
- Është shtuar mbështetje eksperimentale për krijimin e snapshot-eve të përmbajtjes së RAM-it.
- Është shtuar një modul FUSE për eksportimin e pajisjeve bllok, duke lejuar montimin e një prerjeje të gjendjes së çdo pajisjeje bllok që përdoret në sistemin mikpritës. Eksportimi kryhet 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. Është shtuar mbështetje për platformat ARM mps3-an524 dhe mps3-an547. Për platformat xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx dhe sabrelite, është realizuar një emulim shtesë i pajisjeve.
- Për ARM, në modalitetet e emulimit në nivel sistemi dhe mjedisi përdoruesi është zbatuar mbështetje për zgjerimin ARMv8.5 MTE (MemTag, Memory Tagging Extension), e cila lejon lidhjen e etiketimeve me çdo operacion alokimi të memories dhe organizimin e një kontrolli të treguesit gjatë qasjes në memorie, i cili duhet të lidhet me etiketën e saktë. Zgjerimi mund të përdoret për të bllokuar eksploatimin e dobësive të shkaktuara nga qasja në blloqe memorie që tashmë janë çliruar, mbushjet e buffers, akseset para inicializimit dhe përdorimi jashtë kontekstit aktual.
- Në emulatorin e arkitekturës 68k është shtuar mbështetje për një tipi të ri të makinerive të emuluara «virt», të cilat përdorin pajisje virtio për optimizimin e performancës.
- Në emulatorin e arkitekturës x86 është shtuar mundësia e përdorimit të teknologjisë AMD SEV-ES (Secure Encrypted Virtualization) për enkriptimin e regjistrave të procesorit të përdorur në sistemin mikpritës, duke e bërë përmbajtjen e regjistrave të pakapshme për mjedisin e mikpritjes, nëse sistemi mikpritës nuk e ofron qasjen në to.
- Në gjeneratorin klasik të kodit TCG (Tiny Code Generator), gjatë emulimit të sistemeve x86, është zbatuar mbështetje për mekanizmin PKS (Protection Keys Supervisor), i cili mund të përdoret për të mbrojtur aksesin në faqet e memories me privilegje.
- Në emulatorin e arkitekturës MIPS është shtuar një tipi i ri i makinerive të emuluara «virt» me mbështetje për procesorët kineze Loongson-3.
- Në emulatorin e arkitekturës PowerPC për makinat e emuluara «powernv» është shtuar mbështetje për kontrollorët e jashtëm BMC. Për makinat e emuluara pseries është siguruar informimi për dështimet gjatë përpjekjeve për të nxjerrë nxehtazi memorien dhe CPU-në.
- Është shtuar mbështetje për emulimin e procesorëve Qualcomm Hexagon me DSP.
- Në gjeneratorin klasik të kodit TCG (Tiny Code Generator) është zbatuar mbështetje për mjediset mikpritëse macOS në sistemet me çipin e ri ARM të Apple M1.
- Në emulatorin e arkitekturës RISC-V për platformat Microchip PolarFire është shtuar mbështetje për QSPI NOR flash.
- Në emulatorin Tricore është shtuar mbështetje për një model të ri të platformat TriBoard, i cili emulon SoC Infineon TC27x.
- Në emulatorin ACPI është dhënë mundësia e caktimit të emrave për adaptuesit rrjetë në sistemet mikpritëse, të cilat nuk varen nga rendi i lidhjes në autobusin PCI.
- Në virtiofs është shtuar mbështetje për opsionin FUSE_KILLPRIV_V2 për të përmirësuar performancën e sistemeve mikpritëse.
- Në VNC është shtuar mbështetje për transparencën e kursorit dhe mbështetje për shkallëzimin e rezolucionit të ekranit në virtio-vga, të cilat varen nga madhësia e dritares.
- Në QMP (QEMU Machine Protocol) është shtuar mbështetje për qasje asinkrone dhe paralele gjatë ekzekutimit të detyrave të kopjimit.
- Në emulatorin e USB është shtuar mundësia e ruajtjes së trafikut që ndodh gjatë punës me pajisjet USB në një skedar të veçantë pcap për inspektim të mëvonshëm në Wireshark.
- Janë shtuar komandat e reja QMP load-snapshot, save-snapshot dhe delete-snapshot për menaxhimin e snaphot-eve qcow2.
- Çështjet e sigurisë CVE-2020-35517 dhe CVE-2021-20263 janë zgjidhur në virtiofs. Problemi i parë lejon qasje në ambientin e hostit nga sistemi mysafir përmes krijimit të një skedari veprimi të veçantë në një direktorium të përbashkët me ambientin e hostit nga një përdorues me privilegje në sistemin mysafir. Problemi i dytë shkaktohet nga një gabim në përpunimin e atributeve të zgjeruara në opsionin 'xattrmap' dhe mund të çojë në injorimin e ristartit të të drejtave të shkruara dhe rritjes së privilegjeve brenda sistemit mysafir.
Burimi: opennet.ru
