Liberigo de la emulilo QEMU 6.0

La liberigo de la projekto QEMU 6.0 estis prezentita. Kiel emulilo, QEMU permesas ruli programon kompilitan por unu aparataro platformo sur sistemo kun tute malsama arkitekturo, ekzemple, ruli ARM-aplikaĵon sur x86-kongrua komputilo. En virtualigreĝimo en QEMU, la agado de kodekzekuto en izolita medio estas proksima al tiu de hardvarsistemo pro rekta plenumo de instrukciaĵo sur la CPU kaj la uzo de la Xen-hiperviziero aŭ KVM-modulo.

La projekto estis origine kreita fare de Fabrice Bellard por disponigi la kapablon prizorgi Linuksajn ruleblajn kompilojn por la platformo x86 sur ne-x86 arkitekturoj. Tra la jaroj de evoluo, subteno por plena emulado estis aldonita por 14 aparataro-arkitekturoj, la nombro da kopiitaj aparataro superis 400. En la preparado de versio 6.0, pli ol 3300 ŝanĝoj estis faritaj de 268 programistoj.

Ŝlosilaj plibonigoj aldonitaj en QEMU 6.0:

  • La NVMe-regila emulilo konformas al la specifo NVMe 1.4 kaj estas ekipita per eksperimenta subteno por zonitaj nomspacoj, multivoja I/O kaj fin-al-fina datuma ĉifrado sur la disko.
  • Aldonitaj eksperimentaj opcioj "-machine x-remote" kaj "-device x-pci-proxy-dev" por movi aparato-imuladon al eksteraj procezoj. En ĉi tiu reĝimo, nur kopiado de la lsi53c895 SCSI-adaptilo estas nuntempe subtenata.
  • Aldonita eksperimenta subteno por kreado de momentfotoj de RAM-enhavo.
  • Aldonita FUSE-modulo por eksporti blokajn aparatojn, permesante al vi munti tranĉaĵon de la stato de iu ajn blokaparato uzata en la gastsistemo. Eksporto estas farita per la QMP-komando block-export-add aŭ per la opcio "--export" en la ilo qemu-storage-daemon.
  • La ARM-emulilo aldonas subtenon por la ARMv8.1-M "Helio" arkitekturo kaj Cortex-M55-procesoroj, same kiel la plilongigitajn instrukciojn ARMv8.4 TTST, SEL2 kaj DIT. Aldonita subteno por ARM-tabuloj mps3-an524 kaj mps3-an547 ankaŭ. Plia aparato-emulado estis efektivigita por xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx kaj sabrelite-tabuloj.
  • Por ARM, en emulaj reĝimoj ĉe la sistemo kaj uzantmedio-niveloj, subteno por la etendaĵo ARMv8.5 MTE (MemTag, Memory Tagging Extension) estis efektivigita, kiu ebligas al vi ligi etikedojn al ĉiu memor-asigna operacio kaj organizi punterkontrolon kiam alirante memoron, kiu devas esti asociita kun la ĝusta etikedo. La etendaĵo povas esti uzata por bloki la ekspluaton de vundeblecoj kaŭzitaj de aliro al jam liberigitaj memorblokoj, bufro-superfluoj, aliroj antaŭ inicialigo kaj uzo ekster la nuna kunteksto.
  • La 68k-arkitektura emulilo aldonis subtenon por nova speco de kopiita maŝino "virt", kiu uzas virtio-aparatojn por optimumigi rendimenton.
  • La emulilo x86 aldonas la kapablon uzi AMD SEV-ES (Secure Encrypted Virtualization) teknologion por ĉifri procesorregistrojn uzitajn en la gastsistemo, igante la enhavon de la registroj nealirebla al la gastiga medio krom se la gastsistemo eksplicite donas aliron al ili.
  • La klasika kodgeneratoro TCG (Tiny Code Generator), dum kopiado de x86-sistemoj, efektivigas subtenon por la mekanismo de PKS (Protection Keys Supervisor), kiu povas esti uzata por protekti aliron al privilegiaj memorpaĝoj.
  • Nova speco de kopiitaj maŝinoj "virt" estis aldonita al la MIPS-arkitektura emulilo kun subteno por ĉinaj Loongson-3-procesoroj.
  • En la PowerPC-arkitektura emulilo por kopiitaj maŝinoj "powernv", subteno por eksteraj BMC-regiloj estis aldonita. Por kopiitaj pserie-maŝinoj, sciigo pri misfunkciadoj kiam oni provas varme forigi memoron kaj CPU-on.
  • Aldonita subteno por kopiado de Qualcomm Hexagon-procesoroj kun DSP.
  • La klasika kodgeneratoro TCG (Tiny Code Generator) subtenas macOS-gastigantajn mediojn en sistemoj kun la nova blato Apple M1 ARM.
  • La RISC-V-arkitektura emulilo por Microchip PolarFire-tabuloj subtenas QSPI NOR-fulmon.
  • La emulilo Tricore nun subtenas la novan modelon de la tabulo TriBoard, kiu imitas la Infineon TC27x SoC.
  • La ACPI-emulilo disponigas la kapablon asigni nomojn al retadaptiloj en gastsistemoj kiuj estas sendependaj de la ordo en kiu ili estas konektitaj al la PCI-buso.
  • virtiofs aldonis subtenon por la opcio FUSE_KILLPRIV_V2 por plibonigi gastan rendimenton.
  • VNC aldonis subtenon por kursora travidebleco kaj subtenon por grimpi ekranrezolucion en virtio-vga, surbaze de la fenestrograndeco.
  • QMP (QEMU Maŝina Protokolo) aldonis subtenon por nesinkrona paralela aliro dum plenumado de rezervaj taskoj.
  • La USB-emulilo aldonis la kapablon ŝpari trafikon generitan laborante kun USB-aparatoj en apartan pcap-dosieron por posta inspektado en Wireshark.
  • Aldonitaj novaj QMP-komandoj load-snapshot, save-snapshot kaj delete-snapshot por administri qcow2 momentfotojn.
  • Vundeblecoj CVE-2020-35517 kaj CVE-2021-20263 estis riparitaj en virtifoj. La unua problemo permesas aliron al la gastiga medio de la gastsistemo kreante specialan aparaton dosieron en la gastsistemo de privilegiita uzanto en dosierujo kunhavita kun la gastiga medio. La dua problemo estas kaŭzita de cimo en la uzado de etenditaj atributoj en la opcio 'xattrmap' kaj povas kaŭzi skribi permesojn esti ignoritaj kaj privilegia eskalado ene de la gastsistemo.

fonto: opennet.ru

Aldoni komenton