QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ.

Включает в себя эмуляцию процессоров Intel x86 и устройств ввода-вывода. Может эмулировать 80386, 80486, Pentium, Pentium Pro, AMD64 и другие x86-совместимые процессоры; ARM, MIPS, RISC-V, PowerPC, SPARC, SPARC64 и частично m68k.

Работает на Syllable, FreeBSD, OpenBSD, FreeDOS, Linux, Windows 9x, Windows 2000, Mac OS X, QNX, Android и др.

Автор программы — французский программист Фабрис Беллар (), создатель популярной библиотеки libavcodec, которую используют такие известные программы, как FFmpeg, ffdshow, MPlayer, VideoLAN и др.

Помимо эмуляции, поддерживает технологии аппаратной виртуализации (Intel VT и AMD SVM) на x86-совместимых процессорах Intel и AMD. Первоначально разработка велась в рамках проекта Linux KVM, в котором, помимо собственно KVM (поддержки технологий аппаратной виртуализации x86-совместимых процессоров на уровне ядра Linux), разрабатывались патчи для QEMU, позволяющие QEMU использовать функциональность KVM. Впоследствии патчи были объединены с основной веткой программы.

Скорость работы Программная эмуляция значительно замедляет работу виртуальной машины. Изначально предлагалось два способа значительно ускорить работу при эмуляции той же архитектуры, приблизив её к скорости основной системы — KQEMU и QVM86. Позже был интегрирован KVM — механизм для использования аппаратной поддержки виртуализации.

KQEMU Отличается очень быстрой эмуляцией при использовании специального модуля, названного KQEMU (первоначально модуль KQEMU имел проприетарную лицензию, в настоящее время лицензирован под GNU GPL). На данный момент стабильно работает только в Linux 2.4 — 2.6, есть экспериментальная поддержка Microsoft Windows и FreeBSD. Начиная с версии 0.12.0 QEMU не поддерживает KQEMU.

QVM86 QVM86 имеет тот же самый принцип работы; он просто был заменой KQEMU в то время, когда исходные коды KQEMU не были открыты. Разработка QVM86 прекратилась в 2007 году.

KVM Для достижения скорости работы виртуализованной системы, сравнимой с работой на настоящем аппаратном обеспечении, qemu может использовать аппаратные возможности по виртуализации современных процессоров. Для этого применяется гипервизор KVM (или Xen).

Дополнительно, для ускорения работы с реальными картами расширения PCI / PCIe могут применяться технологии виртуализации пространства ввода-вывода (IOMMU) и передача доступа к реальному устройству внутрь виртуальной машины (если компьютер поддерживает Intel VT-d или AMD-Vi).

Эмулируемые платформы

В режиме запуска отдельных программ (user emulation): x86 ARM SPARC (32 бита) PowerPC MIPS m68k RISC-V

В режиме запуска полноценной ОС: все вышеперечисленные AMD64 (x86-64) EM64T

Платформы, на которых QEMU выполняется

Полноценно: x86 x86-64 PowerPC

Поддержка тестируется: DEC Alpha SPARC (32 бита) ARM S390

Минимальная поддержка, только в текущей версии из CVS: SPARC64 IA-64 — Itanium m68k e2k

Использование Запуск Live CD из ISO-образа. qemu -m 512 -cdrom /путь/к_iso-образу/example.iso -boot d

Примечания

Ссылки

Официальный сайт Qemu Qemu на CITKIT.ru Статья о Qemu на IBMdeveloperWorks® Книга о Qemu на OpenNET.ru

Категория:X86-эмуляторы Категория:Эмуляторы для Windows Категория:Виртуальные машины Категория:Свободные эмуляторы Категория:Свободное программное обеспечение, написанное на Си Категория:Программное обеспечение для Android