Izdaja emulatorja QEMU 6.0

Predstavljena je bila izdaja projekta QEMU 6.0. Kot emulator vam QEMU omogoča zagon programa, prevedenega za eno platformo strojne opreme, v sistemu s popolnoma drugačno arhitekturo, na primer zagon aplikacije ARM na računalniku, združljivem z x86. V načinu virtualizacije v QEMU je zmogljivost izvajanja kode v izoliranem okolju podobna zmogljivosti sistema strojne opreme zaradi neposrednega izvajanja navodil na CPE in uporabe hipervizorja Xen ali modula KVM.

Projekt je prvotno ustvaril Fabrice Bellard, da bi izvedljivim datotekam Linuxa, zgrajenim za platformo x86, omogočil izvajanje v arhitekturah, ki niso x86. V letih razvoja je bila dodana popolna podpora za emulacijo za 14 arhitektur strojne opreme, število emuliranih naprav strojne opreme je preseglo 400. V pripravah na različico 6.0 je bilo narejenih več kot 3300 sprememb s strani 268 razvijalcev.

Ključne izboljšave, dodane v QEMU 6.0:

  • Emulator krmilnika NVMe je usklajen s specifikacijo NVMe 1.4 in je opremljen z eksperimentalno podporo za conske imenske prostore, večpotne V/I in šifriranje podatkov od konca do konca na disku.
  • Dodani eksperimentalni možnosti »-machine x-remote« in »-device x-pci-proxy-dev« za prenos emulacije naprave v zunanje procese. V tem načinu je trenutno podprta le emulacija vmesnika lsi53c895 SCSI.
  • Dodana eksperimentalna podpora za ustvarjanje posnetkov vsebine RAM-a.
  • Dodan je modul FUSE za izvoz blokovnih naprav, ki vam omogoča namestitev izseka stanja katere koli blokirne naprave, ki se uporablja v sistemu za goste. Izvoz se izvede prek ukaza QMP block-export-add ali prek možnosti »--export« v pripomočku qemu-storage-daemon.
  • Emulator ARM dodaja podporo za arhitekturo ARMv8.1-M 'Helium' in procesorje Cortex-M55 ter razširjena navodila ARMv8.4 TTST, SEL2 in DIT. Dodana podpora tudi za plošči ARM mps3-an524 in mps3-an547. Dodatna emulacija naprave je bila implementirana za plošče xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx in sabrelite.
  • Za ARM je bila v emulacijskih načinih na ravni sistema in uporabniškega okolja implementirana podpora za razširitev ARMv8.5 MTE (MemTag, Memory Tagging Extension), ki vam omogoča, da povežete oznake z vsako operacijo dodeljevanja pomnilnika in organizirate preverjanje kazalca, ko dostop do pomnilnika, ki mora biti povezan s pravilno oznako . Razširitev se lahko uporablja za blokiranje izkoriščanja ranljivosti, ki nastane zaradi dostopa do že sproščenih pomnilniških blokov, prelivanja medpomnilnika, dostopov pred inicializacijo in uporabe zunaj trenutnega konteksta.
  • Emulator arhitekture 68k je dodal podporo za novo vrsto emuliranega stroja »virt«, ki uporablja naprave virtio za optimizacijo delovanja.
  • Emulator x86 dodaja možnost uporabe tehnologije AMD SEV-ES (Secure Encrypted Virtualization) za šifriranje procesorskih registrov, ki se uporabljajo v sistemu za goste, zaradi česar je vsebina registrov nedostopna okolju gostitelja, razen če sistem za goste izrecno odobri dostop do njih.
  • Klasični generator kode TCG (Tiny Code Generator) pri emulaciji sistemov x86 implementira podporo za mehanizem PKS (Protection Keys Supervisor), s katerim je mogoče zaščititi dostop do privilegiranih pomnilniških strani.
  • Nova vrsta emuliranih strojev »virt« je bila dodana emulatorju arhitekture MIPS s podporo za kitajske procesorje Loongson-3.
  • V emulatorju arhitekture PowerPC za emulirane stroje »powernv« je bila dodana podpora za zunanje krmilnike BMC. Za emulirane stroje serije pse je na voljo obvestilo o napakah pri poskusu vroče odstranitve pomnilnika in CPE-ja.
  • Dodana podpora za posnemanje procesorjev Qualcomm Hexagon z DSP.
  • Klasični generator kode TCG (Tiny Code Generator) podpira gostiteljska okolja macOS v sistemih z novim čipom Apple M1 ARM.
  • Emulator arhitekture RISC-V za plošče Microchip PolarFire podpira QSPI NOR flash.
  • Emulator Tricore zdaj podpira novi model plošče TriBoard, ki emulira Infineon TC27x SoC.
  • Emulator ACPI omogoča dodeljevanje imen omrežnim adapterjem v sistemih za goste, ki so neodvisna od vrstnega reda, v katerem so priključeni na vodilo PCI.
  • virtiofs je dodal podporo za možnost FUSE_KILLPRIV_V2 za izboljšanje zmogljivosti gostov.
  • VNC je dodal podporo za prosojnost kazalca in podporo za spreminjanje ločljivosti zaslona v virtio-vga glede na velikost okna.
  • QMP (QEMU Machine Protocol) je dodal podporo za asinhroni vzporedni dostop pri izvajanju nalog varnostnega kopiranja.
  • Emulator USB je dodal možnost shranjevanja prometa, ustvarjenega pri delu z napravami USB, v ločeno datoteko pcap za kasnejši pregled v Wiresharku.
  • Dodani novi ukazi QMP load-snapshot, save-snapshot in delete-snapshot za upravljanje posnetkov qcow2.
  • Ranljivosti CVE-2020-35517 in CVE-2021-20263 so bile odpravljene v virtiofs. Prva težava omogoča dostop do gostiteljskega okolja iz gostujočega sistema tako, da privilegirani uporabnik ustvari posebno datoteko naprav v gostujočem sistemu v imeniku, ki je v skupni rabi z gostiteljskim okoljem. Drugo težavo povzroča napaka pri obravnavanju razširjenih atributov v možnosti 'xattrmap' in lahko povzroči prezrtje dovoljenj za pisanje in stopnjevanje privilegijev znotraj sistema za goste.

Vir: opennet.ru

Dodaj komentar