Release av QEMU 6.0-emulatorn

Releasen av QEMU 6.0-projektet presenteras. Som emulator låter QEMU dig köra ett program byggt för en hårdvaruplattform på ett system med en helt annan arkitektur, till exempel köra en ARM-applikation på en x86-kompatibel PC. I virtualiseringsläget i QEMU är prestandan för kodexekvering i en isolerad miljö nära ett hårdvarusystem på grund av direkt exekvering av instruktioner på CPU:n och användningen av Xen hypervisor eller KVM-modul.

Projektet skapades ursprungligen av Fabrice Bellard för att tillåta körbara Linux-filer byggda för x86-plattformen att köras på icke-x86-arkitekturer. Under årens utveckling har fullt emuleringsstöd lagts till för 14 hårdvaruarkitekturer, antalet emulerade hårdvaruenheter har överstigit 400. Som förberedelse för version 6.0 har mer än 3300 ändringar gjorts från 268 utvecklare.

Viktiga förbättringar som lagts till i QEMU 6.0:

  • NVMe-kontrolleremulatorn överensstämmer med NVMe 1.4-specifikationen och är utrustad med experimentellt stöd för zonerade namnområden, flervägs-I/O och end-to-end datakryptering på enheten.
  • Lade till experimentella alternativ "-machine x-remote" och "-device x-pci-proxy-dev" för att flytta enhetsemulering till externa processer. I det här läget stöds för närvarande endast emulering av lsi53c895 SCSI-adaptern.
  • Lade till experimentellt stöd för att skapa ögonblicksbilder av RAM-innehåll.
  • Lade till en FUSE-modul för export av blockenheter, så att du kan montera en del av tillståndet för alla blockenheter som används i gästsystemet. Exporten utförs genom QMP-kommandot block-export-add eller genom alternativet "--export" i verktyget qemu-storage-daemon.
  • ARM-emulatorn lägger till stöd för ARMv8.1-M 'Helium'-arkitekturen och Cortex-M55-processorer, såväl som de utökade ARMv8.4 TTST-, SEL2- och DIT-instruktionerna. Lade till stöd för ARM-kort mps3-an524 och mps3-an547 också. Ytterligare enhetsemulering har implementerats för xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx och sabrelite-kort.
  • För ARM, i emuleringslägen på system- och användarmiljönivå, har stöd för tillägget ARMv8.5 MTE (MemTag, Memory Tagging Extension) implementerats, vilket gör att du kan binda taggar till varje minnesallokeringsoperation och organisera en pekarkontroll när åtkomstminne, som måste associeras med rätt tagg . Tillägget kan användas för att blockera exploatering av sårbarheter som orsakas av åtkomst till redan frigjorda minnesblock, buffertspill, åtkomst före initiering och användning utanför det aktuella sammanhanget.
  • 68k-arkitekturemulatorn har lagt till stöd för en ny typ av emulerad maskin "virt", som använder virtio-enheter för att optimera prestanda.
  • x86-emulatorn lägger till möjligheten att använda AMD SEV-ES-teknik (Secure Encrypted Virtualization) för att kryptera processorregister som används i gästsystemet, vilket gör innehållet i registren oåtkomligt för värdmiljön om inte gästsystemet uttryckligen ger åtkomst till dem.
  • Den klassiska TCG-kodgeneratorn (Tiny Code Generator) implementerar, när den emulerar x86-system, stöd för PKS-mekanismen (Protection Keys Supervisor), som kan användas för att skydda åtkomst till privilegierade minnessidor.
  • En ny typ av emulerade maskiner "virt" har lagts till i MIPS-arkitekturemulatorn med stöd för kinesiska Loongson-3-processorer.
  • I PowerPC-arkitekturemulatorn för emulerade maskiner "powernv" har stöd för externa BMC-kontroller lagts till. För emulerade pserie-maskiner tillhandahålls meddelande om fel vid försök att hotta bort minne och CPU.
  • Tillagt stöd för emulering av Qualcomm Hexagon-processorer med DSP.
  • Den klassiska TCG-kodgeneratorn (Tiny Code Generator) stöder macOS-värdmiljöer på system med det nya Apple M1 ARM-chippet.
  • RISC-V-arkitekturemulatorn för Microchip PolarFire-kort stöder QSPI NOR-blixt.
  • Tricore-emulatorn stöder nu den nya TriBoard-kortmodellen, som emulerar Infineon TC27x SoC.
  • ACPI-emulatorn ger möjlighet att tilldela namn till nätverksadaptrar i gästsystem som är oberoende av i vilken ordning de är anslutna till PCI-bussen.
  • virtiofs har lagt till stöd för alternativet FUSE_KILLPRIV_V2 för att förbättra gästprestanda.
  • VNC har lagt till stöd för markörtransparens och stöd för skalning av skärmupplösning i virtio-vga, baserat på fönsterstorleken.
  • QMP (QEMU Machine Protocol) har lagt till stöd för asynkron parallell åtkomst vid utförande av säkerhetskopieringsuppgifter.
  • USB-emulatorn har lagt till möjligheten att spara trafik som genereras när man arbetar med USB-enheter till en separat pcap-fil för efterföljande inspektion i Wireshark.
  • Lade till nya QMP-kommandon load-snapshot, save-snapshot och delete-snapshot för att hantera qcow2 ögonblicksbilder.
  • Sårbarheter CVE-2020-35517 och CVE-2021-20263 har åtgärdats i virtiofs. Det första problemet tillåter åtkomst till värdmiljön från gästsystemet genom att skapa en speciell enhetsfil i gästsystemet av en privilegierad användare i en katalog som delas med värdmiljön. Det andra problemet orsakas av en bugg i hanteringen av utökade attribut i alternativet 'xattrmap' och kan orsaka att skrivbehörigheter ignoreras och privilegieeskalering inom gästsystemet.

Källa: opennet.ru

Lägg en kommentar