QEMU (Quick Emulator)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:25, 14 января 2019.
QEMU (Quick Emulator)
Qemu logo.svg.png
Qemu linux.png
Бесплатная ОС ReactOS запущенная в QEMU, которая работает в ОС Linux
Создатели: Фабрик Беллар
Разработчики: QEMU team:
Peter Maydell, et al.
Постоянный выпуск: 3.1.0-rc4 (Dec 4,2018)
Написана на: C
Операционная система: Linux, Microsoft Windows, Mac OS X и другие платформы UNIX
Тип ПО: Гипервизор
Лицензия: GNU GPL (General Public License) GNU GPL version 2
Веб-сайт qemu.org

QEMU - это программа, которая используется для эмуляции программного обеспечения разных платформ. Она распространяется бесплатно и имеет открытый исходный код. Работает во всех популярных операционных системах - Microsoft Windows, Linux, MacOS, а также ее можно запускать на Android.

Описание работы

Существует программная и аппаратная виртуализация - QEMU использует вторую. Аппаратная виртуализация дает возможность использовать изолированные гостевые операционные системы, которые будут управляться гипервизором (используется гипервизор XEN либо модуль ядра KVM в Linux).

Два режима работы, в которых может работать QEMU, это
  • Полная эмуляция системы (full-system emulation) - в этом режиме QEMU полностью эмулирует устройство со всеми его компонентами и периферийными устройствами. Режим используется для запуска операционных систем
  • Эмуляция пользовательского режима (user-mode emulation) - режим позволяет программы, созданные на одном процессоре, запускать на другом, эмулируемом движке. [Источник 1]
QEMU может эмулировать следующие архитектуры
  • x86 (32 и 64 бит);
  • ARM,SPARC;
  • PowerPC (32 и 64 бит);
  • MIPS,m68k (Coldfire);
  • SH-4;
  • CRISv2;
  • Alpha;
  • MicroBlaze.

Особенности

Программа QEMU имеют следующие преимущества и особенности:

  1. Поддерживает два режима эмуляции: пользовательский режим [User-mode] и системный режим [System-mode].
    • Пользовательский режим эмуляции позволяет процессу, созданному на одном процессоре, работать на другом (выполняется динамический перевод инструкций для принимающего процессора и конвертация системных вызовов Linux).
    • Системный режим эмуляции позволяет эмулировать систему целиком, включая процессор и разнообразную периферию.
  2. Может сохранить и восстановить состояние виртуальной машины со всеми запущенными программами. Гостевой операционной системе не нужно патчей для запуска внутри QEMU.
  3. Может эмулировать сетевые карты (разных моделей), которые разделяют подключения принимающей системы, делая трансляцию сетевых адресов, что позволяет эффективно гость использовать ту же сеть, как хозяин. Виртуальные сетевые карты также могут подключаться к сетевым картам других экземпляров QEMU или к локальным TAP интерфейсы. Подключение к сети также может быть достигнуто путем бриджинга интерфейса TUN / TAP, используемый QEMU с невиртуальным интерфейсом Ethernet на ОС хоста с помощью межсетевого моста ОС.
  4. Объединяет несколько сервисов, чтобы обеспечить связь хостовой и гостевой систем; например, интегрированный SMB сервер и перенаправление сетевых портов (чтобы разрешить входящие подключения к виртуальной машине). Она также может загружать ядра Linux без загрузчика.
  5. Не зависит от наличия графических методов вывода на хост-системе. Вместо этого он может позволяют получить доступ к экрану гостевой ОС с помощью интегрированного [VNC сервера. Он может также использовать эмулированную последовательную линию, без какого-либо экрана, с действующими операционными системами.
  6. Не требует прав администратора для запуска, если не используются дополнительные модули ядра для повышения скорости (например, KQEMU), или когда используются некоторые режимы его модели подключения к сети.
  7. Виртуальная машина может взаимодействовать со многими типами физических аппаратных средств хоста. К ним относятся: жесткие диски, диски CD-ROM, сетевые карты, аудио интерфейсы и USB-устройств. USB-устройства могут быть полностью эмулированы, или могут быть использованы USB-устройства хоста (однако, это требует прав администратора и не работает со всеми устройствами).
  8. Виртуальные образы дисков могут быть сохранены в специальном формате qcow или qcow2, которые занимают столько дисковое пространства, сколько гостевая ОС на самом деле использует. Таким образом, эмулируемый 120 GB диск может занимать всего несколько сотен мегабайт на хосте. Формат qcow2 также позволяет создавать наложения образов, которые записывают разницу из другого файла базового (немодифицированного) образа. Это дает возможность возвращать содержимое эмулируемого диска в предыдущее состояние.

Установка QEMU

Большинство дистрибутивов GNU / Linux имеют простые процессы установки на основе репозиториев пакетов. Установка с помощью пакетного менеджера – один из самых простых способов установить QEMU

Примеры:

ОС Команда для установки
Fedora yum install qemu
Debian apt-get install qemu qemu-kvm libvirt-bin
SUSE yast -i qemu
Gentoo emerge -av app-emulation/qemu
Arch sudo pacman -S qemu
Mac (Homebrew) brew install qemu

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

Для Microsoft Windows, вы можете установить QEMU Manager, или загрузить a удобный установщик QEMU.

Сборка QEMU из исходных кодов

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

git clone git://git.qemu-project.org/qemu.git
cd qemu
git submodule init
git submodule update --recursive
git submodule status --recursive
git checkout stable-2.6 #(При необходимости измените 2.6 на номер текущей стабильной версии)
mkdir build
cd build
../configure 

../configure --target-list=i386-softmmu  #В случае если вы хотите собрать QEMU только для конкретной платформы (например,только для 32-bit x86) 
make

ВАЖНО: Все шаги должны одинаково работать на всех платформах, за исключением шага с "../configure" на Windows. Чтобы этот шаг заработал на Windows, нужно использовать MinGW или похожее решение. [Источник 2]

Создание образа жесткого диска

Чтобы запустить QEMU вам нужен образ жесткого диск, конечно, если вы не запускаете live систему через CD-ROM или сеть (и при этом ничего не делаете для установки операционной системы на образ диска). Образ жесткого диска - файл, хранящий содержимое эмулируемого жесткого диска.

Формат образа жесткого диска может быть raw', так что он буквально одинаков побайтно по сравнению с тем, что отображается в госте. Он всегда будет использовать полную емкость гостевого жесткого диска на хосте. Этот способ обеспечивает наименьшие издержки ввода-вывода, но может занимать много места, поскольку неиспользуемое пространство в гостевой системе не может использоваться на хосте.

Кроме того, формат образа жесткого диска может быть таким как, qcow2, в котором выделяется пространство файлу образа только, когда гостевая операционная система фактически записывает эти сектора на своем виртуальном жестком диске. В гостевой системе отображается фактический размер образа, хотя на хост-системе он может занимать только очень небольшое пространство. Этот формат также поддерживает функцию снимков экрана. Но использование этого формата вместо raw может сказаться на производительности. QEMU предоставляет команду qemu-img для создания образов жесткого диска. Например, чтобы создать образ с размером 4 Гб в формате raw, нужно выполнить:

 $ qemu-img create -f raw файл_образа 4G   #Вы можете использовать -f qcow2 для создания диска qcow2 

Видео с установкой

Запуск виртуальной машины


Лицензии

QEMU написана Фабрисом Белларом и является свободным ПО в основном под лицензией GNU GPL. Некоторые части выпущены под лицензиями BSD license, LGPL или другими GPL-совместимыми лицензиями. Также имеется возможности использовать проприетарную FMOD библиотеку при работе на Microsoft Windows.

Заключение

QEMU - хороший инструмент виртуализации, обладающий широкими возможностями. Он подойдет не всем, однако может составить конкуренцию даже VirtualBox,VMware.

Источники

  1. QEMU // Community by timeweb. [2018-2018]. Дата обновления: 16.05.2018 : URL: https://timeweb.com/ru/community/articles/obzor-i-ustanovka-qemu-1 (дата обращения: 04.12.18)
  2. QEMU/Installing QEMU // Wikibooks. [2018-2018]. Дата обновления: 13.07.2018 : URL: https://en.wikibooks.org/wiki/QEMU/Installing_QEMU (дата обращения: 08.01.18)

Ссылки

  • Wiki.qemu.org [Электронный ресурс]:Описание Qemu / Дата обращения: 01.12.2018. Режим доступа: http://wiki.qemu.org.
  • Wikipedia.org [Электронный ресурс]:QEMU / Дата обращения: 01.12.2018. Режим доступа: https://en.wikipedia.org/wiki/QEMU
  • Weilnetz.de [Электронный ресурс]: Мануал QEMU / Дата обращения: 01.12.2018. Режим доступа: http://qemu.weilnetz.de/qemu-doc.html