Доступен эмулятор QEMU 9.1.0

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

Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 9.1 внесено более 2800 изменений от 263 разработчиков.

Ключевые улучшения, добавленные в 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.

Источник: http://www.opennet.ru/opennews/art.shtml?num=61813