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

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

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

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

  • Добавлена поддержка эмуляции CPU на базе архитектуры AVR. Реализована поддержка плат Arduino Duemilanove (ATmega168), Arduino Mega 2560 (ATmega2560), Arduino Mega (ATmega1280) и Arduino UNO (ATmega328P).
  • В эмулятор архитектуры ARM добавлена возможность горячего отключения памяти (hot-unplug), а также горячего подключения памяти nvdimm для гостевых систем с ACPI. Реализована поддержка расширений ARMv8.2 TTS2UXN и ARMv8.5 MemTag. Обеспечена поддержка платы sonorapass-bmc.
  • В эмулятор архитектуры MIPS добавлена поддержка CPU Loongson 3A CPUs (R1 и R4). Повышена производительность эмуляции инструкций FPU и MSA.
  • В эмулятор архитектуры RISC-V добавлена поддержка CPU SiFive E34 и Ibex. Реализована поддержка плат HiFive1 revB и OpenTitan. Для машин Spike предоставлена поддержка более одного CPU.
  • В эмуляторе архитектуры PowerPC появилась поддержка восстановления ошибок в гостевых системах при помощи FWNMI.
  • Для архитектуры s390 добавлена поддержка KVM для защищённой виртуализации (режим безопасного выполнения).
  • В эмуляторе архитектуры x86 сокращены накладные расходы на виртуализацию неадаптированных гостевых систем с Windows, через предоставление таблицы эмулируемых устройств ACPI WAET (Windows ACPI Emulated Device Table). Улучшена поддержка ускорения HVF для macOS.
  • В драйвере блочных устройств появилась поддержка виртуальных устройств хранения с логическими и физическими блоками размером 2MB.
  • Добавлена возможность передачи в QEMU паролей и ключей для шифрования через keyring ядра Linux при помощи объектов нового типа "secret-keyring".
  • Для формата qcow2 реализована поддержка алгоритма сжатия zstd.
  • В утилите qemu-img добавлена новая команда 'bitmap' для манипуляции постоянными битовыми картами в файлах qcow2. В qemu-img также реализовано управления ключами LUKS (keyslot) и предложены дополнительные возможности для команд "map" (--start-offset, --max-length) и "convert" (--bitmaps), в команде "measure" добавлен вывод сведений о размере постоянных битовых карт в файлах qcow2.
  • В драйвере NVMe появилась поддержка постоянных областей памяти (Persistent Memory Region), появившихся в спецификации NVMe 1.4.
  • В virtio для гостевых систем c классическим генератором кода TCG (Tiny Code Generator) реализована возможность использования процессов vhost-user, включая virtiofsd. В vhost-user добавлено расширение VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS, позволяющее регистрировать более 8 слотов ОЗУ.

OpenNet
 
Назад
Сверху Снизу