Geïntroduceerd project vrijgeven QEMU 5.1. Als emulator kunt u met QEMU een programma uitvoeren dat is gecompileerd voor één hardwareplatform op een systeem met een geheel andere architectuur, bijvoorbeeld een ARM-applicatie uitvoeren op een x86-compatibele pc. In de virtualisatiemodus in QEMU liggen de prestaties van code-uitvoering in een geïsoleerde omgeving dicht bij die van het oorspronkelijke systeem, dankzij de directe uitvoering van instructies op de CPU en het gebruik van de Xen-hypervisor of KVM-module.
Het project is oorspronkelijk gemaakt door Fabrice Bellard om Linux-uitvoerbare bestanden die zijn gebouwd voor het x86-platform te laten draaien op niet-x86-architecturen. In de loop van de jaren van ontwikkeling is volledige emulatieondersteuning toegevoegd voor 14 hardware-architecturen, het aantal geëmuleerde hardware-apparaten is de 400 overschreden. Ter voorbereiding op versie 5.1 zijn er meer dan 2500 wijzigingen aangebracht door 235 ontwikkelaars.
Добавлена поддержка эмуляции 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 слотов ОЗУ.