Вышла новая версия эмулятора QEMU 5.0. и имеет несколько ключевых улучшений, а также большую поддержку большего количества архитектур. Тем, кто не знает о QEMU, следует знать, что это эмулятор который позволяет вам запускать скомпилированную программу для аппаратной платформы в системе с совершенно другой архитектурой, например, запускать приложение ARM на x86-совместимом ПК.
В режиме виртуализации В QEMU производительность выполнения кода в изолированной среде близка к производительности собственной системы из-за прямого выполнения инструкций на ЦП и использования гипервизора Xen или модуля KVM.
QEMU обеспечивает виртуализацию без эмуляции, если гостевая система использует тот же процессор, что и хост-система в противном случае он имитирует архитектуры процессоров x86, ARM, PowerPC, Sparc, MIPS1. Он работает на платформах x86, x64, PPC, Sparc, MIPS, ARM и в операционных системах Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Unix и Windows.
За годы развития добавлена поддержка полной эмуляции 14 архитектур В аппаратном обеспечении количество эмулируемых аппаратных устройств превысило 400. При подготовке к версии 5.0 2800 разработчиками было внесено более 232 изменений.
Основные нововведения QEMU 5.0
В новой версии 5.0 добавлена возможность перенаправления части файловой системы с хост-системы на гостевую. используя virtiofsd. Гостевая система может смонтировать каталог, помеченный для экспорта, на стороне хоста, что значительно упрощает организацию доступа общий доступ к каталогам в системах виртуализации. В отличие от использования сетевой ФС, например NFS и virtio-9P, virtiofs обеспечивает производительность, близкую к локальной файловой системе.
Также Эмулятор архитектуры ARM добавляет возможность эмуляции процессоров Cortex-M7. и обеспечивает поддержку плат ПК tacoma-bmc, Netduino Plus 2 и Orangepi.
Реализована поддержка эмуляция следующих архитектурных особенностей:
- ARMv8.1: HEV, VMID16, PAN, PMU
- ARMv8.2: ЮАО, DCPoP, ATS1E1, TTCNP
- ARMv8.3: RCPC, CCIDX
- ARMv8.4: PMU, RCPC
Команда измерения qemu-img теперь может работать с образами LUKS и вариант –Цель-ноль добавляется в команду преобразования qemu-img чтобы пропустить обнуление целевого изображения.
Добавлено экспериментальная поддержка процесса qemu-storage-daemon, который обеспечивает доступ к уровню блоков QEMU и командам QMP, включая работу с блочными устройствами и встроенным сервером NBD, без необходимости запускать полную виртуальную машину.
В эмуляторе архитектуры PowerPC для машин powernv, добавлена эмуляция аппаратного ускорения KVM для запуска гостевых систем KVM с классическим генератором кода TCG (Tiny Code Generator). Для эмуляции постоянной памяти добавлена поддержка NVDIMM, отображаемого в файле.
Эмулятор архитектуры RISC-V для плат virt и sifive_u реализует поддержку драйверов syscon Приложения Linux для управления питанием и перезагрузки.
Из других упомянутых изменений выделяются следующие:
- Поддержка живой миграции внешних данных процесса с использованием QEMU D-Bus
- Возможность использовать бэкенды памяти для обеспечения основной RAM гостевой системы.
- Бэкэнд настроен с опцией "-machine memory-backend"
- Новый фильтр «сжатия», который можно использовать для создания резервных копий сжатых изображений.
- Добавлена поддержка устройств vTPM и virtio-iommu для эмулируемых виртуальных машин.
- Возможность использовать хост-системы AArch32 для запуска гостевых сред KVM устарела.
- В эмулятор архитектуры HPPA добавлена поддержка графической консоли с графическим устройством HP Artist.
- Добавлена поддержка оператора GINVT (Global Invalidation TLB) в эмуляторе архитектуры MIPS.
- Добавлена поддержка Goldfish RTC для платы virt. Добавлена экспериментальная реализация расширений гипервизора.
- Добавлена поддержка AIS (подавление прерываний адаптера) при работе в режиме KVM на эмуляторе архитектуры s390. Поддержка динамической миграции внешних данных процесса с использованием QEMU D-Bus.