Вышел эмулятор QEMU 9.1

Вышел эмулятор QEMU 9.1

В начале сентября 2024 года вышел эмулятор QEMU 9.1. Открытый проект QEMU позволяет запустить приложение, собранное для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить программу для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM. Релиз QEMU 8.0 состоялся в апреле 2023 года. Проект QEMU 9.0 вышел в апреле 2024 года.

За несколько лет разработки в QEMU добавлена поддержка полной эмуляции для 14 аппаратных архитектур, а число эмулируемых аппаратных устройств превысило 400 шт.

Над созданием QEMU 9.1 работали 263 разработчика, которые внесли в код проекта более 2800 изменений и дополнений.

По информации OpenNET, ключевые улучшения, добавленные в QEMU 9.1:

• в инструментарии миграции гостевых систем реализована поддержка ускорения операции сжатия данных, используя технологию IAA (Intel In-Memory Analytics Accelerator) или UADK (User Space Accelerator Development Kit). Улучшена поддержка восстановления после сбоев миграции в режиме postcopy;

• в механизме virtio, применяемом для организации взаимодействия между гостевыми системами и хост-системой, добавлена поддержка функции VIRTIO_F_NOTIFICATION_DATA, дающей возможность драйверам на стороне гостевых систем передавать дополнительные данные вместе с отправляемыми уведомлениями. Функцию можно использовать, например, для отправки отладочных данных или для оптимизации производительности;

• в guest-agent для Linux-систем добавлена команда guest-network-get-route, а для Windows-систем добавлены команды guest-ssh-*. В интерфейсе командной строки расширены возможности настройки работы команд allowed и blocked;

• в эмуляторе архитектуры ARM добавлена поддержка процессорных расширений EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. При эмуляции блока управления памятью SMMUv3 (System Memory Management Unit) реализована поддержка вложенных и двухуровневых страниц памяти. Для плат Xilinx Zynq добавлена поддержка эмуляции многопроцессорных конфигураций, дисплейного контроллера DM163 и контроллера кэша;

• в эмуляторе архитектуры LoongArch обеспечена возможность прямой загрузки образов ядра в формате ELF и добавлена поддержка запуска до 256 CPU, используя расширение extioi. Улучшены возможности для отладки;

• в эмуляторе архитектуры RISC-V добавлена поддержка процессорных расширений Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs, и Smcntrpmf, а также версии 1.13 спецификации архитектуры привилегированного набора команд. Улучшены возможности для отладки;

• в эмуляторе архитектуры SPARC добавлена поддержка процессорных расширений FMAF, IMA, VIS3 и VIS4;

• в эмуляторе архитектуры x86 для гипервизора KVM реализована возможность запуска гостевых систем с использованием процессорного расширения AMD SEV-SNP (Secure Nested Paging), обеспечивающего безопасную работу с вложенными таблицами страниц памяти. Реализована поддержка эмуляции CPU на базе микроархитектур Icelake-Server-v7, SapphireRapids-v3 и SierraForest;

• устранена уязвимость (CVE-2024-7409) в сервере блочных устройств NBD (Network Block Device), позволяющая через манипуляции в гостевой системе добиться аварийного завершения QEMU во время выполнения операции nbd-server-stop, даже если клиент не имеет TLS-ключей для подключения к серверу NBD.

Источник: habr.com