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

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

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

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

  • Добавлено устройство virtio-sound, позволяющее эмулировать звуковую карту для записи и воспроизведения звука в гостевой системе при помощи звукового бэкенда (pulseaudio, sdl или coreaudio), работающего на стороне хост-системы. Для эмуляции звукового устройства в ядре Linux в гостевой системе должна быть включена опция CONFIG_SND_VIRTIO.
  • Добавлен виртуальный графический интерфейс (VGI, Virtual Graphics Interface) rutabaga с реализацией виртуального GPU (virtio-gpu), напоминающего ранее доступный драйвер VirGL и также дающий возможность использования в гостевой системе виртуального GPU для 3D-рендеринга, без открытия эксклюзивного прямого доступа к физическому GPU. Код rutabaga разработан в рамках проекта Android/CrosVM и позволяет использовать эмулятор платформы Android с обычным QEMU.
  • Добавлено устройство hv-balloon с реализацией протокола динамического управления памятью (Dynamic Memory) для Hyper-V, позволяющего во время работы возвращать неиспользуемые страницы памяти хост-системе и запрашивать дополнительные в случае нехватки памяти.
    Новое устройство можно рассматривать как альтернативу virtio-balloon для гостевых систем с Windows, использующую на стороне хост-системы бэкенд, поддерживающий протокол Dynamic Memory.
  • Предложено устройство Universal Flash Storage для эмуляции Flash-накопителя.
  • В драйвер блочных устройств NBD (Network Block Device) добавлена поддержка расширения протокола, использующего для повышения производительности 64-разрядные смещения при манипуляции с данными большого размера.
  • В команду dump-guest-memory добавлена поддержка вывода в стандартном формате kdump.
  • Добавлена поддержка эмуляции UFS, используя новые устройства ufs и ufs-lu.
  • В VFIO (Virtual Function I/O) добавлена поддержка P2P-режима миграции и реализована возможность динамического выделения c MSI-X. Проведена подготовка к переходу на новый бэкенд IOMMUFD.
  • В эмуляторе архитектуры x86 при эмуляции окружения гипервизора Xen на базе KVM обеспечена поддержка консоли PV и сетевых устройств, а также упрощены команды для блочных и сетевых устройств. В классическом генераторе кода TCG добавлена поддержка инструкций SHA.
  • В эмуляторе архитектуры ARM реализована эмуляция CPU Cortex-A710 и Neoverse-N2. Добавлена поддержка процессорных расширений PACQARMA3, EPAC, Pauth2, FPAC, FPACCOMBINE, TIDCP1, MOPS, HBC и HPMN0. Для платы Xilinx Versal реализовано моделирование устройств CFU/CFI и TRNG.
  • В эмуляторе архитектуры RISC-V реализован набора векторных криптографических инструкций. Добавлена поддержка виртуальных IRQ и фильтрации IRQ. Cтабилизирована поддержка расширений Zicond.
    Добавлена поддержка расширений для виртуализации AIA через KVM.
  • В эмуляторе архитектуры обеспечена эмуляция 64-разрядного CPU PA-RISC 2.0 и эмуляция системы C3700, включая контроллер памяти Astro и PCI-мосты Elroy.
  • В эмуляторе архитектуры LoongArch реализована эмуляция CPU la132. Добавлена поддержка расширения набора команд LASX и инструкции PRELDX
  • В эмуляторе архитектуры s390x добавлена поддержка vfio-ap для проброса адаптера crypto для защищённых гостевых систем.
  • В эмуляторе Tricore добавлена поддержка процессоров TC37x (ISA 1.6.2) и инструкций CRCN, FTOU, FTOHP, HPTOF.
Release. Ссылка here.