Новая версия эмулятора QEMU 2.0
Увидел свет релиз QEMU 2.0. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM. Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. Всего в разработке всех выпусков QEMU приняло участие более 400 авторов, которые подготовили около 25 тысяч изменений. При подготовке версии 1.7 внесено около 2500 изменений от 179 разработчиков.
Значительная смена нумерации версии связана с внесением изменений, нарушающих обратную совместимость и меняющих некоторые значения по умолчанию. В частности, изменены наименования шин, указываемые через опцию »-device bus=…». Кроме того, начиная с версии QEMU 2.1 директивы файла конфигурации «acpi», «boot-opts» и «smp-opts» будут приведены к форме, совпадающей с наименованием опций командной строки («acpitable», «boot», «smp»).
Ключевые улучшения, добавленные в QEMU 2.0:
Обеспечена возможность сборки блочных драйверов (curl, iscsi, rbd, ssh, glusterfs) в форме разделяемых библиотек (»--enable-modules»); Начальная поддержка использования KVM на системах с архитектурой AArch64; Поддержка всех инструкций 64-разрядного режима ARMV8, за исключением криптографических расширений и опциональной поддержки CRC; Поддержка эмуляции AArch64 в пространстве пользователя; В классический генератор кода TCG (Tiny Code Generator) добавлена поддержка инструкций 32-разрядного режима ARMv8; Добавлена поддержка прямого доступа к разделам NFSv3 из пространства пользователя при помощи библиотеки libnfs; Внесены улучшения в оптимизатор TCG (Tiny Code Generator), которые позволили добиться генерации более быстрого кода; Добавлена опция »-cpu hv-time» (работает только с KVM и ядром Linux 3.14) с реализацией эталонных счётчиков времени Hyper-V, использование которых позволяет увеличить производительность работы гостевых систем с Windows при выполнении приложений, активно использующих вычисления с плавающей запятой или инструкции SIMD; В пользовательском интерфейсе на базе GTK добавлена поддержка работы на хостах с Windows, данный интерфейс теперь предлагается в Windows по умолчанию; В графическом интерфейсе обеспечена поддержка SDL 2.0; Поддержка плат на базе процессора AllWinner a10 (»-M cubieboard») и платы Canon PowerShot A1100 DIGIC (»-M canon-a1100»); При запуске с использованием TCG обеспечена поддержка инструкций POWER Altivec 2.07 и VSX; Поддержка выбора последовательности загрузки при эмуляции pSeries; Для x86-систем Q35 добавлена поддержка горячего подключения CPU; Для BSD-систем добавлен новый сетевой бэкенд «netmap»; Генерируемые QEMU c таблицы ACPI теперь могут использоваться в прошивках OVMF; Для Xen обеспечена поддержка проброса PCI-устройств с ПЗУ; В реализации USB-контроллера XHCI добавлена поддержка ждущего режима; Добавлен новый управляющий интерфейс для горячего подключения CPU и virtio-rng; Увеличена надёжность live-миграции при использовании образов в формате QCOW2; Добавлена поддержка слияния live-снапшотов; В бэкенды iSCSI и Gluster добавлена поддержка слияния снапшотов; Экспериментальная поддержка многопоточной модели M: N в virtio-blk; Обеспечена поддержка работы на накопителях, требующих выравнивания буферов по границе 4K; Поддержка трассировки QEMU с использованием LTTng 2.x.
© OpenNet