Представен е релиз на проекта QEMU 7.0. Като емулатор, QEMU позволява стартиране на програма, компилирана за една хардуерна платформа, на система с напълно различна архитектура, например, изпълнение на приложение за ARM на PC, съвместим с x86. В режима на виртуализация, производителността на изпълнение на кода в изолирана среда е близка до тази на хардуерната система благодарение на директното изпълнение на инструкциите на CPU и ангажирането на хипервизора Xen или модула KVM.
Първоначално проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел осигуряване на възможност за стартиране на изпълними файлове Linux, компилирани за платформата x86, на архитектури, различни от x86. През годините на разработка е добавена поддръжка за пълна емулация на 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надвишава 400. При подготовката на версия 7.0 са направени повече от 2500 промени от 225 разработчици.
Ключови подобрения, добавени в QEMU 7.0:
- В емулатора на архитектурата x86 е добавена поддръжка на инструкционния набор Intel AMX (Advanced Matrix Extensions), реализиран в сървърните процесори Intel Xeon Scalable. AMX предлага нови конфигурируеми регистри TMM «TILE» и инструкции за манипулиране на данни в тези регистри, като TMUL (Tile matrix MULtiply) за умножаване на матрици.
- Предоставена е възможност за журнализиране на ACPI събития от гост-системата чрез интерфейса на ACPI ERST.
- В модула virtiofs, използван за прокарване на част от файловата система на хост-средата в гост-системата, е подобрена поддръжката на обозначения за сигурност (security label). Отстранена е уязвимостта CVE-2022-0358, позволяваща повишаване на привилегиите в системата чрез създаване на изпълними файлове в директории, преминаващи през virtiofs, принадлежащи на друга група и снабдени с флаг SGID.
- Повишена е гъвкавостта при резервното копиране на активни системни образи (създава се моментна снимка, след което за актуализиране на състоянието на снимката се прилага филтър copy-before-write (CBW), който копира данни от области, в които гост-системата извършва запис). Добавена е поддръжка за образи в формати, различни от qcow2. Осигурена е възможност за достъп до моментната снимка с резервно копие не директно, а чрез драйвера на блоково устройство snapshot-access. Разширени са възможностите за управление на работата на филтъра CBW, например, може да се изключват от обработка определени битови карти.
- В ARM емулятора за ‘virt’ машини е добавена поддръжка на virtio-mem-pci, дефиниции на топология на CPU за гостуваща система и включване на PAuth при използване на хипервизора KVM с ускорителя hvf. В емулятора на платки ‘xlnx-versal-virt’ е добавена поддръжка на PMC SLCR и емулация на OSPI Flash контролер. За емулираните ‘xlnx-zynqmp’ машини са добавени нови модели на управление на CRF и APU. Добавена е емулация на разширенията FEAT_LVA2, FEAT_LVA (Large Virtual Address space) и FEAT_LPA (Large Physical Address space).
- В класическия генератор на код TCG (Tiny Code Generator) е прекратена поддръжката на хостове с CPU ARMv4 и ARMv5, при които липсва поддръжка за неразделен достъп до паметта и недостатъчно RAM за изпълнение на QEMU.
- В RISC-V емулятора е добавена поддръжка на хипервизора KVM и реализирани векторни разширения Vector 1.0, както и инструкции Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx и zhinx{min}. За емулираните ‘spike’ машини е добавена поддръжка за зареждане на бинарни файлове OpenSBI (RISC-V Supervisor Binary Interface). За емулираните ‘virt’ машини е реализирана възможност за използване на до 32 процесорни ядра и поддръжка на AIA.
- В HPPA емулятора е предоставена възможност за използване на до 16 vCPU и подобрен графичен драйвер за потребителски среди HP-UX VDE/CDE. Добавена е възможност за промяна на реда на зареждане за SCSI устройства.
- В OpenRISC емулятора за ‘sim’ платки е добавена поддръжка за използване на до 4 CPU ядра, зареждане на външен образ initrd и автоматично генериране на device tree за зареждаемото ядро.
- В PowerPC емулятора за ‘pseries’ е реализирана възможност за стартиране на гостови системи под управлението на вложен хипервизор KVM. Добавена е поддръжка за устройството spapr-nvdimm. За ‘powernv’ емулираните машини е добавена поддръжка за контролер XIVE2 за прекъсвания и контролери PHB5, подобрена е поддръжката за XIVE и PHB 3/4.
- В s390x емулятора е добавена поддръжка на разширенията z15 (Miscellaneous-Instruction-Extensions Facility 3).
Източник: opennet.ru
