The OpenNET Project / Index page

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

Выпуск эмулятора QEMU 6.0

30.04.2021 12:49

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

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

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

  • Эмулятор контроллеров NVMe приведён к соответствию со спецификацией NVMe 1.4 и снабжён экспериментальной поддержкой зонированных пространств имён, multipath I/O и сквозного шифрования данных на накопителе.
  • Добавлены экспериментальные опции "-machine x-remote" и "-device x-pci-proxy-dev" для выноса эмуляции устройств во внешние процессы. В данном режиме пока поддерживается только эмуляция SCSI-адаптера lsi53c895.
  • Добавлена экспериментальная поддержка создания снапшотов содержимого ОЗУ.
  • Добавлен FUSE-модуль для экспорта блочных устройств, позволяющий примонтировать срез состояния любого блочного устройства, используемого в гостевой системе. Экспорт осуществляется через QMP-команду block-export-add или через опцию "--export" в утилите qemu-storage-daemon.
  • В эмулятор ARM добавлена поддержка архитектуры ARMv8.1-M 'Helium' и процессоров Cortex-M55, а также расширенных инструкций ARMv8.4 TTST, SEL2 и DIT. Добавлена поддержка ARM-плат mps3-an524 и mps3-an547, а также. Для плат xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx и sabrelite реализована дополнительная эмуляция устройств.
  • Для ARM в режимах эмуляции на уровне системы и пользовательского окружения реализована поддержка расширения ARMv8.5 MTE (MemTag, Memory Tagging Extension), позволяющего привязать теги к каждой операции выделения памяти и организовать при доступе к памяти проверку указателя, который должен быть связан с корректным тегом. Расширение может применяться для блокирования эксплуатации уязвимостей, вызванных обращением к уже освобождённым блокам памяти, переполнениями буфера, обращениями до инициализации и использованием вне текущего контекста.
  • В эмуляторе архитектуры 68k добавлена поддержка нового типа эмулируемых машин "virt", использующих для оптимизации производительности устройства virtio.
  • В эмуляторе архитектуры x86 добавлена возможность применения технологии AMD SEV-ES (Secure Encrypted Virtualization) для шифрования регистров процессора, используемых в гостевой системе, что делает содержимое регистров недоступным для хост-окружения, если гостевая система явно не предоставит к ним доступ.
  • В классическом генераторе кода TCG (Tiny Code Generator) при эмуляции систем x86 реализована поддержка механизма PKS (Protection Keys Supervisor), который можно применять для защиты доступа к привилегированным страницам памяти.
  • В эмуляторе архитектуры MIPS добавлен новый тип эмулируемых машин "virt" c поддержкой китайских процессоров Loongson-3.
  • В эмуляторе архитектуры PowerPC для эмулируемых машин "powernv" добавлена поддержка внешних BMC-контроллеров. Для эмулируемых машин pseries обеспечено информирование о сбоях при попытке горячего извлечения памяти и CPU.
  • Добавлена поддержка эмуляции процессоров Qualcomm Hexagon c DSP.
  • В классическом генераторе кода TCG (Tiny Code Generator) реализована поддержка хост-окружений macOS на системах с новым ARM-чипом Apple M1.
  • В эмуляторе архитектуры RISC-V для плат Microchip PolarFire реализована поддержка QSPI NOR flash.
  • В эмуляторе Tricore появилась поддержка новой модели плат TriBoard, эмулирующей SoC Infineon TC27x.
  • В эмуляторе ACPI предоставлена возможность назначения сетевым адаптерам в гостевых системах имён, независящих от порядка подключения к шине PCI.
  • В virtiofs добавлена поддержка опции FUSE_KILLPRIV_V2 для повышения производительности гостевых систем.
  • В VNC добавлена поддержка прозрачности курсора и поддержка масштабирования разрешения экрана в virtio-vga, отталкивающаяся от размера окна.
  • В QMP (QEMU Machine Protocol) добавлена поддержка асинхронного параллельного доступа при выполнении задач резервного копирования.
  • В эмуляторе USB добавлена возможность сохранения трафика, образующегося при работе с USB-устройствами, в отдельный pcap-файл для последующего инспектирования в Wireshark.
  • Добавлены новые QMP-команды load-snapshot, save-snapshot и delete-snapshot для управления снапшотами qcow2.
  • В virtiofs устранены уязвимости CVE-2020-35517 и CVE-2021-20263. Первая проблема позволяет получить доступ к хост-окружению из гостевой системы через создание привилегированным пользователем в гостевой системе специального файла устройств в каталоге, совместно используемом c хост-окружением. Вторая проблема вызвана ошибкой при обработке расширенных атрибутов в опции 'xattrmap' и может привести к игнорированию сброса прав на запись и повышению привилегий внутри гостевой системы.


  1. Главная ссылка к новости (https://lists.nongnu.org/archi...)
  2. OpenNews: Выпуск эмулятора QEMU 5.2
  3. OpenNews: Опасные уязвимости в QEMU, Node.js, Grafana и Android
  4. OpenNews: Выпуск эмулятора QEMU 5.0
  5. OpenNews: На соревновании Tianfu Cup продемонстрированы 0-day уязвимости в Chrome и qemu-kvm
  6. OpenNews: Уязвимость, позволяющая выйти из изолированного окружения QEMU
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55055-qemu
Ключевые слова: qemu, virtual, emulator
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ryoken (ok), 13:00, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Предлагаю замену: "на системах с новым ARM-чипом Apple M1" -> "на системах с SoC Apple M1".
     
  • 1.2, Аноним (2), 13:05, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучший!
     
     
  • 2.30, Anonim (??), 20:10, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    да, ты умничка!
     

  • 1.3, Zenitur (ok), 13:18, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    > Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86.

    Я первый раз встретил упоминание QEMU в статье Криса Касперски о x86_64. Когда архитектура была нова, а у него ещё не было этого процессора, он запустил QEMU и попробовал x86_64 на нём. Второй раз я встретил упоминание QEMU в ностальгическом видео на ютюбе, где автор вспоминал, как году в 2003 при помощи QEMU ломали винду, имитируя сервер активации Windows. Ну а третий раз я встретил QEMU в своей openSUSE 12.1, когда я узнал, что можно пробрасывать видеокарту в гостевую винду. В системе уже были программы для виртуализации, и я обнаружил, что виртуалка называется не Xen, а именно QEMU.

    Здоровья проекту и успехов.

     
     
  • 2.34, Ordu (ok), 21:20, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хм. Как-то пассивно выглядит. Все три столкновения произошли не по твоей инициативе. Ты мужик или нет? Столкновения с чем-либо должны происходить потому, что ты в активном поиске столкновения. История должна быть типа такого: мне потребовалось сделать X и я начал искать способов, перебрал несколько, и выбрал qemu.

    Я впервые столкнулся с qemu году эдак в 2005, когда мне на рабочем компе не удавалось обойтись без венды, а я хотел линукса. Я тогда венду запускал в qemu, работая преимущественно под линём. Венда тормозила, конечно, никакого kqemu не было, но это было лучше, чем гонять линуксовый софт под cygwin. (Хотя не... я ж тогда как раз разочаровался в дебиане, потому как мне пришлось пересобирать ядро и qemu, а дебьян не позволял встроить сборку двух пакетов из сорцов в обновление системы, так чтоб apt-get автоматически скачивал бы мне сорцы и предлагал бы собрать, после того как он обновит все депендансы. И по-моему всё происходило как раз из-за kqemu)

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

     

  • 1.4, Аноним (4), 13:26, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    >В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM

    Если это так, то почему он тогда умудряется работать хуже ритуалбокса? Сколько завожу его, то грузит всё медленнее, то графика лагает, хотя KVM включал.. Я может не так что делаю?

     
     
  • 2.5, DeerFriend (?), 13:38, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Да.
     
  • 2.6, Sacra (?), 13:42, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > то графика лагает, хотя KVM включал
    > Я может не так что делаю

    Угу, кое что. Не понимаешь зачем нужен KVM как минимум.

     
     
  • 3.45, Аноним (45), 15:28, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А нормально объяснить тебе религия не позволяет? Я спросил, что я не так делаю, а не для чего KVM нужен, который VurtalBox почему-то заводит нормально
     
  • 2.28, Аноним (28), 18:29, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    По умолчанию qemu-kvm работает довольно плохо, но вот если удариться в тонкости конфигурирования - вполне можно получить 97% от хоста. Но это займет очень, очень много времени и сил!
     
     
  • 3.32, PnD (??), 20:53, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    5…10% пенальти на более-менее современных x86_64 железках.
    Это когда несколько десятков ВМ делят несколько десятков ядер ЦП и несколько сотен ГБ ОЗУ хост-системы.
    Хуже сделать легко, "надавив" на сеть/диски. Лучше — ?

    * Для тех кто в теме, типовая нагрузка у меня — "когерентная".

     
     
  • 4.44, Sw00p aka Jerom (?), 15:01, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    AHV на базе quemu-kvm
     
  • 2.54, Антонимно (?), 19:24, 06/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > почему он тогда умудряется работать хуже ритуалбокса
    > то грузит всё медленнее, то графика лагает,

    Погаси Виртуалбокс модули ядра и т.д. Всё вернётся в норм. Дерутся они.

     
  • 2.55, Аноним (55), 05:52, 07/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > хотя KVM включал.. Я может не так что делаю?

    GPU попробуй хотя-бы virtio, чтоли (2D only, ютуб в 1080p позырить точно хватает).  

     

  • 1.7, Аноним (7), 14:12, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Лучше создать универсальную архитектуру для всего и не париться с эмуляторами.
     
     
  • 2.10, заминированный тапок (ok), 14:24, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    с нетерпением ждём твоих разработок

    вангую либо это будет:
    * умные часы с избыточной производительностью размером и с комбайн на архитектуре, схожей с x86_64
    * либо ПК с производительностью графики как у мобилки на архитектуре, схожей с ARM
    * либо просто ничего

     
     
  • 3.29, richman1000000 (ok), 19:36, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >с нетерпением ждём твоих разработок

    не надо, не надо мотивировать его на плохие идеи. Люди и так много де....ьма уже придумали

     
  • 3.41, Аноним (41), 11:13, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ой, ты ж Эльбрус описал.
     
  • 2.11, муу (?), 14:38, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://xkcd.com/927/
     
  • 2.13, Аноним (13), 14:48, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Но тогда как чесать собственное величие рисквешникам?
     
     
  • 3.18, Аноним (18), 16:19, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так RISC-V и прнинять за универсальную архитектуру для всего. Наверное, что-то проще уже трудно придумать.
     
     
  • 4.24, Аноним (24), 17:01, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как там с производительностью? Пока что эльбрусы жизнеспособнее и конкурентоспособнее (особенно топовая модель -- уже выпустили?).
     
  • 3.40, Fractal cucumber (ok), 11:05, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Че за "рисквешники"? Архитектура процессора называется risk-five, если об этом.
     
  • 2.31, Аноним (31), 20:34, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https://xkcd.com/927/
     

  • 1.12, Аноним (12), 14:43, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Аппаратное ускорение графики в виртуалки еще не завезли?
     
     
  • 2.14, Аноним (-), 15:00, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Аппаратное ускорение графики в виртуалки еще не завезли?

    Virtgl отлично работает

     
     
  • 3.17, Аноним (18), 16:16, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Какие видяхи поддерживаются?
     
     
  • 4.23, Аноним (24), 16:59, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Intel. Может быть nvidia.
     
  • 4.50, Аноним (-), 14:39, 03/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У меня отлично работает на Intel и AMD. Само собой гости - Gnu/Linux. В проприетарных поделках всё очевидно печально. (либо я чего-то не знаю и есть способ кроме интелоавского vGPU или проброса GPU с хоста)
     

  • 1.15, Аноним (15), 16:13, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Звук терщит и в этой версии.
     
  • 1.16, 0x501D (?), 16:14, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    /* Добавлены новые QMP-команды load-snapshot, save-snapshot и delete-snapshot для управления снапшотами qcow2. */
    Ну наконец-то, 3 года (или больше) приходилось самому патчить, а в апстрим не принимали
     
     
  • 2.21, 0x501D (?), 16:44, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    QMP: {"error": {"class": "CommandNotFound", "desc": "The command save-snapshot has not been found"}}

    Нас обманули - расходимся...

     
     
  • 3.22, 0x501D (?), 16:55, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и в исходниках нет этого кода, кругом обман :D
     
     
  • 4.25, 0x501D (?), 17:33, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Разгадка оказалась проста: перепутали написание команд в ченжлоге:
    migration: introduce snapshot-{save, load, delete} QMP commands
     

  • 1.19, shprotru (ok), 16:25, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    неужели osx big sur стартанёт? было бы здорово если б x86 стартанула, у меня что-то это ни в qemu, ни в vmware на линуксе не удалось. Проблема именно с этой версией osx
     
     
  • 2.26, Lex (??), 17:37, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Самое простое ( при поддерживаемом железе ) - поставить хакинтош с опенкор
     
     
  • 3.33, SinoptikUF (?), 20:54, 30/04/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Самое лучшее и элегантное решение - купить новый Mac.
     
     
  • 4.39, Аноним (39), 10:29, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Продать себя в рабство ради покупки макета компьютера?
     
  • 4.47, Аноним (47), 19:04, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    єто самое тупое решение, ну или решение от "маковода"... кому какое название больше нравится)
     
  • 4.48, Lex (??), 13:34, 02/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Самое лучшее и элегантное решение - купить новый Mac.

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

    Чего только стОит посредственная оперативка:
    8 Гб DDR4 2,66 / 10 тыс руб

     
     
  • 5.49, n00by (ok), 16:57, 02/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Самое лучшее и элегантное решение - купить новый Mac.
    > Нет, ведь это не позволит просто взять и собрать себе комп по
    > сходной цене и с нужными параметрами - только выбирать из того,
    > что яблоко предлагает..
    > Чего только стОит посредственная оперативка:
    > 8 Гб DDR4 2,66 / 10 тыс руб

    Самое смешное в этом раскладе, что я как-то покупал DDR3 с наклейкой "специально для Мак" за полцены от обычной DDR3. Магазин её уценил, поскольку мало кто брал - в описании сказано "на обычном железе не работает" (на самом деле работает).

     
  • 2.53, Ted (?), 09:18, 04/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У меня именно big sur заработал даже на 5.2 с этими скриптами: https://github.com/kholia/OSX-KVM
     

  • 1.20, iPony129412 (?), 16:32, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это кто пробовал?
    https://mac.getutm.app/
    Вроде на Qemu же?
     
  • 1.27, Аноним (28), 18:27, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ох, даже и не знаю. Пятая ветка заметно тормозная с вложенной виртуализацией... четвертая пока что лучшая.
     
     
  • 2.43, anonymous (??), 13:25, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы какую-то бнссмыслецу сказали. Как вы измеряете производительность? И какие примерно сиделки вы получили на 4ой и 5ой ветках?
     
     
  • 3.46, Аноним (46), 16:26, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Признаться, сам ничего не понимаю. Под Pop!OS Cosmic c 5 веткой полный порядок, а в убунте 21.04 все очень плохо. Проверял в cpu-bound игре 58 против 40 фпс в Windows 10 20H2 c WSL2 - не особо жалую синтетику. Фс, набор твиков в sysctl(планировщик) и конфиг виртуальной машины - набор один и тот же. Может вы сможете хоть что-то прояснить?
     

  • 1.35, BrainFucker (ok), 21:55, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А ARM андроид он запускать умеет без установки в систему каких-то дополонительных специальных модулей ядра как это требует Anbox и тому подобное? И без всяких snap и flatpak.
     
  • 1.36, Аноним (36), 22:13, 30/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Просветите чем эмулятор от гипервизора отличаются и как они связаны?
     
     
  • 2.37, Аноним (13), 02:28, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    тутошняя аудитория способна тебе втирать только про крутой раст.
     
  • 2.38, n00by (ok), 08:13, 01/05/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Имеется программа для ARM и процессор AMD64. Они не совместимы. Программа-эмулятор читает из программы для ARM одну команду для ARM и вместо неё выполняет какие-то похожие для AMD64. Это медленно, зато работает.

    Имеется Android x86 и процессор AMD64. Такой Android можно запустить на AMD64 непосредственно, но там уже запущена другая ОС (Linux). Блок процессора "Гипервизор" делает вид, что другой ОС нет, железо "голое". Это работает быстро, но не всегда возможно.

    Что бы пользователь не парился вопросом "что на чём запускать", оба эти режима объединили в QEMU, по возможности используется быстрый.

     
     
  • 3.51, Аноним (13), 23:25, 03/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Android x86 и процессор AMD64 ... Это работает быстро

    Совсем не быстро. Жутко тормозит. Всё еле шевелится, даже если выделишь 4 ядра и гигабайты памяти.

     
     
  • 4.52, n00by (ok), 08:23, 04/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Android x86 и процессор AMD64 ... Это работает быстро
    > Совсем не быстро. Жутко тормозит. Всё еле шевелится, даже если выделишь 4
    > ядра и гигабайты памяти.

    Вы явно что-то не так делаете. Если речь про неудачный опыт с QEMU, то Android-x86 следует запускать штатным скриптом из rpm пакета и убедиться, что отрабатывает именно ветка с -vga virtio. ОЗУ достаточно и 2 Гб.

     
  • 2.56, Аноним (56), 06:18, 07/05/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Под гипервизором обычно понимают программу уровнем выше ядра Если ядро - supe... большой текст свёрнут, показать
     

  • 1.42, Анонин (?), 11:19, 01/05/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Теперь точно накатим максимальную
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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