Доступна новая версия эмулятора QEMU 1.3.0

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

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

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

  • После 6 лет сосуществования произведено полное слияние параллельно развивавшихся веток qemu-kvm.git и qemu.git, которые теперь доступны в виде единого репозитория qemu.git;
  • Добавлена возможность использования драйвера Linux VFIO для прикрепления к виртуальной машине устройств PCI;
  • Значительно улучшена эмуляция USB3, в том числе для виртуального USB-контроллера XHCI добавлена поддержка устройств хранения (USB mass storage) и MSI/MSI-X;
  • Поддержка перенаправления USB теперь работает и при использования live-миграции;
  • Новое виртуальное устройство VirtIORNG с реализацией паравиртуализированного аппаратного генератора случайных чисел;
  • Поддержка обращения к разделам файловой системы Glusterfs через указание URI "gluster://" в опциях подобных "-drive". В URL также можно явно указать тип транспорта, например, "gluster+tcp://", "gluster+unix://" или "gluster+rdma://";
  • В состав QEMU встроен сервер NBD, доступный при работе в режиме мониторинга. Для обращения к блочным устройствам NBD можно использовать URI "nbd://", в том числе явно определять вид транспорта ("nbd+tcp://" или "nbd+unix://");
  • Для блочных устройств добавлена поддержка новых типов работ для организации перемещения данных из одного образа в другой: коммит блока в live-режиме (удаление снапшота) и зеркалирование диска в live-режиме (миграция хранилищ);
  • Команда мониторинга sendkey теперь доступна через QMP;
  • Поддержка мультимедийных инструкций процессора Loongson для платформы MIPS, а также инструкций MIPS32/64 ASE DSP;
  • В генератор кода TCG добавлена поддержка функциональности SMEP (Supervisor mode execution protection) и SMAP (Supervisor mode access prevention), доступных в новых процессорах компании Intel;
  • Поддержка новых моделей CPU: "Haswell" и "Opteron_G5";
  • Из реализации хост-режима удалена поддержка SPARCv7 и v8;
  • Поддержка одинарной точности чисел с плавающей запятой в Xtensa;
  • В протоколе SPICE обеспечена поддержка прозрачной live-миграции, подключения нескольких мониторов к одному устройству PCI, установки произвольного разрешения экрана и команд QXL. В процессе работы SPICE в режиме VGA, QEMU отныне отправляет SPICE-клиенту только изменённый на экране контент. Для обеспечения работы SPICE требуется установка spice-server 0.12 или более новой версии;
  • В утилите qemu-img появилась возможность вывода информации в формате JSON ("qemu-img info --output=json");
  • Для хостов под управлением Windows добавлена поддержка асинхронного дискового ввода/вывода;
  • Улучшена поддержка изоляции с использованием второго seccomp режима через libvirt;
  • Для KVM обеспечена поддержка назначения PCI-устройств в старом режиме, ранее используемом в qemu-kvm. В настоящее время qemu-kvm и QEMU не содержат значительных отличий, что позволяет безболезненно и в прозрачном режиме перейти с qemu-kvm на QEMU;
  • Добавлена поддержка использования QEMU для организации live-миграции доменов Xen;
  • Обеспечена поддержка сборки QEMU с использованием Clang;
  • Улучшена реализация встроенного TFTP-сервера, в который добавлена возможность передачи файлов, превышающих 32 Мб, добавлена опция для изменения размера блока и заметно улучшена производительность.

© OpenNet