Представена е версията на проекта QEMU 11.0.0. Като емулатор QEMU ви позволява да стартирате програма, компилирана за една хардуерна платформа на система с напълно различна архитектура, например да стартирате ARM приложение на x86-съвместим компютър. В режим на виртуализация в QEMU производителността на изпълнение на код в изолирана среда е близка до хардуерната система поради директното изпълнение на инструкции на процесора и използването на Xen хипервайзор или KVM модула в Linux, или NVMM модула в NetBSD.
Проектът първоначално е създаден от Fabrice Bellard, за да позволи изпълнимите файлове на Linux, създадени за платформата x86, да работят на различни от x86 архитектури. През годините на разработка е добавена пълна поддръжка за емулация за 14 хардуерни архитектури, броят на емулираните хардуерни устройства е надхвърлил 400. В подготовката за версия 11.0.0 са направени повече от 2500 промени от 237 разработчици.
Ключови подобрения, добавени в QEMU 11.0:
- Удалена поддержка 32-разрядных хост-систем, которая была объявлена устаревшей в апреле прошлого года в QEMU 10.0. В декабрьском выпуске 10.2 в генераторе кода TCG (Tiny Code Generator) была прекращена поддержка платформ mips32 и ppc32, а в выпуске QEMU 11.0 удалены оставшиеся платформы i386, arm, ppc и riscv32, а также проведена чистка кодовой базы и сборочной системы от компонентов для работы на 32-разрядных хостах.
- Реализован ускоритель виртуализации «nitro» («-accel nitor») и новый тип эмулируемых систем «nitro», позволяющий запускать в QEMU изолированные анклавы на базе технологии конфиденциальных вычислений AWS Nitro Enclave, например, для локального тестирования в QEMU окружений Nitro Enclave. В AWS EC2 технология Nitro Enclave позволяет запускать в виртуальной машине вложенные изолированные анклавы для работы с конфиденциальными данными, выделяя им часть своих ресурсов.
- Улучшена поддержка ускорителей виртуализации MSHV (Microsoft Hypervisor) и WHPX (Microsoft Windows Hypervisor Platform Extensions).
- При использовании гипервизора KVM («-accel kvm») предоставлена поддержка виртуализации расширения Intel CET (Control-flow Enforcement Technology) для применения в виртуални машини защиты от эксплоитов, использующих методы возвратно-ориентированного программирования (ROP — Return-Oriented Programming). Также добавлена поддержка перезагрузки конфиденциальных виртуални машини, использующих для шифрования памяти расширения AMD SEV-SNP (Secure Encrypted Virtualization — Secure Nested Paging) и Intel TDX (Trust Domain Extensions).
- В устройство VirtIO-GPU, обеспечивающее работу виртуального GPU, добавлена возможность выставления отличающихся разрешений экрана для разных устройств вывода.
- В VirtIO-GPU добавлена поддержка контекстов DRM (Direct Rendering Manager native context), позволяющих повысить производительность работы с виртуальным GPU из гостевой системы за счёт прямой передачи команд в реальный хостовый GPU. Поддержка контекстов DRM включается при использовании нового устройства virtio-gpu-gl с опцией «drm_native_context=on». В отличие от контекстов Virgl и Venus, работающих на уровне API OpenGL и Vulkan, контекст DRM реализован на уровне UAPI ядра Linux.
- Добавлена возможность использования языка C++ для разработки плагинов к генератору кода TCG (Tiny Code Generator).
- В блочный драйвер NFS добавлена поддержка сборки с библиотекой libnfs 6.
- В блочный драйвер curl добавлена опция «force-range» для принудительного использования HTTP-заголовка «Range» при загрузке изображений без предварительной проверки его поддержки отдельным запросом с заголовком HEAD.
- В блочном драйвере FUSE отключена обработка операций экспорта в синхронном режиме, приводивших к блокировке запуска виртуальной машины до окончания обработки других FUSE-запросов. Добавлена возможность использования нескольких потоков ввода/вывода (iothread) при выполнении экспорта в FUSE.
- В эмулятор архитектуры x86 добавлена поддержка CPU Intel Diamond Rapids («Xeon 7»).
- В эмулятор архитектуры ARM добавлена процессорных расширений FEAT_ASID2 и FEAT_E2H0. В генераторе кода TCG реализована эмуляция расширений SME (Scalable Matrix Extension).
- В эмулятор архитектуры HPPA добавлена поддержка эмуляции 64-разрядных CPU c 40- и 44-разрядным адресным пространством. При помощи SeaBIOS-hppa 24 обеспечена инициализация PCI-контроллера Astro, позволяющая использовать PCI-видеокарты на 64-рядных системах.
- В эмуляторе архитектуры LoongArch появилась возможность миграции PMU (Performance Monitoring Unit) при использовании гипервизора KVM. В генераторе кода TCG реализована эмуляция расширений LA v1.1, sc.q и llacq/screl, а также инструкций FRECIP и DRECIP для вычисления обратных значений.
- В эмулятор архитектуры PowerPC добавлена поддержка снапршотов.
- В эмуляторе архитектуры RISC-V реализована поддержка CPU MIPS P8700 и расширений набора команд Zilsd, Zclsd, ZALASR и Smpmpmt.
- В эмуляторе архитектуры s390 появилась поддержка загрузки с устройств virtio-blk-pci и реализована эмуляции инструкции «DIVIDE TO INTEGER».
- Принято исправление, в 50-80 раз сокращающее задержки при работе fdmon (file descriptor monitoring) в режиме «aio=io_uring» и нахождении системы в состоянии простоя (idle).
Източник: opennet.ru
