Новая версия эмулятора QEMU 1.7.0

Официально представлен релиз QEMU 1.7.0. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM. Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. Всего в разработке всех выпусков QEMU приняло участие более 400 авторов, которые подготовили около 23 тысяч изменений. При подготовке версии 1.7 внесено около 1300 изменений от 126 разработчиков.

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

Расширены возможности драйверов для блочных устройств: В драйвер распределенного хранилища Sheepdog добавлена поддержка автоматического восстановления соединения после проблем с каналом связи; В драйвер VMDK добавлена поддержка файлов, созданных в VMWare ESX; В драйвере qcow2 реализовано обнаружение некоторых типов повреждений целостности образов виртуальных машин. Для повреждённого образа блокируются операции записи данных; В драйвер VHDX добавлена поддержка создания и записи образов в формате .vhdx; Добавлена новая команда «qemu-img map» для сохранения метаданных файла образа гостевой системы в читаемом виде или формате JSON; Улучшение эмуляции звуковых устройств. В код эмуляции звуковых устройств HDA по умолчанию включена реализация микшера, для использования которого ранее необходимо было собрать QEMU с опцией »--enable-mixemu». Налажена корректная работа звука на системах без OSS (/dev/dsp), без необходимости использования дополнительных сборочных опций. В процессе эмуляции звуковых устройств снижена нагрузка на CPU и теперь учитывается значение переменной окружения QEMU_AUDIO_TIMER_PERIOD; Добавлена поддержка эмуляции контролллера LSI 53C810 SCSI HBA, который в отличие от 895A поддерживается в некоторых старых выпусках Windows NT; В VFIO, механизме для создания виртуализированных драйверов устройств, работающих в пространстве пользователя, реализован более надёжный метод сброса устройств и добавлена поддержка настроек привязки обработчиков прерываний MSI к определённым ядрам CPU. Увеличена производительность и функциональность кода эмуляции USB 3.0; В эмулятор платформы MicroBlaze (софт-процессоры на базе Xilinx FPGA) добавлена возможность указания образа initrd в командной строке; В эмуляторе PowerPC появилась поддержка новой команды dump-guest-memory для сброса дампа памяти гостевой системы; В эмуляторе архитектуры x86 обеспечена начальная поддержка более 1 Тб ОЗУ (пока не поддерживается прошивками) и добавлена возможность использования в прошивках таблиц ACPI, генерируемых QEMU, что позволит в будущем реализовать дополнительные возможности без необходимости модификации компонентов прошивки (SeaBIOS, OVMF, CoreBoot); Для HVM-окружений Xen (аппаратная виртуализация с эмуляцией устройств) добавлена поддержка выхода из спящего режима S3 (suspend-to-RAM); В режиме мониторинга появилась поддержка автодополнения опций подкомманд, таких как «info block», а также возможность вывода подсказки («help info block»). Добавлены новые команды «blockdev-snapshot-internal-sync» и «blockdev-snapshot-delete-internal-sync» для поддержки внутренних снапшотов qcow2 и команды «blockdev-add» с реализацией QMP-интерфейса для горячего подключения блочных устройств; Переписан алгоритм регулировки пропускной способности блочных устройств. Новая реализация более надёжна и поддерживает задания отдельных лимитов для всплесков ввода/вывода и обычной активности; В режиме эмуляции уровня пользователя, позволяющем запускать на одной архитектуре процессы, собранные для другой архитектуры, добавлена поддержка исполняемых файлов архитектуры AArch64 и поддержка атомарных системных вызовов при эмуляции M68K ColdFire; В агенте для гостевых систем добавлена поддержка команд «freeze/thaw» на платформе Windows. Поддержка реализована через обращение к сервису VSS (Volume Shadow Copy Service); При поступлении запроса на дизассемблирование для архитектур, для которых отсутствует встроенный дизассемблер, QEMU вместо ошибки теперь генерирует шестнадцатеричный дамп, который в дальнейшем может быть преобразован в дизассемблированное представление с использованием сторонних инструментов; В классический генератор кода TCG (Tiny Code Generator) добавлена поддержка запуска на хостах с x32 ABI.

© OpenNet