Представен е релиз на проекта QEMU 8.0. Като емулиратор QEMU позволява стартиране на програма, събрана за една хардуерна платформа на система с напълно различна архитектура, например, да изпълните приложение за ARM на x86-съвместим PC. В режим на виртуализация в QEMU производителността на изпълнението на код в изолирана среда е близка до хардуерната система, благодарение на директното изпълнение на инструкции на CPU и използването на хипервизор Xen или модула KVM.
Първоначално проектът е създаден от Фабрис Беллар (Fabrice Bellard) с цел осигуряване на възможност за стартиране на изпълними файлове на Linux, събрани за платформата x86, на архитектури, различни от x86. През годините на разработка е добавена поддръжка за пълна емулация за 14 хардуерни архитектури, а броят на емулираните хардуерни устройства надхвърли 400. При подготовката на версия 8.0 бяха направени над 2800 промени от 238 разработчици.
Ключови подобрения, добавени в QEMU 8.0:
- Обявена е за остаряла и скоро ще бъде прекратена поддръжката на системната емулация (стартиране на ОС изцяло, включително с използването на хипервизори и Xen) на 32-битови хостове с архитектура x86. Поддръжката на емулация в режим user-mode (стартиране на отделни процеси, събрани за друг CPU) на 32-битови хостове x86 ще продължи. KVM В емулиратора на архитектура x86 е добавена поддръжка за стартиране на гостови системи Xen в среда, базирана на хипервизора KVM и ядра на Linux 5.12+.
- В класическия генератор на код TCG за архитектура x86 е добавена поддръжка на CPUID-флаговете FSRM, FZRM, FSRS и FSRC. Реализирана е поддръжка на новата моделна CPU Intel Sapphire Rapids (Intel 7).
- В емулиратора ARM е внедрена поддръжка за CPU Cortex-A55 и Cortex-R52, добавен е нов тип емулирани машини Olimex STM32 H405, добавена е поддръжка за процесорни разширения FEAT_EVT (Enhanced Virtualization Traps), FEAT_FGT (Fine-Grained Traps) и AArch32 ARMv8-R. В gdbstub е добавена поддръжка за системни регистри за архитектура M-профил (профил на микроконтролерите).
- В емулиратора на архитектура RISC-V е обновена реализацията на емулираните машини OpenTitan, PolarFire и OpenSBI. Добавена е поддръжка за допълнителни набори от процесорни инструкции (ISA) и разширения: Smstateen, отладъчни броячи icount, свързани с кеша на събитията PMU в виртуален режим, ACPI, разширения Zawrs, Svadu, T-Head и Zicond.
- В него е добавена поддръжка за инструкция fid (Floating-Point Identify) и е подобрена емулацията в 32-битов режим.
- В емулиратора на архитектура HPPA е добавена поддръжка за инструкция fid (Floating-Point Identify) и е подобрена емулацията в 32-битов режим.
- В емулатора на архитектура 390x е осигурена поддръжка на асинхронно отсъединяване на паметта при рестартиране на защитени гостуващи системи KVM. Подобрена е обработката на пробразуваните устройства zPCI.
- В механизма virtio-mem, позволяващ горещо свързване и отключване на памет към виртуални машини, е реализирано предвиждане на ресурсите (preallocation) при live миграция.
- В VFIO (Virtual Function I/O) е обновена експерименталната поддръжка за миграция (активирана е втората редакция на миграционния протокол).
- В блочното устройство qemu-nbd е повишена ефективността на работа над TCP при използване на TLS.
- В агента за гостуващи системи е добавена начална поддръжка за OpenBSD и NetBSD.
Източник: opennet.ru
