The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

21.05.2013 11:37

Представлен релиз проекта 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.


  1. Главная ссылка к новости (http://lists.gnu.org/archive/h...)
  2. OpenNews: Доступна новая версия эмулятора QEMU 1.4.0
  3. OpenNews: Доступна новая версия эмулятора QEMU 1.3.0
  4. OpenNews: Новая значительная версия эмулятора QEMU 1.2.0
  5. OpenNews: В qemu-kvm 1.1 появилась экспериментальная поддержка USB 3.0
  6. OpenNews: На базе qemu-kvm обеспечена поддержка эмуляции UEFI SecureBoot
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/36977-qemu
Ключевые слова: qemu, virtual, security, emulation
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, mihalych (ok), 12:04, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто-нибудь знает, можно ли завести сабж на железке без аппаратной виртуализации? Очень нужно.
     
     
  • 2.2, Dron (ok), 12:10, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +10 +/
    QEMU существовал и раньше, чем появилась аппаратная виртуализация...
    Можно...
     
     
  • 3.4, mihalych (ok), 12:26, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > QEMU существовал и раньше, чем появилась аппаратная виртуализация...

    Когда-то собирал его (0.9 ЕМНИП). Там шёл отдельно модуль ядра. Всё работало без аппаратной виртуализации. Сейчас модуля нет, перешли на KVM/Xen, которые используют как раз аппаратную виртуализацию, или я ошибаюсь? Спасибо.

     
     
  • 4.6, Dron (ok), 12:30, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> QEMU существовал и раньше, чем появилась аппаратная виртуализация...
    > Когда-то собирал его (0.9 ЕМНИП). Там шёл отдельно модуль ядра. Всё работало
    > без аппаратной виртуализации. Сейчас модуля нет, перешли на KVM/Xen, которые используют
    > как раз аппаратную виртуализацию, или я ошибаюсь? Спасибо.

    Версия 1.4
    Запускаю qemu
    пишет - kvm support: disabled

    Там в свое время были какие-то переименования модулей... Может это тебя смутило...

     
  • 4.9, Andrey Mitrofanov (?), 12:33, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> QEMU существовал и раньше, чем появилась аппаратная виртуализация...
    > Когда-то собирал его (0.9 ЕМНИП). Там шёл отдельно модуль ядра. Всё работало
    > без аппаратной виртуализации. Сейчас модуля нет, перешли на KVM/Xen, которые используют
    > как раз аппаратную виртуализацию, или я ошибаюсь? Спасибо.

    Модуль был до-KVM-ным _необязательным_ ускорителем полного софтверного эмулятора QEMU.

    После прибытия KVM (или ещё до) и в связи с bit-rott-ом несвободного кода того ускорителя он, _ускоритель_, был выкинут автором.

    А полный софтверный эмулятор QEMU продолжает успешно тормозить, я полагаю. Не пробовал давно.

     
     
  • 5.36, mihalych (ok), 22:51, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Модуль был до-KVM-ным
    > _необязательным_ ускорителем
    > полного софтверного эмулятора QEMU.

    Всё верно говоришь, сначала kqemu проприетарным был, затем его вроде бы под свободной лицензией выложили, а затем вовсе выпилили. И то, что он необязательным был, помню, пробовал с загруженным модулем и без. В общем перешёл на vbox. Но сейчас может пригодится особенность qemu запускать бинари с других платформ (arm'ы).

     
  • 4.10, Прохожий (??), 12:33, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    qemu - это именно эмулятор архитектуры процессора. Т.е. он программно эмулирует архитектуру выбранной системы, т.е., к примеру на x86 (x86_64) системе вы можете запустить qemu для эмуляции ARM, при этом любой из выбранных процессоров будет эмулироваться, т.е. программно обсчитываться все инструкции и прочее.

    Если же вы активируете KVM, как следствие ваш процессор поддерживает виртуализацию, то код, выполняемый в виртуальной машину выполняется на реальном процессоре, естественно архитектура реального процессора должна поддерживать выполнение кода той архитектуры, который вы запустили в виртуальной машине с задействованием KVM.

     
     
  • 5.17, pavlinux (ok), 14:51, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Пеши есчо!
     
     
  • 6.21, Прохожий (??), 15:47, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Почитай словарь Даля и Розенталя, а то что-то тебе поплохело совсем.
     
     
  • 7.39, pavlinux (ok), 03:06, 22/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Почитай словарь Даля и Розенталя, а то что-то тебе поплохело совсем.

    Да уж,... Даля & Розенталя во гробу ворочаются от слова "поплохело".

     
  • 5.20, Батаник (?), 15:26, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет.
     
     
  • 6.22, Прохожий (??), 15:47, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет.

    Что нет-то ?

     
     
  • 7.33, arisu (ok), 19:30, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Нет.
    > Что нет-то ?

    мозгов у него нет. спешит нам об этом рассказать.

     
  • 5.28, Аноним (-), 16:54, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > qemu - это именно эмулятор архитектуры процессора. Т.е. он программно эмулирует архитектуру
    > выбранной системы, т.е., к примеру на x86 (x86_64) системе вы можете
    > запустить qemu для эмуляции ARM, при этом любой из выбранных процессоров
    > будет эмулироваться, т.е. программно обсчитываться все инструкции и прочее.
    > Если же вы активируете KVM, как следствие ваш процессор поддерживает виртуализацию, то
    > код, выполняемый в виртуальной машину выполняется на реальном процессоре, естественно
    > архитектура реального процессора должна поддерживать выполнение кода той архитектуры,
    > который вы запустили в виртуальной машине с задействованием KVM.

    Просто хочу согласится со словами автора, а то людей похожих на авторов предыдущих ответов станет больше.

    Все неверующим надо почитать хотя бы вики. KVM, Xen, VirtualBox (гипервизоры) все в некоторой степени заимствуют функционал у QEMU. Отдельно от гипервизоров QEMU -- это чистый эмулятор, а упомянутый в новости TCG и есть рекомпилятор кода с одной архитектуры на другую. То-есть если у вас имеется мощный Power8 на нем уже можно использовать программы которым нужно SSE4.2 и по скорости он будет как Core2Duo (чистейшая спекулящия :P).

     
     
  • 6.34, arisu (ok), 19:34, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    небольшое уточнение: tcg — это таки часть рекомпилятора. нечто вроде «унифицированной системы команд» + кодогенератор. есть ещё (небольшая, но есть же) часть, которая преобразует систему команд процессора в систему команд tcg.

    вообще, сам tcg — интересная штука. в принципе, его можно выдернуть из qemu и использовать во всяких интересных штуках, где надо генерить код для разных платформ.

     
     
  • 7.37, phil (??), 02:35, 22/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    вот одна из этих интересных штук: http://elinux.org/CELF_Project_Proposal/Combine_tcg_with_tcc
     
     
  • 8.38, arisu (ok), 02:43, 22/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    да, в списке рассылки по tcc об этом поговаривают впрочем, в виду разговоров о ... текст свёрнут, показать
     
  • 2.5, Аноним (-), 12:30, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, но тормозить будет шопипец
     
     
  • 3.7, Dron (ok), 12:31, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Конечно, но тормозить будет шопипец

    Не так уж сильно... Это не программная эмуляция всеравно...

    PS: bochs вообще уже умер? или еще шевелится?

     
     
  • 4.11, Аноним (-), 12:35, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    На Линуксе возможно и не программная :) (честно не в курсе), а вот в DragonFlyBSD (где KVM, конечно же, нету), я как-то запустил Crux Linux в qemu-1.4.0- тормозило от души.
     
  • 3.19, Khariton (?), 15:13, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Конечно, но тормозить будет шопипец

    шо есть то есть.
    я в 64-битке без апп.вирт. могу запускать в вирте только 32битн.ОС. 64-битн. только через QEMU. Оно то запускается, но еле ползает, особенно старт системы. Но если посмотреть потестить - годится...

     
  • 3.24, АнониМ (?), 16:02, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Терпимо.
    гонял winXP под qemu для компиляции проектов под vss 6.0 - в консоле терпимо компиляло.
     
  • 2.29, anonymous (??), 17:25, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Рецепт прост:
    Взять ядро, на котором ещё собирается kqemu (например 2.6.32).
    Взять qemu, из которого ещё не выпилили kqemu (последний, если не ошибаюсь, 0.10.6).
    Взять сам kqemu.
    Собрать и запустить. Малость подглюкивает, работаем медленнее kvm, но если сильно припичёт, можно использовать.
     

  • 1.14, dalco (ok), 13:36, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уважаемые, может подскажите быстрый путь добавить SLIC-таблицу в seabios, идущий в комплекте с qemu?

    Задолбало уже накладывать ручками древний патч и ребейсить его к актуальной версии.

     
     
  • 2.16, commiethebeastie (ok), 14:05, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    loader be daz
     

  • 1.15, commiethebeastie (ok), 14:05, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Кстати видеокарты nvidia все поддерживаются как мы поняли. Притом не просто поддерживаются, а даже инициализацию seabios видно.
     
  • 1.18, Игорь (??), 15:07, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Может кто-то сказать, есть ли продвижение в эмуляции 64-битных процессоров SPARC, наподобие того, что установлены в сервере SPARC M3000?
     
     
  • 2.40, pavlinux (ok), 03:13, 22/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Может кто-то сказать, есть ли продвижение в эмуляции 64-битных процессоров SPARC

    sparc64 v9 через жопу, но эмулирует, правда мне так и не удалось грузануть NetBSD sparc64

    > наподобие того, что установлены в сервере SPARC M3000?

    Угу, 16 ядер по 8 потоков... :)  

     

  • 1.23, Аноним (-), 15:52, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    QEMU всегда слишком медленно работал.
     
     
  • 2.25, commiethebeastie (ok), 16:35, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да анонимус, попробуй kvm загрузить.
     
     
  • 3.31, Аноним (-), 18:10, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    KVM? Разве он пойдет на моем Intel 80486?
     

  • 1.26, zburguy (ok), 16:46, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Очень, очень крутая штука. Постоянно в работе использую в связке с KVM.
    Низкий поклон авторам - могучая штука, которой нет полноценных аналогов!!!
     
  • 1.27, ua9oas (ok), 16:47, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Сначала стандартные вопросы: а сколько это стоит? Как много у вещи сей пользователей? И что такие юзеры (какая статистика?) на ней делают, имея ее? (что на ней делать особенно хорошо?)

    Я по-прежнему иногда нахожу выкинутые дискеты, и даже кассеты с софтом (и мой плюшкинизм профессиональный, а не шизовый). Обнаружив и подобрав такой носитель (так "поплюшкииничав")- можно ли определить, а к какой аппаратной архитектуре относилось то, что там когда-то записали? (а еще и запустить? (а возможно ли еще и запустить то, что есть на картриджах "Денди"? (а тогда как собрать переходник с таких картриджей на USB?)))
    Если гостевая винда будет чем заражена, то тогда есть ли риск, что такое вредоносное ПО оттуда "вырвется", и чем навредит? (например я что-то читал, что некоторые вирусы биосу "шею сворачивают" (а в каких случаях необходимый виндовый софт так запускать лучше, чем из под Wine?))

     
     
  • 2.32, NuclearShaman (ok), 18:23, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Сначала стандартные вопросы: а сколько это стоит?

    Это стоит столько, сколько стоит время человека установившего, настроившего и научившего этим пользоваться. Этим человеком можете быть Вы сами. =)

    > Как много у вещи сей пользователей?

    Пользователей много, но точных цифр не знаю. Насколько я знаю, всегда, когда речь идет про использование KVM - это частный случай использования QEMU, а KVM достаточно широко распространен.

    > И что такие юзеры (какая статистика?) на ней делают, имея ее?

    Все что заблагорассудится. =) Например: организуют хостинг виртуальных серверов (hetzner.de, flops.ru ...), или отлаживают приложения для другой архитектуры (android-sdk)... ну или запускают посмотреть всяческий не вызывающий доверия код...

    > (что на ней делать особенно хорошо?)

    Мне она особенно нравится, как система виртуализации, в связке с libvirt.

    > Если гостевая винда будет чем заражена, то тогда есть ли риск, что такое вредоносное ПО оттуда "вырвется", и чем навредит? (например я что-то читал, что некоторые вирусы биосу "шею сворачивают" (а в каких случаях необходимый виндовый софт так запускать лучше, чем из под Wine?))

    Если гость изолирован в отдельной виртуальной сети, то риск минимален, только если зловред будет специально обучен врываться из QEMU, например: через некую незакрытую уязвимость в гипервизоре.

    > (а в каких случаях необходимый виндовый софт так запускать лучше, чем из под Wine?))

    Wine вообще не песочница, и не обеспечивает изоляции приложения - он для этого не задуман. Его цель - обеспечить возможность запуска, но приложение легко, штатными средствами, может получить доступ к основной системе с правами пользователя от которого запущен Wine.

     
     
  • 3.35, arisu (ok), 19:38, 21/05/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    не надо ему отвечать. пожалуйста.
     

  • 1.30, Аноним (-), 17:26, 21/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >задействован вызов poll вместо select

    Ого, я думал от него все давно избавились.

     
     
  • 2.41, anonymous (??), 09:37, 22/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>задействован вызов poll вместо select
    > Ого, я думал от него все давно избавились.

    А чем poll/epoll лучше select? С Си знаком поверхностно, но во многих руководствах видел именно использование select(). Что лучше?

     

  • 1.42, Аноним (-), 10:29, 22/05/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А реально на нем запустить android или linux для arm? Кто-нибудь пробовал?
     
     
  • 2.43, Andrey Mitrofanov (?), 14:11, 22/05/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А реально на нем запустить android или linux для arm? Кто-нибудь пробовал?

    В Гугль послать или посопротивляешься?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру