Новая версия эмулятора QEMU 2.0
17 апреля 2014 года
Увидел свет релиз QEMU 2.0. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы, на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к нативной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM.
Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. Всего в разработке всех выпусков QEMU приняло участие более 400 авторов, которые подготовили около 25 тысяч изменений. При подготовке версии 2.0 внесено около 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.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.