Представлен релиз проекта QEMU 1.5.0. В качестве эмулятора QEMU позволяет запустить программу собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе, за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.
Изначально проект был создан Фабрисом Беллардом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. Всего в разработке всех выпусков QEMU приняло участие более 400 авторов, которые подготовили около 20 тысяч изменений. При подготовке версии 1.5 внесено около 1800 изменений от 130 разработчиков. Отмечается, что выпуск QEMU 1.5.0 является самым интенсивно развиваемый за всю историю проекта, значительный релиз был подготовлен всего за три месяца, при этом ежедневно вносилось около 20 коммитов, что на 38% больше, чем наблюдалось при разработке проекта год назад.
Ключевые улучшения, добавленные в QEMU 1.5.0:
Представлен графический интерфейс пользователя, написанный с использованием библиотеки GTK+ и полноценно поддерживающий интернационализацию;
Поддержка работы гипервизора KVM на системах на базе архитектуры ARM. Для работы требуется ядро Linux 3.9 и система с процессором Cortex-A15;
Экспериментальная реализация VFIO-драйвера для проброса VGA-устройств в гостевые системы, работающего в пространстве пользователя и не требующего запуска отдельных компонентов уровня ядра на стороне хост-системы. Для включения проброса следует использовать опцию "x-vga=on", поддерживаются видеокарты NVIDIA 8400gs, 73001e, NVS290 и AMD Radeon HD5450, HD7850;
Поддержка фиксированных динамически расширяемых образов в формате VHDX (Hyper-V) в режиме только для чтения;
Экспериментальная поддержка потоков USB 3.0 в коде контроллера nec-usb-xhci и при эмуляции SCSI-устройств с интерфейсом USB (usb-uas);
Поддержка обращения к удалённым дискам через SSH используя при запуске qemu опцию "qemu -drive file=ssh://host/path/to/file";
Задействование libusb для проброса USB-устройств. В Linux и BSD теперь можно использовать два бэкенда, старый usb-host-linux и новый на базе libusb;
Поддержка высокопроизводительной паравиртуализации SCSI с задействованием tcm_vhost, модели устройств virtio-scsi, использующей Linux-iSCSI (реализация SCSI из состава ядра Linux);
Поддержка эмуляции виртуальных сетевых карт VMXNET3 ("-device vmxnet3") и устройств VMware PVSCSI ("-device pvscsi");
Поддержка проброса модулей TPM (Trusted Platform Module);
Поддержка горячего добавления CPU (команда cpu-add QMP) и символьных устройств;
Поддержка TLS-шифрования для VNC-сеансов, работающих поверх WebSockets;
Существенное увеличение производительности эмуляции TCG (Tiny Code Generator) для платформ ARM и x86. Для архитектур x86 в генераторе кода TCG обеспечена поддержка инструкций SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI и ADX;
Увеличение пропускной способности и снижение задержек при live-миграции (4.2 Gbps в QEMU 1.5, в прошлм выпуске было 1.8 Gbps);
Для IDE и SCSI дисков добавлена поддержка использования команды "discard" (TRIM, UNMAP), которая даёт возможность увеличить производительность при работе с SSD-накопителями и повысить их срок службы. По умолчанию новый режим не задействован и требует для активации указать параметр "discard" в опции "-drive";
Для гостевых систем s390x обеспечена возможность загрузки с использованием транспорта virtio-ccw;
Добавлено паравиртуальное устройство для уведомления хост-системы о крахе гостевых систем;
Задействован вызов poll вместо select, что позволило избавиться от лимита на число открытых файловых десктипторов;
Увеличение производительности работы с внутренними снапшотами (savevm) для формата QCOW2.