Представен е релийз на проекта QEMU 10.0.0. QEMU, в качеството си на емулатор, позволява да стартирате програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, да изпълнявате приложение за ARM на x86-съвместим ПК. В режим на виртуализация в QEMU производителността на кодовото изпълнение в изолираната среда е близка до тази на хардуерната система, благодарение на директното изпълнение на инструкциите на CPU и използването на хипервизора Xen или модула KVM в Linux, или модула NVMM в NetBSD.
Проектът първоначално е създаден от Фабрис Беллар (Fabrice Bellard) с цел да осигури възможността да се стартират изпълними файлове за Linux, компилирани за платформата x86, на архитектури, различни от x86. През годините на разработка е добавена поддръжка за пълна емулация на 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надхвърли 400. При подготовката на версия 10.0 са направени над 2800 промени от 211 разработчици.
Ключови подобрения, добавени в QEMU 10.0:
- В драйвера virtio-scsi, който предоставя виртуален SCSI контролер (SCSI Host Bus Adapter) за виртуални машини, е добавена поддръжка на многоуровна система на опашки (multiqueue), позволяваща разделяне на опашките за различни блокови устройства, за да се осигури многопоточен достъп на многоядрени системи (различни опашки на един носител могат да се обработват от различни потоци вход/изход). В сравнение с драйвера за виртуално блоково устройство (virtio-blk), виртуалният SCSI контролер е с малко по-ниска производителност, но позволява използването на над 28 диска.
- В VFIO (Virtual Function I/O) е подобрена поддръжката за проброс на IGD (Integrated Graphics Device) за интегрирани GPU, използвани в 11-то (Rocket Lake) и 12-то (Alder Lake) поколение процесори Intel. Добавена е поддръжка за стари GPU ATI (x550). Реализирана е основна поддръжка на PCI PM (Power Management).
- Документацията на протокола QMP (QEMU Machine Protocol) е значително преработена и разширена, което позволява на приложенията да управляват QEMU.
- Добавен е нов режим на живо мигриране „cpr-transfer“ (CheckPoint and Restart), който позволява прехвърляне на гостуваща система в нов екземпляр на QEMU, стартиран на същия хост. Режимът минимизира времето на спиране, тъй като паметта на гостуващата система се отразява в виртуалното адресно пространство на новия QEMU без копиране на съдържанието.
- Добавени са графични устройства ‘apple-gfx-pci’ и ‘apple-gfx-mmio’, които използват фреймворка ParavirtualizedGraphics, предоставен в macOS за хардуерно ускорение на графиката в хоствани системи. Първият драйвер е предназначен за устройства x86-64, а вторият — за ARM64.
- В емулатора на архитектура x86 е реализирана поддръжка на модели на процесори Intel Xeon Clearwater Forest и Sierra Forest v2. Ускорена е емулацията на инструкции за манипулация на стрингови данни.
- В емулатора на архитектура ARM е реализирана поддръжка на платки NPCM8445 Evaluation и i.MX 8M Plus EVK. Добавена е емулация на разширенията FEAT_AFP, FEAT_RPRES и FEAT_XS, както и физически и виртуални таймери EL2. Поддръжката на CPU Arm PXA2xx и емулацията на инструкциите iwMMXt са обявени за остарели.
- В емулатора на архитектура RISC-V е реализирана емулация на платки Microblaze V, CPU Ascalon и CPU RV64 Xiangshan Nanhu. Добавена е поддръжка на разширенията на наборите от инструкции ‘svukte’, ‘ssstateen’, ‘smrnmi’, ‘smdbltrp’/’ssdbltrp’, ‘supm’, ‘sspm’, както и таговете за транслация на IOMMU и устройства riscv-iommu-sys.
- В емулатора на архитектура HPPA е осигурена емулация на платки Diva GSP BMC. До версия 18 е обновена фърмуера SeaBIOS-hppa. Увеличена е скоростта на транслация. Подобрен е кодът за нулиране на виртуалния CPU. На 64-битови системи е осигурена емулация на конфигурации с размер на паметта до 256 GB.
- В емулатора на архитектура LoongArch е добавена поддръжка за горещо свързване на CPU. Реализирана е паравиртуализирана IPI (интерпроцесорна прекъсване). Осигурено е проследяване на времето на изчакване за предоставяне на ресурси от хипервизора. KVM. Добавена е поддръжка за виртуална маршрутизация на външни прекъсвания (extioi).
- В емулатора на архитектура s390x е добавена поддръжка на 17-то поколение CPU мейнфреймове и е реализирана поддръжка на virtio-mem. За повишаване на производителността е добавена възможност за взаимодействие с PCI устройства, без да се използва IOMMU.
Източник: opennet.ru
