Эмулятор QEMU: полное погружение в виртуальную среду

Qemu – кроссплатформенное приложение с открытым исходным кодом для эмуляции и виртуализации различных ОС. Позволяет запустить одну операционную систему внутри другой. При этом архитектуры процессора-носителя и целевого процессора могут быть различными. Еще одна отличительная особенность QEMU – возможность приостановки, сохранения или восстановления состояния виртуальной системы. Поддерживает архитектуры:
- х86 (32 и 64 битная архитектура);
- Alpha;
- ARM;
- ColdFire;
- CRISv2;
- MicroBlaze;
- MIPS (32 бит);
- PowerPC;
- SPARC (32 и 64 бит).
QEMU работает в двух режимах.
Режим пользования (user mode) – позволяет созданные на одном процессоре процессы Linux запускать на другом. Например, программы Alpha на архитектуре х86. Используется в разработке, кросс-компиляции и отладке.
Системный режим (system mode) – эмулирует систему полностью, все компоненты компьютера, включая процессор и остальные устройства. Применяется в случаях, если необходимо запустить без перезагрузки или отладки системного кода несколько операционных систем.
В приложении имеется модуль ядра Linux – kqemu, благодаря которому есть возможность напрямую передавать инструкции эмулируемой системы процессору хост-системы, что значительно ускоряет работу системы.
Еще одна фишка QEMU – динамический транслятор. Для обеспечения эмуляции он переводит инструкции гостевого процессора в центральный, разбивая ее на микрооперации. Данные микрооперации являются элементами С-кода, которые компилируются в объекты. Затем основной транслятор отображает целевые инструкции на микрооперации для динамической трансляции. Помимо эффективности, такой подход обеспечивает переносимость. Еще одна функция динамического транслятора – кэширование блоков кода с целью снижения накладных расходов транслятора.
Установка QEMU
Процесс установки программы довольно прост – ее можно скачать из официального репозитория. Для Debian команда будет выглядеть так
# apt-get install qemu-kvm qemuДля CentOS/RedHat
# yum install qemu-kvm qemuПодробно изучаем утилиту QEMU на курсе «L3-Virtualization»!