QEMU 6.0 -emulaattorin julkaisu

QEMU 6.0 -projektin julkaisu esitellään. Emulaattorina QEMU mahdollistaa yhdelle laitteistoalustalle rakennetun ohjelman suorittamisen järjestelmässä, jossa on täysin erilainen arkkitehtuuri, esimerkiksi ARM-sovellusta x86-yhteensopivalla PC:llä. QEMU:n virtualisointitilassa koodin suoritus eristetyssä ympäristössä on lähellä laitteistojärjestelmää, koska käskyt suoritetaan suoraan suorittimessa ja Xen-hypervisor- tai KVM-moduulia käytetään.

Projektin loi alun perin Fabrice Bellard salliakseen x86-alustalle rakennettujen Linux-suoritustiedostojen ajamisen muissa kuin x86-arkkitehtuureissa. Vuosien kehitystyön aikana täysi emulointituki on lisätty 14 laitteistoarkkitehtuurille, emuloitujen laitteistojen määrä on ylittänyt 400. Version 6.0 valmistelemiseksi on tehty yli 3300 muutosta 268 kehittäjältä.

QEMU 6.0:ssa lisätyt tärkeimmät parannukset:

  • NVMe-ohjainemulaattori on saatettu NVMe 1.4 -spesifikaatioiden mukaiseksi, ja se on varustettu kokeellisella tuella vyöhykealueille, monitie-I/O- ja päästä päähän -salaukselle asemassa.
  • Lisätty kokeelliset vaihtoehdot "-machine x-remote" ja "-device x-pci-proxy-dev" siirtääksesi laitteen emuloinnin ulkoisiin prosesseihin. Tässä tilassa vain lsi53c895 SCSI-sovittimen emulointia tuetaan tällä hetkellä.
  • Lisätty kokeellinen tuki RAM-sisällön tilannekuvien luomiseen.
  • Lisätty FUSE-moduuli lohkolaitteiden vientiä varten, jonka avulla voit asentaa osan minkä tahansa vierasjärjestelmässä käytetyn lohkolaitteen tilasta. Vienti suoritetaan QMP-komennolla block-export-add tai qemu-storage-daemon-apuohjelman "--export"-vaihtoehdolla.
  • ARM-emulaattori on lisännyt tuen ARMv8.1-M "Helium"-arkkitehtuurille ja Cortex-M55-prosessoreille sekä laajennetut ARMv8.4 TTST-, SEL2- ja DIT-ohjeet. Lisätty tuki myös ARM-korteille mps3-an524 ja mps3-an547. Lisälaiteemulointi on toteutettu xlnx-zynqmp-, xlnx-versal-, sbsa-ref-, npcm7xx- ja sabrelite-levyille.
  • ARM:lle emulointitiloissa järjestelmä- ja käyttäjäympäristötasolla on otettu käyttöön tuki ARMv8.5 MTE (MemTag, Memory Tagging Extension) -laajennukselle, jonka avulla voit sitoa tunnisteita jokaiseen muistinvaraustoimintoon ja järjestää osoittimen tarkistuksen, kun käyttää muistia, joka on liitettävä oikeaan tunnisteeseen . Laajennuksella voidaan estää haavoittuvuuksien hyödyntäminen, jotka johtuvat jo vapautettujen muistilohkojen käytöstä, puskurin ylivuodosta, pääsystä ennen alustusta ja nykyisen kontekstin ulkopuolisesta käytöstä.
  • 68k arkkitehtuurin emulaattori on lisännyt tuen uudentyyppiselle emuloidulle koneen "virtille", joka käyttää virtio-laitteita suorituskyvyn optimointiin.
  • x86-emulaattori lisää mahdollisuuden käyttää AMD SEV-ES (Secure Encrypted Virtualization) -tekniikkaa vierasjärjestelmässä käytettyjen prosessorirekisterien salaamiseen, jolloin rekisterien sisältö ei pääse isäntäympäristöön, ellei vierasjärjestelmä nimenomaisesti myönnä niihin pääsyä.
  • Klassinen TCG (Tiny Code Generator) -koodigeneraattori, emuloitaessa x86-järjestelmiä, toteuttaa tuen PKS (Protection Keys Supervisor) -mekanismille, jota voidaan käyttää suojaamaan pääsy etuoikeutetuille muistisivuille.
  • MIPS-arkkitehtuurin emulaattoriin on lisätty uudenlainen emuloitujen koneiden "virt", joka tukee kiinalaisia ​​Loongson-3-prosessoreita.
  • Emuloitujen koneiden PowerPC-arkkitehtuurin emulaattoriin "powernv" on lisätty tuki ulkoisille BMC-ohjaimille. Emuloiduille Pseries-koneille tarjotaan ilmoitus virheistä, kun muistia ja prosessoria yritetään poistaa kuumana.
  • Lisätty tuki Qualcomm Hexagon -suorittimien emulointiin DSP:llä.
  • Klassinen TCG (Tiny Code Generator) -koodigeneraattori tukee macOS-isäntäympäristöjä järjestelmissä, joissa on uusi Apple M1 ARM -siru.
  • RISC-V-arkkitehtuurin emulaattori Microchip PolarFire -levyille tukee QSPI NOR -salamaa.
  • Tricore-emulaattori tukee nyt uutta TriBoard-levymallia, joka emuloi Infineon TC27x SoC:tä.
  • ACPI-emulaattori tarjoaa mahdollisuuden antaa vierasjärjestelmien verkkosovittimille nimiä, jotka ovat riippumattomia niiden PCI-väylään liittämisjärjestyksestä.
  • virtiofs on lisännyt tuen FUSE_KILLPRIV_V2-vaihtoehdolle parantaakseen vieraiden suorituskykyä.
  • VNC on lisännyt tuen kursorin läpinäkyvyydelle ja tuen näytön resoluution skaalaukseen virtio-vga:ssa ikkunan koon perusteella.
  • QMP (QEMU Machine Protocol) on lisännyt tuen asynkroniselle rinnakkaiskäytölle varmuuskopiointitehtäviä suoritettaessa.
  • USB-emulaattori on lisännyt mahdollisuuden tallentaa USB-laitteiden kanssa työskenneltäessä syntyvää liikennettä erilliseen pcap-tiedostoon myöhempää Wireshark-tarkastusta varten.
  • Lisätty uudet QMP-komennot load-snapshot, save-snapshot ja delete-snapshot hallita qcow2 snapshots.
  • Haavoittuvuudet CVE-2020-35517 ja CVE-2021-20263 on korjattu virtiofeissa. Ensimmäinen ongelma mahdollistaa pääsyn isäntäympäristöön vierasjärjestelmästä luomalla erityislaitetiedoston vierasjärjestelmään etuoikeutetun käyttäjän toimesta isäntäympäristön kanssa jaettuun hakemistoon. Toinen ongelma johtuu virheestä 'xattrmap'-vaihtoehdon laajennettujen attribuuttien käsittelyssä, ja se voi aiheuttaa kirjoitusoikeuksien huomiotta jättämisen ja oikeuksien eskaloinnin vierasjärjestelmässä.

Lähde: opennet.ru

Lisää kommentti