Qemu system x86 64 что это
Обзор и установка 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. Основы работы с эмулятором
Но есть и другие, в чём-то даже более гибкие и продуктивные решения хотя и куда менее удобные в использовании. Например, 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.
Виртуальная машина может взаимодействовать со многими типами физического хост-оборудования, включая жесткие диски пользователя, приводы CD-ROM, сетевые карты, аудиоинтерфейсы и USB-устройства. USB-устройства можно полностью эмулировать, или можно использовать USB-устройства хоста, хотя это требует прав администратора и работает не со всеми устройствами.
Образы виртуальных дисков могут храниться в специальном формате ( qcow или qcow2 ), который занимает ровно столько места на диске, сколько фактически использует гостевая ОС. Таким образом, эмулируемый диск объемом 120 ГБ может занимать на хосте всего несколько сотен мегабайт. Формат QCOW2 также позволяет создавать наложенные изображения, которые записывают отличие от другого (немодифицированного) файла базового изображения. Это дает возможность вернуть содержимое эмулированного диска в более раннее состояние. Например, базовый образ может содержать новую установку операционной системы, которая, как известно, работает, и используются наложенные изображения. Если гостевая система станет непригодной для использования (из-за вирусной атаки, случайного разрушения системы и т. Д.), Пользователь может удалить оверлей и использовать ранее эмулированный образ диска.
QEMU объединяет несколько сервисов, позволяющих взаимодействовать хост-системам и гостевым системам; например, встроенный SMB- сервер и перенаправление сетевого порта (для разрешения входящих подключений к виртуальной машине). Он также может загружать ядра Linux без загрузчика.
QEMU не требует прав администратора для запуска, если не используются дополнительные модули ядра для повышения скорости (например, KQEMU ) или не используются определенные режимы его модели сетевого подключения.
Крошечный генератор кода
Ускоритель
QEMU также поддерживает следующие ускорители:
Поддерживаемые форматы образов дисков
QEMU поддерживает следующие форматы образов дисков:
Эмуляция с аппаратной поддержкой
Параллельная эмуляция
Решения виртуализации, использующие QEMU, могут выполнять несколько виртуальных процессоров параллельно. Для эмуляции пользовательского режима QEMU сопоставляет эмулируемые потоки с потоками хоста. Для полной эмуляции системы QEMU может запускать поток хоста для каждого эмулируемого виртуального ЦП (vCPU). Это зависит от того, был ли гость обновлен для поддержки эмуляции параллельной системы, в настоящее время это ARM, Alpha, HP-PA, PowerPC, RISC-V, s390x, x86 и Xtensa. В противном случае используется один поток для эмуляции всего виртуального CPUS (vCPUS), который выполняет каждый vCPU циклически.
Интеграция
VirtualBox
Xen-HVM
QEMU включает в себя несколько компонентов: эмуляторы ЦП, эмулируемые устройства, общие устройства, описания машин, пользовательский интерфейс и отладчик. Эмулируемые устройства и общие устройства в QEMU составляют его модели устройств для виртуализации ввода-вывода. Они включают в себя PIIX3 IDE (с некоторыми элементарными возможностями PIIX4), Cirrus Logic или обычное видео с эмуляцией VGA, сетевую эмуляцию RTL8139 или E1000 и поддержку ACPI. Поддержка APIC обеспечивается Xen.
Xen-HVM имеет эмуляцию устройства на основе проекта QEMU для обеспечения виртуализации ввода-вывода для виртуальных машин. Аппаратное обеспечение эмулируется с помощью демона «модели устройства» QEMU, работающего как бэкэнд в dom0. В отличие от других режимов работы QEMU (динамическая трансляция или KVM), виртуальные процессоры полностью управляются гипервизором, который заботится об их остановке, в то время как QEMU имитирует доступы ввода-вывода с отображением памяти.
Win4Lin Pro для настольных ПК
В начале 2005 года Win4Lin представила Win4Lin Pro Desktop, основанную на «настроенной» версии QEMU и KQEMU и содержащую NT-версии Windows. В июне 2006 года Win4Lin выпустила Win4Lin Virtual Desktop Server, основанный на той же кодовой базе. Win4Lin Virtual Desktop Server обслуживает сеансы Microsoft Windows для тонких клиентов с сервера Linux.
В сентябре 2006 года Win4Lin объявила о смене названия компании на Virtual Bridges с выпуском Win4BSD Pro Desktop, портированного на FreeBSD и PC-BSD. Поддержка Solaris последовала в мае 2007 года с выпуском Win4Solaris Pro Desktop и Win4Solaris Virtual Desktop Server.
SerialICE
WinUAE
WinUAE представила поддержку плат CyberStorm PPC и Blizzard 603e с использованием ядра QEMU PPC в версии 3.0.0.
Единорог
Эмулируемые аппаратные платформы
PowerPC
PowerMac
QEMU эмулирует следующие периферийные устройства PowerMac :
ПОДГОТОВКА
QEMU эмулирует следующие периферийные устройства PREP :
IBM System p
QEMU может эмулировать паравиртуальный интерфейс sPAPR со следующими периферийными устройствами:
На цели sPAPR используется другой BIOS, совместимый с Open-Firmware, который называется SLOF.
ARM32
QEMU эмулирует набор инструкций ARMv7 (и вплоть до ARMv5TEJ) с расширением NEON. Он эмулирует полные системы, такие как плата интегратора / CP, универсальная базовая плата, базовая плата RealView Emulation, КПК на базе XScale, КПК Palm Tungsten | E, интернет-планшеты Nokia N800 и Nokia N810 и т. Д. QEMU также поддерживает эмулятор Android, который является частью Android SDK (большинство текущих реализаций Android основаны на ARM). Начиная с версии 2.0.0 своего Bada SDK, Samsung выбрала QEMU для помощи в разработке эмулированных устройств Wave.
Смоделирована SoC Zynq на базе Xilinx Cortex A9 со следующими элементами:
ARM64
SPARC
SPARC32
QEMU эмулирует следующие периферийные устройства sun4m / sun4c / sun4d :
SPARC64
Эмуляция Sun4u (машина, подобная ПК с UltraSPARC), Sun4v ( машина типа ПК T1) или обычная машина Niagara (T1) со следующими периферийными устройствами:
MicroBlaze
Поддерживаемые периферийные устройства:
Решетка
Поддерживаемые периферийные устройства: от Milkymist SoC
Qemu system x86 64 что это
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
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.
[править] Дополнительная информация
Эмуляция различных архитектур: