QEMU — программа, позволяющая эмулировать на персональном компьютере большинство из существующих платформ. Эмулятор представляет собой ПО с открытым исходным кодом, что значительно способствует ее активному развитию и появлению альтернативных версий. В отличие от аналогичных программ, QEMU содержит два режима эмуляции — полный и пользовательский. В первом случае программа создает автономную виртуальную машину с собственной основной и периферийной системами. Во втором режиме эмуляции QEMU запускает на одном процессоре Linux процессы, скомпилированные для другого процессора.
QEMU поддерживает два режима эмуляции: пользовательский режим [User-mode] и системный режим [System-mode]. Пользовательский режим эмуляции позволяет процессу, созданному на одном процессоре, работать на другом (выполняется динамический перевод инструкций для принимающего процессора и конвертация системных вызовов Linux). Системный режим эмуляции позволяет эмулировать систему целиком, включая процессор и разнообразную периферию.
При эмуляции кода для x86 на хост-системе с архитектурой x86 можно достичь эффективности, близкой к родной, с помощью так называемого акселератора QEMU. Он позволяет исполнять эмулируемый код непосредственно на центральном процессоре хоста (на Linux через модуль ядра).
Но что делает QEMU действительно интересным с технической точки зрения, так это его быстрый и компактный динамический транслятор [dynamic translator]. Динамический транслятор позволяет выполнять во время исполнения переводить инструкции целевого (гостевого) процессора в инструкции центрального процессора хоста для обеспечения эмуляции. Это может быть сделано методом грубой силы (просто заменяя инструкции одного процессора другими), но это не всегда легко сделать, а в некоторых случаях одна инструкция может потребовать нескольких инструкций или даже изменений в их порядке следования для транслируемой архитектуры.
QEMU обеспечивает динамическую трансляцию преобразованием целевой инструкции в микрооперации. Эти микрооперации представляют собой элементы С-кода, которые компилируются в объекты. Затем вступает в дело основной транслятор. Он отображает целевые инструкции на микрооперации для динамической трансляции. Такой подход не только эффективен, но и обеспечивает переносимость.
Динамический транслятор QEMU также кэширует блоки транслируемого кода для снижения накладных расходов транслятора. Когда блок целевого кода встречается впервые, он переводится и хранится в виде транслированного блока [translated block]. Кэш QEMU хранит недавно переведенные блоки в буфере объемом 16 МБ. QEMU может даже поддерживать самомодифицирующийся код, аннулируя транслированные блоки в кэше.
Поддерживаемые периферийные устройства
Использование QEMU в качестве эмулятора персонального компьютера обеспечивает поддержку разнообразных периферийных устройств. Естественно, сюда входят стандартные периферийные устройства - эмулятор аппаратного видеоадаптера (VGA), мыши и клавиатуры PS/2, интерфейс IDE для жестких дисков, интерфейс CD-ROM и эмуляция дисковода. Кроме того, QEMU имеет возможность эмуляции сетевых адаптеров NE2000 (PCI), последовательных портов, многочисленных звуковых плат и контроллера PCI Universal Host Controller Interface (UHCI) Universal Serial Bus (USB) (с виртуальным USB концентратором). Также поддерживается до 255 процессоров с поддержкой симметричной многопроцессорности (SMP).
Помимо стандартных PC и ISA PC (без шины PCI), QEMU может эмулировать и другие аппаратные платформы, не связанные с ПК, такие как базовые платы АРМ Versatile (с использованием 926E) и платы на основе Malta million instructions per second (MIPS). В настоящее время ведется работа по реализации поддержки ряда других платформ, включая Power Macintosh G3 (Blue & White) и Sun 4u.
QEMU - свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Включает в себя эмуляцию процессоров Intel x86 и устройств ввода-вывода. Может эмулировать 80386, 80486, Pentium, Pentium Pro, AMD64 и другие x86-совместимые процессоры; PowerPC, ARM, MIPS, SPARC, SPARC64, m68k — лишь частично.
Эмулируемые платформы
В режиме запуска отдельных программ (user emulation):
- x86
- ARM
- SPARC (32 бита)
- PowerPC
- MIPS
- m68k
В режиме запуска полноценной ОС:
- все выше перечисленные
- AMD64 (x86-64)
- EM64T.
Основные возможности QEMU:
- Полноценная поддержка процессоров 80386, 80486, Pentium, Pentium Pro, AMD64.
- Частичная поддержка процессоров PowerPC, ARM, MIPS, SPARC, SPARC64, m68k.
- Корректная работа с протоколом USB 3.0.
- Возможность сетевых подключений в режиме эмуляции.
- Адекватное воспроизведение звукового потока.
- Масштабная визуализация программы и наличие интуитивного интерфейса.
Внимание:
QEMU обладает множеством скрытых функций, реализовать которые можно путем тонкой настройки. Некоторые возможности необходимо включать уже на стадии инсталляции. Поэтому перед установкой настоятельно рекомендуется изучить документацию к данному программному обеспечению.
Системные требования
- Процессор с тактовой частотой 1500 MHz или более мощный
- Оперативная память 512 Мб или больше
- Видеокарта с видеопамятью объемом не менее 64 Мб или более мощный
- Свободное место на жёстком диске от 150 Мб
- Архитектура с разрядностью 32 бит или 64 бит (x86 или x64)
- Операционная система Windows XP, Windows Vista, Windows 7, Windows 8
|