Release av projektet QEMU 6.0. Som emulator gör QEMU det möjligt att köra program som Àr byggda för en hÄrdvaruplattform pÄ ett system med helt annan arkitektur, till exempel att köra en applikation för ARM pÄ en x86-kompatibel PC. I virtualiseringslÀge Àr prestandan för kodkörning i en isolerad miljö nÀra den i en hÄrdvarusystem tack vare direkt exekvering av instruktioner pÄ CPU:n och anvÀndning av hypervisorn Xen eller KVM-modulen.
Projektet skapades ursprungligen av Fabrice Bellard för att möjliggöra körning av Linux-körbara filer som Àr byggda för x86-plattformen pÄ arkitekturer som skiljer sig frÄn x86. Under Ären har stöd för fullstÀndig emulering lagts till för 14 hÄrdvaruarkitekturer och antalet emulerade hÄrdvaruenheter har överstigit 400. Vid förberedelsen av version 6.0 gjordes mer Àn 3300 Àndringar av 268 utvecklare.
Nyckel förbÀttringar som lades till QEMU 6.0:
- Emulatorn för NVMe-kontroller har anpassats till NVMe 1.4-specifikationen och försetts med experimentellt stöd för zonerade namnrymder, multipath I/O och end-to-end datakryptering pÄ lagrings enhet.
- Experimentella alternativ "-machine x-remote" och "-device x-pci-proxy-dev" har lagts till för att flytta emuleringen av enheter till externa processer. För nÀrvarande stöds endast emulering av SCSI-adapter lsi53c895 i detta lÀge.
- Experimentellt stöd för skapande av snapshots av RAM-innehÄll har lagts till.
- En FUSE-modul för att exportera blockenheter har lagts till, vilket möjliggör att montera ett tillstÄndssnitt av vilken block enhet som helst som anvÀnds i gÀstsyste. Export sker via QMP-kommando block-export-add eller via alternativet "--export" i verktyget qemu-storage-daemon.
- Emulatorn för ARM har lagt till stöd för ARMv8.1-M 'Helium'-arkitekturen och Cortex-M55-processorer, samt utökade instruktioner ARMv8.4 TTST, SEL2 och DIT. Stöd har lagts till för ARM-kort mps3-an524 och mps3-an547, liksom extra emulering av enheter för kort xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx och sabrelite.
- För ARM i emuleringslÀgen pÄ system- och anvÀndarnivÄ har stöd för ARMv8.5 MTE (MemTag, Memory Tagging Extension) implementerats, vilket gör det möjligt att koppla taggar till varje minnesallokeringsoperation och organisera en pekarverifiering vid minnesÄtkomst, som mÄste vara kopplad till rÀtt tagg. Detta tillÀgg kan anvÀndas för att blockera utnyttjande av sÄrbarheter som orsakas av Ätkomst till redan frigjorda minnesblock, buffertöverflöden, Ätkomster före initialisering och anvÀndning utanför nuvarande kontext.
- I 68k-arkitekturens emulator har stöd för en ny typ av emulerade maskiner "virt" lagts till, som anvÀnder virtio för att optimera enhetsprestanda.
- I x86-arkitekturens emulator har möjligheten att anvÀnda tekniken AMD SEV-ES (Secure Encrypted Virtualization) för att kryptera CPU-register som anvÀnds i gÀstsystemet lagts till, vilket gör registrets innehÄll otillgÀngligt för vÀrdmiljön om inte gÀstsystemet uttryckligen ger Ätkomst till dem.
- I den klassiska TCG (Tiny Code Generator) kodgeneratorn har stöd för mekanismen PKS (Protection Keys Supervisor) implementerats vid emulering av x86-system, vilket kan anvÀndas för att skydda Ätkomst till privilegierade minnessidor.
- I MIPS-arkitekturens emulator har en ny typ av emulerade maskiner "virt" lagts till med stöd för kinesiska Loongson-3-processorer.
- I PowerPC-arkitekturens emulator för emulerade maskiner "powernv" har stöd för externa BMC-kontroller lagts till. För emulerade maskiner pseries har information om misslyckanden vid försök till varmuttag av minne och CPU garanterats.
- Stöd för emulering av Qualcomm Hexagon-processorer med DSP har lagts till.
- I den klassiska TCG (Tiny Code Generator) kodgeneratorn har stöd för macOS vÀrdmiljöer pÄ system med den nya ARM-chippen Apple M1 implementerats.
- I RISC-V-arkitekturens emulator för Microchip PolarFire-kort har stöd för QSPI NOR flash implementerats.
- I Tricore-emulatorn har stöd för den nya modellen TriBoard, som emulerar SoC Infineon TC27x, lagts till.
- I ACPI-emulatorn har möjligheten att tilldela nÀtverksadaptrar ospecificerade namn som inte beror pÄ anslutningsordningen pÄ PCI-bussen lagts till.
- I virtiofs har stöd för alternativet FUSE_KILLPRIV_V2 lagts till för att förbÀttra prestandan hos gÀstsystem.
- I VNC har stöd för transparenta markörer och skÀrmskalning i virtio-vga, vilket baseras pÄ fönstrets storlek.
- I QMP (QEMU Machine Protocol) har stöd för asynkron parallell Ätkomst vid utförande av sÀkerhetskopieringsuppgifter lagts till.
- I USB-emulatorn har möjligheten att spara trafiken som skapas vid arbete med USB-enheter i en separat pcap-fil för efterföljande inspektion i Wireshark lagts till.
- Nya QMP-kommandon load-snapshot, save-snapshot och delete-snapshot har lagts till för att hantera snapshots av qcow2.
- I virtiofs har sÄrbarheterna CVE-2020-35517 och CVE-2021-20263 ÄtgÀrdats. Det första problemet tillÄter Ätkomst till vÀrdmiljön frÄn gÀstsystemet genom att en privilegierad anvÀndare i gÀstsystemet skapar en speciell enhetsfil i en katalog som delas med vÀrdmiljön. Det andra problemet orsakas av ett fel vid hantering av utökade attribut i alternativet 'xattrmap' och kan leda till att skrivbehörigheter ignoreras och privilegier höjs inom gÀstsystemet.
KĂ€lla: opennet.ru
