QEMU 6.0 emuliatoriaus išleidimas

Pristatomas QEMU 6.0 projekto leidimas. Kaip emuliatorius, QEMU leidžia paleisti programą, sukurtą vienai aparatinės įrangos platformai, sistemoje su visiškai kitokia architektūra, pavyzdžiui, paleisti ARM programą su x86 suderinamame kompiuteryje. Virtualizavimo režimu QEMU kodo vykdymas izoliuotoje aplinkoje yra artimas aparatinės įrangos sistemai dėl tiesioginio komandų vykdymo CPU ir Xen hipervizoriaus arba KVM modulio naudojimo.

Iš pradžių projektą sukūrė Fabrice'as Bellardas, kad „Linux“ vykdomieji failai, sukurti x86 platformai, galėtų veikti ne x86 architektūrose. Per kūrimo metus pilnas emuliacijos palaikymas buvo pridėtas 14 techninės įrangos architektūrų, emuliuojamų aparatūros įrenginių skaičius viršijo 400. Rengiantis 6.0 versijai, iš 3300 kūrėjų buvo atlikta daugiau nei 268 pakeitimų.

Pagrindiniai QEMU 6.0 patobulinimai:

  • NVMe valdiklio emuliatorius suderintas su NVMe 1.4 specifikacija ir turi eksperimentinį palaikymą zoninėms vardų erdvėms, kelių kelių įvesties / išvesties ir tiesioginio duomenų šifravimo diske.
  • Pridėtos eksperimentinės parinktys „-machine x-remote“ ir „-device x-pci-proxy-dev“, kad įrenginio emuliacija būtų perkelta į išorinius procesus. Šiuo režimu šiuo metu palaikoma tik lsi53c895 SCSI adapterio emuliacija.
  • Pridėtas eksperimentinis palaikymas kuriant RAM turinio momentines nuotraukas.
  • Pridėtas FUSE modulis, skirtas eksportuoti blokinius įrenginius, leidžiančius prijungti bet kurio blokinio įrenginio, naudojamo svečio sistemoje, būsenos gabalėlį. Eksportavimas vykdomas naudojant QMP komandą block-export-add arba per parinktį „--export“ programoje „qemu-storage-daemon“.
  • ARM emuliatorius palaiko ARMv8.1-M „Helium“ architektūrą ir Cortex-M55 procesorius, taip pat išplėstines ARMv8.4 TTST, SEL2 ir DIT instrukcijas. Pridėtas ARM plokščių mps3-an524 ir mps3-an547 palaikymas. Papildoma įrenginio emuliacija įdiegta xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx ir sabrelite plokštėms.
  • ARM, emuliacijos režimuose sistemos ir vartotojo aplinkos lygiuose, buvo įdiegtas ARMv8.5 MTE (MemTag, Memory Tagging Extension) plėtinio palaikymas, leidžiantis susieti žymas prie kiekvienos atminties paskirstymo operacijos ir organizuoti žymeklio patikrinimą, kai prieiga prie atminties, kuri turi būti susieta su teisinga žyma . Plėtinys gali būti naudojamas blokuoti pažeidžiamumų, atsirandančių dėl prieigos prie jau atlaisvintų atminties blokų, buferio perpildymo, prieigų prieš inicijavimą ir naudojimo ne dabartiniame kontekste, išnaudojimui.
  • 68k architektūros emuliatorius pridėjo palaikymą naujo tipo emuliuotam kompiuteriui „virt“, kuris naudoja virtio įrenginius, kad optimizuotų našumą.
  • x86 emuliatorius prideda galimybę naudoti AMD SEV-ES (saugios šifruotos virtualizacijos) technologiją, kad būtų galima užšifruoti svečių sistemoje naudojamus procesorių registrus, todėl registrų turinys neprieinamas prieglobos aplinkai, nebent svečio sistema aiškiai suteikia jiems prieigą.
  • Klasikinis TCG (Tiny Code Generator) kodų generatorius, emuliuojant x86 sistemas, įgyvendina PKS (Protection Keys Supervisor) mechanizmo palaikymą, kuris gali būti naudojamas apsaugoti prieigą prie privilegijuotų atminties puslapių.
  • Į MIPS architektūros emuliatorių buvo įtrauktas naujas emuliuotų mašinų tipas „virt“, palaikantis Kinijos „Loongson-3“ procesorius.
  • Į PowerPC architektūros emuliatorių, skirtą emuliuotoms mašinoms „powernv“, buvo pridėtas išorinių BMC valdiklių palaikymas. Emuliuotiems Pseries įrenginiams pateikiamas pranešimas apie gedimus, kai bandoma pašalinti atmintį ir centrinį procesorių.
  • Pridėtas Qualcomm Hexagon procesorių emuliavimo su DSP palaikymas.
  • Klasikinis TCG (Tiny Code Generator) kodų generatorius palaiko macOS pagrindinę aplinką sistemose su naujuoju Apple M1 ARM lustu.
  • RISC-V architektūros emuliatorius, skirtas Microchip PolarFire plokštėms, palaiko QSPI NOR blykstę.
  • „Tricore“ emuliatorius dabar palaiko naująjį „TriBoard“ plokštės modelį, kuris imituoja „Infineon TC27x SoC“.
  • ACPI emuliatorius suteikia galimybę svečių sistemose priskirti tinklo adapteriams pavadinimus, kurie nepriklauso nuo jų prijungimo prie PCI magistralės tvarkos.
  • virtiofs pridėjo FUSE_KILLPRIV_V2 parinkties palaikymą, kad pagerintų svečių našumą.
  • VNC pridėjo palaikymą žymeklio skaidrumui ir ekrano skiriamosios gebos mastelio keitimo palaikymą virtio-vga, atsižvelgiant į lango dydį.
  • QMP (QEMU Machine Protocol) pridėjo asinchroninės lygiagrečios prieigos palaikymą atliekant atsargines kopijas.
  • USB emuliatorius pridėjo galimybę išsaugoti srautą, sugeneruotą dirbant su USB įrenginiais, į atskirą pcap failą, kad vėliau būtų galima patikrinti Wireshark.
  • Pridėtos naujos QMP komandos load-snapshot, save-snapshot ir delete-snapshot, kad galėtumėte valdyti qcow2 momentines nuotraukas.
  • Pažeidžiamumas CVE-2020-35517 ir CVE-2021-20263 buvo ištaisytas virtiofuose. Pirmoji problema leidžia pasiekti pagrindinę aplinką iš svečių sistemos privilegijuotam vartotojui sukuriant specialių įrenginių failą svečių sistemoje kataloge, kuris bendrinamas su pagrindine aplinka. Antrąją problemą sukelia „xattrmap“ parinkties išplėstinių atributų tvarkymo klaida, dėl kurios gali būti nepaisoma rašymo teisių ir gali būti padidintos privilegijos svečių sistemoje.

Šaltinis: opennet.ru

Добавить комментарий