Release av QEMU-projektet 9.0. QEMU-emulatorn gör det möjligt att köra program byggda för en hÄrdvaruplattform pÄ ett system med en helt annan arkitektur, till exempel köra en applikation för ARM pÄ en x86-kompatibel dator. I virtualiseringslÀget har QEMU:s kodexekveringsprestanda i en isolerad miljö blivit nÀra hÄrdvarusystemet genom direkt exekvering av instruktioner pÄ CPU:n och anvÀndning av hypervisorn Xen eller KVM-modulen i Linux, eller NVMM-modulen i NetBSD.
Projektet skapades ursprungligen av Fabrice Bellard för att möjliggöra körning av körbara filer för Linux byggda för x86-plattformen pÄ arkitekturer som skiljer sig frÄn x86. Under Ären av utveckling har fullstÀndig emuleringstöd lagts till för 14 hÄrdvaruarkitekturer, och antalet emulerade hÄrdvaruenheter har överstigit 400. Vid förberedelsen av version 9.0 har över 2700 Àndringar gjorts av 220 utvecklare.
NyckelförbÀttringar som lagts till QEMU 9.0:
- I virtio-blk-drivrutinen, som tillhandahÄller en virtuell blockenhet för virtuella maskiner, har stöd för flerskiktat kö-system (multiqueue) lagts till, vilket möjliggör att dela upp köerna för olika blockenheter för att sÀkerstÀlla flertrÄdig Ätkomst pÄ flerkÀrniga system (olika köer för en disk kan hanteras av olika in- /utgÄngstrÄdar).
- I blockenheten usb-storage har stöd för egenskaperna âbackend_defaultsâ, âlogical_block_sizeâ, âphysical_block_sizeâ, âmin_io_sizeâ, âopt_io_sizeâ och âdiscard_granularityâ lagts till.
- I gdbstub-biblioteket, som Àr avsett för fjÀrravlusning i GDB med hjÀlp av RSP-protokollet (Remote Serial Protocol), har stöd för fork-follow-lÀget, operationen siginfo:read och avlyssning av systemanrop i anvÀndarutrymmet lagts till.
- Backends för preliminÀr minnesallokering (preallocation) har anpassats för att fungera i flertrÄdat lÀge och kan nu hantera begÀrningar frÄn flera trÄdar samtidigt.
- I verktygen för migrering av virtuella maskiner har lÀget "mapped-ram" lagts till, vilket ökar effektiviteten vid skapande av snapshots av virtuella maskiner. Identifieringen av nollsidminnet har förbÀttrats, vilket har möjliggjort en markant snabbare migrering av inaktiva virtuella maskiner nÀr systemet stöder multifd. Vid migrering baserad pÄ VFIO (Virtual Function I/O) har stöd för Äterstart frÄn sparat tillstÄnd (checkpoint-restart) implementerats.
- Implementeringen av enheten ESP SCSI (am53c974/dc390) har skrivits om.
- Stöd för krypteringsalgoritmen SM4 har lagts till och möjligheten att anvÀnda den i blockenheten 'luks' har sÀkerstÀllts.
- Stöd för att skapa och anvÀnda filer med sparade LUKS-headrar har lagts till i drivrutinen 'luks'.
- I ARM-arkitekturens emulator har stöd för L475E-IOT01A IoT-kort, mp3-an536 (MPS3 med AN536-firmware) och raspi4b (Raspberry Pi 4 Model B) implementerats. Stöd för emulering av processortillÀgg ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) och NV2 (Enhanced Nested Virtualization) har lagts till. Möjligheterna hos emulatorerna för Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx och virt har utvidgats.
- I RISC-V arkitekturens emulator har stöd för tillÀgg av instruktionsuppsÀttningen Zacas, amocas, RVA22, Zaamo, Zalrsc och Ztso lagts till. virtuella maskiner RISC-V har sÀkerstÀllt stöd för SMBIOS. ACPI-stöd har implementerats för SRAT, SLIT, AIA och PLIC. Stödet för RHCT-tabeller har uppdaterats.
- I HPPA-arkitekturens emulator har firmware SeaBIOS-hppa uppdaterats till version 16. Den maximala minnesstorleken har ökat frĂ„n 3 GB till 3840 MB. Stöd för alternativet "ânodefaults" har lagts till.
- I LoongArch-arkitekturens emulator har stöd för KVM-acceleration och vektortillÀgg av instruktionsuppsÀttningen LSX/LASX implementerats.
- I s390x arkitekturens emulator har stöd för instruktionerna CVDG, CVB, CVBY och CVBG lagts till. Emuleringen av LAE (Load Address Extended) har förbÀttrats.
- I 68k arkitekturens emulator har enheten nubus-virtio-mmio lagts till, vilket möjliggör Ätkomst till virtio-enheter frÄn maskiner q800.
- En byggnation med flaggan â-fzero-call-used-regsâ har sĂ€kerstĂ€llts, vilket skyddar mot informationslĂ€ckage frĂ„n funktioner och minskar antalet block som Ă€r anvĂ€ndbara för att bygga ROP-gadgets (Return-Oriented Programming) i exploateringar. Dessutom har en byggnation med flaggan â-ftrivial-auto-var-init=zeroâ lagts till för automatisk initiering med nollvĂ€rde för alla variabler som lagras pĂ„ stacken.
- För att köra QEMU med KVM krÀvs nu minst Linux-kÀrna 4.4. För ARM-vÀrdar planeras detta i framtiden att höjas till version 4.19. Stödet för att anvÀnda 32-bitars Windows som vÀrdoperativsystem har avslutats.
- Stöd för OpenBSD 7.4 har lagts till.
KĂ€lla: opennet.ru
