QEMU 6.0 emulatora izlaišana

Tiek prezentēts QEMU 6.0 projekta izlaidums. Kā emulators QEMU ļauj palaist programmu, kas paredzēta vienai aparatūras platformai, sistēmā ar pilnīgi citu arhitektūru, piemēram, palaist ARM lietojumprogrammu ar x86 saderīgā datorā. Virtualizācijas režīmā QEMU koda izpildes veiktspēja izolētā vidē ir tuvu aparatūras sistēmai, jo tiek veiktas tiešas instrukcijas CPU un tiek izmantots Xen hipervizors vai KVM modulis.

Projektu sākotnēji izveidoja Fabriss Belards, lai ļautu Linux izpildāmajiem failiem, kas izveidoti x86 platformai, darboties citās arhitektūrās, kas nav x86. Izstrādes gadu laikā pilns emulācijas atbalsts ir pievienots 14 aparatūras arhitektūrām, emulēto aparatūras ierīču skaits pārsniedzis 400. Gatavojoties versijai 6.0, no 3300 izstrādātājiem veiktas vairāk nekā 268 izmaiņas.

Galvenie uzlabojumi, kas pievienoti QEMU 6.0:

  • NVMe kontrollera emulators ir saskaņots ar NVMe 1.4 specifikāciju un ir aprīkots ar eksperimentālu atbalstu zonētajām nosaukumvietām, vairāku ceļu I/O un datu šifrēšanu no gala līdz galam.
  • Pievienotas eksperimentālās opcijas “-machine x-remote” un “-device x-pci-proxy-dev”, lai pārvietotu ierīces emulāciju uz ārējiem procesiem. Šajā režīmā pašlaik tiek atbalstīta tikai lsi53c895 SCSI adaptera emulācija.
  • Pievienots eksperimentāls atbalsts RAM satura momentuzņēmumu izveidei.
  • Pievienots FUSE modulis bloku ierīču eksportēšanai, ļaujot uzstādīt daļu no jebkuras viesu sistēmā izmantotās blokierīces stāvokļa. Eksportēšana tiek veikta, izmantojot QMP komandu block-export-add vai opciju “--export” utilītprogrammā qemu-storage-daemon.
  • ARM emulators pievieno atbalstu ARMv8.1-M 'Helium' arhitektūrai un Cortex-M55 procesoriem, kā arī paplašinātajām ARMv8.4 TTST, SEL2 un DIT instrukcijām. Pievienots atbalsts arī ARM platēm mps3-an524 un mps3-an547. Ir ieviesta papildu ierīču emulācija xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx un sabrelite dēļiem.
  • ARM emulācijas režīmos sistēmas un lietotāja vides līmenī ir ieviests ARMv8.5 MTE (MemTag, Memory Tagging Extension) paplašinājuma atbalsts, kas ļauj saistīt tagus katrai atmiņas piešķiršanas darbībai un organizēt rādītāja pārbaudi, kad piekļūstot atmiņai, kurai jābūt saistītai ar pareizo tagu . Paplašinājumu var izmantot, lai bloķētu ievainojamību izmantošanu, ko izraisa piekļuve jau atbrīvotajiem atmiņas blokiem, bufera pārpildes, piekļuves pirms inicializācijas un izmantošana ārpus pašreizējā konteksta.
  • 68k arhitektūras emulators ir pievienojis atbalstu jauna veida emulētai mašīnai “virt”, kas izmanto virtio ierīces, lai optimizētu veiktspēju.
  • X86 emulators pievieno iespēju izmantot AMD SEV-ES (Secure Encrypted Virtualization) tehnoloģiju, lai šifrētu procesora reģistrus, ko izmanto viesu sistēmā, padarot reģistru saturu nepieejamu resursdatora videi, ja vien viesu sistēma tiem nepārprotami piešķir piekļuvi.
  • Klasiskais TCG (Tiny Code Generator) kodu ģenerators, emulējot x86 sistēmas, ievieš atbalstu PKS (Protection Keys Supervisor) mehānismam, ko var izmantot, lai aizsargātu piekļuvi priviliģētām atmiņas lapām.
  • MIPS arhitektūras emulatoram ir pievienots jauna veida emulētas mašīnas “virt” ar atbalstu Ķīnas Loongson-3 procesoriem.
  • PowerPC arhitektūras emulatorā emulētām mašīnām “powernv” ir pievienots atbalsts ārējiem BMC kontrolleriem. Emulētām Pseries mašīnām tiek nodrošināts paziņojums par kļūmēm, mēģinot ātri noņemt atmiņu un centrālo procesoru.
  • Pievienots atbalsts Qualcomm Hexagon procesoru emulēšanai ar DSP.
  • Klasiskais TCG (Tiny Code Generator) kodu ģenerators atbalsta macOS resursdatora vidi sistēmās ar jauno Apple M1 ARM mikroshēmu.
  • RISC-V arhitektūras emulators Microchip PolarFire plāksnēm atbalsta QSPI NOR zibspuldzi.
  • Tricore emulators tagad atbalsta jauno TriBoard plates modeli, kas emulē Infineon TC27x SoC.
  • ACPI emulators nodrošina iespēju piešķirt nosaukumus tīkla adapteriem viesu sistēmās, kas ir neatkarīgi no secības, kādā tie ir savienoti ar PCI kopni.
  • virtiofs ir pievienojis atbalstu opcijai FUSE_KILLPRIV_V2, lai uzlabotu viesa veiktspēju.
  • VNC ir pievienojis atbalstu kursora caurspīdīgumam un atbalstu ekrāna izšķirtspējas mērogošanai virtio-vga, pamatojoties uz loga izmēru.
  • QMP (QEMU Machine Protocol) ir pievienojis atbalstu asinhronai paralēlai piekļuvei, veicot dublēšanas uzdevumus.
  • USB emulators ir pievienojis iespēju saglabāt datplūsmu, kas rodas, strādājot ar USB ierīcēm, atsevišķā pcap failā turpmākai pārbaudei programmā Wireshark.
  • Pievienotas jaunas QMP komandas load-snapshot, save-snapshot un delete-snapshot, lai pārvaldītu qcow2 momentuzņēmumus.
  • Virtofos ir novērstas ievainojamības CVE-2020-35517 un CVE-2021-20263. Pirmā problēma ļauj piekļūt resursdatora videi no viesu sistēmas, priviliģētam lietotājam izveidojot īpašu ierīču failu viesu sistēmā direktorijā, kas tiek koplietots ar resursdatora vidi. Otro problēmu izraisa kļūda paplašināto atribūtu apstrādē opcijā “xattrmap”, un tā var izraisīt rakstīšanas atļauju ignorēšanu un privilēģiju eskalāciju viesu sistēmā.

Avots: opennet.ru

Pievieno komentāru