Qemu что это за программа
Qemu что это за программа
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
QEMU — система эмуляции (и виртуализации) компьютера (вычислительной системы с процессором, памятью и периферийными устройствами), поддерживающего различные архитектуры.
Поддерживаемые эмулируемые (target) архитектуры:
В процессе разработки находятся:
В режиме виртуализации QEMU использует специальный модуль KQEMU, позволяющий исполнять код гостевой операционной системы непосредственно на процессоре хост-системы. В таком режиме поддерживается только архитектура x86. Начиная с версии 0.12.0, QEMU не поддерживает KQEMU.
QEMU обладает ещё одной интересной возможностью — он позволяет исполнять бинарный код, подготовленный для одной архитектуры, на процессоре другой архитектуры (работает только с linux в качестве host-ОС). Например, можно на PowerPC (попробовать) запускать Linux-программы, откомпилированные для x86, или Windows-программы (win32) через Wine.
QEMU использует механизм динамической трансляции, т.е. каждая из инструкций эмулируемой платформы заменяется на заранее подготовленный фрагмент инструкций физического процессора (в котором, возможно, изменяются используемые регистры). Оттранслированные фрагменты хранятся в 16-ти мегабайтном Translation cache.
Содержание
[править] Инсталляция QEMU
Эмулятор qemu можно установить принятым в дистрибутиве способом.
Например, для Debian GNU/Linux:
Элементарные операции доступны сразу же после установки.
Например, запустить в эмуляторе LiveCD:
Ещё можно делать так:
Создаём образ диска Инсталлируем систему
Обратите внимание, что программа может запускаться от имени обыкновенного пользователя, не суперпользователя.
Чтобы QEMU отпустил захваченную мышь, нужно нажать Ctrl-Alt.
[править] kqemu
kqemu — модуль ядра Linux, который позволяет напрямую передавать инструкции эмулируемой системы процессору хост-системы, что существенно повышает производительность.
Чтобы использование kqemu было возможно, необходимо:
Модуль kqemu не работает в паравиртуальных доменах Xen, включая домен 0.
При условии выполнения всех этих требований, kqemu при запуске qemu включается автоматически.
Инсталляция в Debian:
[править] Графика и консоль в QEMU
[править] Консоль
Можно запустить эмулятор/виртуальную машину без эмуляции графического интерфейса. Предполагается, что взаимодействие с ней будет выполняться через последовательный порт (который будет подключен к терминалу, на котором вызывается qemu):
При этом Linux ядру виртуальной машины должны передаваться параметры:
В файле /etc/inittab должна присутствовать строка:
Если же нет возможности передать дополнительные параметры ядра пользуясь загрузчиком, то можно вызвать qemu сразу с ядром и initrd:
[править] Сеть в QEMU
Один из способов соединить эмулируемую машину и общую сеть — использовать виртуальный мост Linux. Для этого в хост-системе необходимо создать мост, который соединить с физическим сетевым интерфейсом. К полученному мосту можно подключать эмулятор.
Например, в хост-системе создан мост и к нему подключен интерфейс:
Тогда, если использовать такой скрипт и способ запуска qemu, эмулятор будет подключен к этому мосту, и его единственный сетевой интерфейс будет смотреть в общую сеть (туда, куда смотрит интерфейс peth0).
Файл должен быть исполняемым:
Запускать нужно от root’а, потому что иначе могут возникнуть проблемы с доступом к устройству /dev/net/tun.
Здесь ключевое слово vlan обозначает виртуальный коммутатор внутри процесса QEMU, который не имеет прямого отношения к VLANам в привычном понимании этого слова.
Здесь вместо haiku.img должен быть указано имя файла, содержащего исполняемый образ.
Обратиться по сети к машине, работающей внутри QEMU можно не обзятально создавая дополнительные интерфейсы в хост-системе:
В данном случае порт 12345 в хост системе отражается на порт 22 гостевой системы. Сетевой интерфейс гостевой системы конфигурируется с помощью встроенного DHCP-сервера.
Пробросить порт в обратную сторону можно с помощью `guestfwd`:
В этом случае при обращении изнутри гостевой системы на 10.0.2.100:49999 обращение будет перенаправлено на 127.0.0.1:49999 внешней системы.
Другой способ — использовать опцию redir:
Дополнительная информация по теме (QEMU + Socket):
[править] USB в QEMU
Поддержка USB в QEMU включается при помощи ключа -usb.
Вы можете пробросить устроуйство внутрь машины QEMU при помощи ключа -usbdevice.
Например, вы хотите пробросить GPS-навигатор Garmin, который подключается через USB к хост-системе:
В хост-системе выполняете:
При вызове qemu указываете идентификатор устройства:
Важно чтобы в хост-системе не был загружен драйвер того устройства, которое пробрасывается внутрь эмулятора. Его можно выгрузить вручную, но лучше занести его в blacklist, чтобы после перезагрузки он не был загружен опять.
В версиях QEMU до 0.13.0 буфер для управляющих сообщений имеет размер 2048 (или 1024 в более старых версиях) байт, чего недостаточно для некоторых USB-устройств. Отсутствие проверки вызывает «падение» QEMU при работе с такими устройствами с сообщением "husb: ctrl buffer too small" Решается вопрос маленьким патчем: http://www.mail-archive.com/qemu-devel@nongnu.org/msg24074.html Та же проблема актуальна для qemu-kvm, и qemu-dm используемого в Xen.
[править] С чем можно поиграться в QEMU
Многие интересные проекты требуют особого железа или по крайней мере отдельного железа. Они не хотят исполнятся внутри запущенной операционной системы или вообще хотят, чтобы железо было какое-то особенное.
Многие из этих проектов можно посмотреть и поиграться с ними с помощью QEMU.
[править] Дополнительная информация
Эмуляция различных архитектур:
[править] Материалы по эмуляторам на Xgu.ru
Виртуализация операционных систем с помощью QEMU. Основы работы с эмулятором
Но есть и другие, в чём-то даже более гибкие и продуктивные решения хотя и куда менее удобные в использовании. Например, QEMU — бесплатная программа с открытым исходным кодом, предназначенная для эмуляции программного обеспечения и операционных систем. Инструмент использует аппаратную виртуализацию, поддерживая два режима работы:
Как установить QEMU в Windows
Скачать установочный файл эмулятора можно с официального сайта www.qemu.org/download/#windows,
есть редакции 32-битные и 64-битные, версию выбираем последнюю.
Установку выполняем с параметрами по умолчанию, ничего менять не нужно, просто жмем в окне мастера «Next».
Виртуализация операционных систем в QEMU
В отличие от VirtualBox и подобных гипервизоров, QEMU не имеет графического интерфейса, работа с ней ведется через командную строку. Команд и параметров для создания и управления виртуальными машинами много, но для начала вам нужно знать хотя бы эти шесть.
Чтобы вам стало всё немного понятнее, установим и запустим с помощью QEMU какую-нибудь операционную систему. Для примера мы выбрали Windows XP, так как она легкая и занимает на диске мало места. QEMU у нас уже установлен, открываем командную строку, переходим в каталог установки и создаем виртуальный жесткий диск следующей командой:
Теперь сформируем следующую команду:
После выполнения команды появляется окошко QEMU с загрузочным меню, в котором мы выбираем установку на диск.
Далее проходим все этапы установки операционной системы вплоть до локальных настроек и загрузки рабочего стола.
Система виртуализации QEMU
Обновлено 24 января 2020
KVM (Kernel-based Virtual Machine) — это программное решение, обеспечивающее виртуализацию в среде Linux, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine).
QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ, которая может работать и без использования KVM, но использование аппаратной виртуализации значительно ускоряет работу гостевых систем, поэтому использование KVM в QEMU (enable-kvm) является предпочтительным вариантом.
Первоначально разработка велась в рамках проекта Linux KVM (Kernel-based Virtual Machine), в котором, помимо собственно KVM (поддержки технологий аппаратной виртуализации x86-совместимых процессоров на уровне ядра Linux), разрабатывались патчи для QEMU, позволяющие QEMU использовать функциональность KVM. Однако недавно разработчики QEMU в содружестве с разработчиками KVM приняли решение интегрировать поддержку KVM в основную ветку QEMU (mainline).
Используя KVM, вы может запустить несколько виртуальных машин с немодифицированными образами Linux и Windows. Каждая виртуальная машина имеет собственную приватную среду, в которой она работает: сетевую карту, диск, графический адаптер и т.д.
Поддержка KVM вошла в ядро Linux начиная с версии 2.6.20.
Установка пакетов
По умолчанию QEMU поддерживает архитектуры i386 и x86_64. Отредактируйте флаги для поддержки необходимых гостевых машин. Пример добавления поддержки архитектуры arm :
Для установки QEMU и libvirt выполните:
Обзор и установка QEMU
QEMU – это приложение виртуализации, бесплатный инструмент с открытым исходным кодом, который используется для эмуляции различных архитектур.
Перед знакомством с QEMU стоит рассказать о том, что такое виртуализация и эмуляция в частности.
Виртуализация и виртуальная машина
Если говорить обобщенно, виртуализация позволяет использовать на одном физическом компьютере несколько виртуальных машин.
А виртуальная машина, в свою очередь, это программа, которая эмулирует (имитирует) работу другого компьютера. То есть на виртуальную машину можно установить операционную систему, она имеет свою оперативную память, жесткий диск и так далее.
Если мощностей компьютера хватает, то на нем можно запускать несколько виртуальных машин, в том числе и одновременно.
Поэтому чаще всего виртуальные машины используются в тех случаях, когда нужно получить новое рабочее окружение без переустановки основной операционной системы (например, Linux на машине с Windows и наоборот). Виртуальные машины позволяют эмулировать архитектуры игровых приставок. Также они используются для защиты информации и ограничения возможностей запускаемых процессов. Виртуальную машину удобно переносить на другой компьютер: для этого нужно только установить на нем программу эмуляции и перенести образ нужной виртуальной машины. В общем, существует множество преимуществ использования виртуальных машин.
Популярные программы виртуализации это:
О последней и пойдет речь в этой статье.
QEMU – это программа, которая используется для эмуляции программного обеспечения разных платформ. Она распространяется бесплатно и имеет открытый исходный код. Работает во всех популярных операционных системах – Microsoft Windows, Linux, MacOS, а также ее можно запускать на Android.
Существует программная и аппаратная виртуализация – QEMU использует вторую. Аппаратная виртуализация дает возможность использовать изолированные гостевые операционные системы, которые будут управляться гипервизором (используется гипервизор XEN либо модуль ядра KVM в Linux).
Два режима работы, в которых может работать QEMU, это:
QEMU может эмулировать следующие архитектуры:
QEMU чуть сложнее использовать, чем некоторые другие программы виртуализации, так как она больше похожа на командную строку Linux, чем на приложение. Поэтому ее стоит использовать опытным пользователям.
Установка QEMU
Команда для установки QEMU на Linux выглядит следующим образом (для примера взята Ubuntu):
Все довольно просто, так как QEMU есть в официальных репозиториях Ubuntu.
Команда для создания образа:
Команда для запуска системы:
После этого будет выполнена установка новой системы, которую потом можно запустить командой:
Заключение
QEMU – хороший инструмент виртуализации, обладающий широкими возможностями. Он подойдет не всем, однако может составить конкуренцию даже VirtualBox.
А вы пользуетесь программами виртуализации? Какими именно?
Qemu-KVM: работа в Debian
Данная статья — это обобщение информации, накопленной за время использования гипервизора Qemu-KVM. Я хочу поделиться теми знаниями опытом, которыми обладаю на данный момент. Надеюсь, что моя статья пойдет на пользу тем, кто только собирается использовать гипервизор Qemu-KVM или уже использует. И еще: статья не для новичков linux (элементарные вещи здесь рассматриваться не будут).
Про данную систему виртуализации в сети написано много. Но когда действительно начинаешь с ней работать — сталкиваешься с нехваткой информации и практических примеров применения. Итак приступим.
Переходим к делу. Установку операционной среды описывать я не буду. Оговорюсь лишь, что во время установки операционной среды жесткий диск большего размера не трогал. Его время еще придет. Как установить гипервизор на Debian очень хорошо описано здесь. Лично я ставлю qemu-kvm libvirt-bin.
Гипервизор поставили, теперь немного о внутренней структуре. Есть два каталога, в которые стоит заглянуть:
/etc/libvirt/ — здесь в основном хранятся конфигурационные файлы
/var/lib/libvirt/ — здесь будут хранится образы жестких дисков, мгновенные снимки системы и многое другое.
Наш гипервизор установлен.
Теперь немного о настройках. Qemu-kvm не работает напрямую с сетевой картой на физическом компьютере. Следовательно нужно настроить мост. Что делаем: открываем файл /etc/network/interfaces и приводим его к следующему виду:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo br0
iface lo inet loopback
# Set up interfaces manually, avoiding conflicts with, e.g., network manager
iface eth0 inet manual
# Bridge setup
iface br0 inet static
bridge_ports eth0
address ххх.ххх.ххх.ххх
broadcast ххх.ххх.ххх.ххх
netmask ххх.ххх.ххх.ххх
gateway ххх.ххх.ххх.ххх
bridge_stp off
bridge_fd 0
bridge_maxwait 0
Больше информации здесь.
Далее сохраняем файл и перезагружаем компьютер.
О, чудо! Гипервизор установлен!
Дальше возникает вопрос: как управлять сервером? Управлять Qemu-kvm можно двумя программами: virt-manager и virtinst.
Virt-manager.
Эта программа рассчитана на графический интерфейс. Она поддерживает как удаленное управление виртуальными машинами, так и локальное. Но у нее есть огромный минус — аналогов для windows попросту нет.
Как лично я вышел из положения. Установил графическую оболочку LXDE и сервер xrdp, благодаря такому нехитрому набору программ мне не пришлось физически ходить к компьютеру (больно много ему чести). Я просто подключался через стандартный RDP клиент который, есть в windows. Но это дополнительная трата ресурсов компьютера.
Если вы установили virt-manager, он автоматически создает:
хранилище для образов виртуальных машин по пути /var/lib/libvirt/images
виртуальный сетевой интерфейс default.
Следовательно подмонтировать жесткий диск с большим объемом нужно в директорию /var/lib/libvirt/images.
Говорим, что пул запускается автоматически
virsh # pool-autostart storage
Стартуем пул
virsh # pool-start storage
Теперь проверяем
virsh # pool-list –all
В принципе наш гипервизор установился и его можно использовать. Но есть еще маленькая мелочь, о которой хотелось бы упомянуть. А именно о том, как работает Qemu-kvm.
Запущенная на нем виртуальная машина шлет команды физическому процессору напрямую через загружаемый модуль (kvm-amd или kvm-intel). Это должен быть один из модулей, который соответствует производителю процессора (Intel или AMD).
В сборке собственного ядра мне помогли вот эти статьи первая и вторая.
Забегу немного вперед. Многие люди в интернете жаловались на то, что модель сетевой карты virtio некорректно работает. Этому есть объяснение, и достаточно простое. Драйвера для этого устройства находятся в стадии экспериментальных. Зато virtio storage работают отлично.
Если все прошло успешно, то для подключения к консоли нашей виртуальной машины нужно установить Ultra VNC Viewer к себе на компьютер. В подключении нужно указать IP адрес сервера и порт, или доменное имя сервера и порт.
Как происходит установка Windows, надеюсь, знают все.
Теперь о драйверах виртуальных машин. Для установки драйверов нужны следующие образы дисков: virtio-win-0.1-30.iso и viostor-0.1-30-floppy.img
Последний диск не обязателен, он нужен только в том случае, если вы собираетесь установить windows xp или windows 2003 server на virtio storage (кстати, если так сделать, то операционная система работает быстрее).
Во многом поможет и вот эта статья. Рекомендую также заглядывать вот сюда.
Установил на нем Qemu-KVM, переместил на него файл конфигурации виртуальной машины и образ диска. В файле конфигурации отредактировал путь к диску виртуальной машины, перезагрузил ноутбук. И, о чудо! Гипервизор не только увидел мою виртуальную машину, но и запустил ее.
Создание снимков виртуальных машин.
Qemu-KVM поддерживает создание снимков виртуальных машин. Приведу самый простой пример. От суперпользователя заходим в virsh и выполняем следующую команду:
virsh # snapshot-create-as name
name — это имя виртуальной машины.
После того, как снимок виртуальной машины будет сделан, резервные копии файлов конфигураций будут лежать в директории /var/lib/libvirt/qemu/snapshot/. Но вот где лежат данные диска виртуальной машины — мне пока не известно.
Просмотреть снимки можно следующей командой:
virsh # snapshot-list name
Name Creation Time State
— 1360593244 2013-02-11 16:34:04 +0200 running
1360594479 2013-02-11 16:54:39 +0200 running
Восстановить из фотографии можно так:
virsh # snapshot-revert name 1360593244
Удалить не нужный снимок можно так:
virsh # snapshot-delete name 1360593244
Вот так теперь и живем: гипервизор Qemu-KVM, виртуальный контролер домена, и довольный проделанной работой я.
Спасибо всем, кто дочитал до конца. Надеюсь, мои мысли оказались полезными.