28.02.2024

Выпуск эмулятора 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-режима миграции и реализована возможность динамического распределения MSI-X. Проведена подготовка к переходу на новый бэкенд IOMMUFD.
  • В устройстве virtio-mem реализован режим «dynamic-memslots=on» для динамического выделения нескольких слотов памяти вместо статического распределения одного большого слота. Использование режима позволяет снизить потребление памяти на больших устройствах virtio-mem, отдающих в VM небольшой объём памяти.

  • В эмуляторе архитектуры 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 (Advanced Interrupt Architecture) через KVM.
  • В эмуляторе архитектуры HPPA обеспечена эмуляция 64-разрядного CPU PA-RISC 2.0 и эмуляция системы C3700, включая контроллер памяти Astro и PCI-мосты Elroy.
  • В эмуляторе архитектуры LoongArch реализована эмуляция CPU Loongson LA132. Добавлена поддержка расширения набора команд LASX и инструкции PRELDX.
  • В эмуляторе архитектуры s390x добавлена поддержка vfio-ap для проброса адаптера crypto для защищённых гостевых систем.
  • В эмуляторе Tricore добавлена поддержка процессоров TC37x (ISA 1.6.2) и инструкций CRCN, FTOU, FTOHP, HPTOF.

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