Выпуск эмулятора QEMU 6.2

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

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

Ключевые улучшения, добавленные в QEMU 6.2:

  • В механизм virtio-mem, позволяющий выполнять горячее подключение и отключение памяти к виртуальным машинам, добавлена полная поддержка дампов памяти гостевых систем, операций копирования перед и после миграции окружения (pre-copy/post-copy) и создания снапшотов гостевой системы в фоновом режиме.
  • В QMP (QEMU Machine Protocol) реализована обработка ошибок DEVICE_UNPLUG_GUEST_ERROR, возникающих на стороне гостевой системы в случае сбоев при выполнении операций горячего подключения оборудования.
  • Расширен синтаксис загрузочных аргументов, обрабатываемых в плагинах к классическому генератору кода TCG (Tiny Code Generator). В плагин “cache” добавлена поддержка многоядерных систем.
  • В эмуляторе архитектуры x86 реализована поддержка модели CPU Intel Snowridge-v4. Добавлена поддержка доступа к анклавам Intel SGX (Software Guard eXtensions) из гостевых систем, используя устройство /dev/sgx_vepc на стороне хост-системы и бэкенд “memory-backend-epc” в QEMU. Для гостевых систем, защищаемых при помощи технологии AMD SEV (Secure Encrypted Virtualization), добавлена возможность верифицируемого прямого (без использования загрузчика) запуска ядра (включается выставлением параметра ‘kernel-hashes=on’ в ‘sev-guest’).
  • В эмуляторе ARM на хост-системах с чипом Apple Silicon реализована поддержка механизма аппаратного ускорения “hvf” при запуске гостевых систем на базе архитектуры AArch64. Добавлена поддержка эмуляции модели процессоров Fujitsu A64FX. Реализован новый тип эмулируемых машин “kudo-mbc”. Для машин ‘virt’ добавлена поддержка эмуляции ITS (Interrupt Translation Service) и возможность использования более 123 CPU в режиме эмуляции. Для эмулируемых машин “xlnx-zcu102” и “xlnx-versal-virt” добавлена поддержка устройств BBRAM и eFUSE. Для систем на базе чипа Cortex-M55 предоставлена поддержка мобильного профиля процессорных расширений MVE.
  • В эмулятор архитектуры PowerPC добавлена начальная поддержка модели CPU POWER10 DD2.0. Для эмулируемых машин “powernv” улучшена поддержка архитектуры POWER10, а для машин ‘pseries’ добавлены описания FORM2 PAPR NUMA.
  • В эмулятор архитектуры RISC-V добавлена поддержка расширений набора инструкций Zb[abcs]. Для всех эмулируемых машин разрешено применение опций “host-user” и “numa mem”. Добавлена поддержка SiFive PWM (Pulse-width modulator).
  • В эмуляторе архитектуры 68k улучшена поддержка предложенной компанией Apple шины NuBus, включая возможность загрузки образов ПЗУ и поддержку слотов прерываний.
  • В блочном устройстве qemu-nbd по умолчанию включён режим кэширования операций записи (“writeback” вместо “writethrough”) для соответствия поведению qemu-img. Добавлена опция “–selinux-label” для выставления меток SELinux Unix-сокетам.
Release. Ссылка here.