Kqemu virtualisation module for qemu что это за программа
QEMU — это быстрый эмулятор процессора, использующий портируемый динамический транслятор.
- Полная эмуляция. В этом режиме QEMU эмулирует систему полностью, включая процессор и периферию. Этот режим может использоваться для запуска другой ОС без перезагрузки или для отладки системного кода.
- Эмуляция на уровне пользователя. В этом режиме QEMU может запускать программы, написанные под один процессор на другом. Этот режим может быть использован для запуска Wine или чтобы упростить кросс-компиляцию и кросс-отладку.
Последние версии
Ссылка | Описание |
qemu-0.9.0.tar.gz | Исходные коды |
qemu-0.9.0-i386.tar.gz | Дистрибутив версии для linux-i386 (распакуйте в корневом каталоге) |
qemu-0.9.0-windows.zip | Дистрибутив версии для Windows |
Qemu-0.9.0-install.exe | Инсталлятор версии для Windows |
kqemu-1.3.0pre11.tar.gz | Исходные коды модуля увеличения производительности (KQEMU) |
Kqemu-1.3.0pre11-install.exe | Инсталлятор KQEMU для Windows |
How to Install KVM on Ubuntu 20.04 | Install QEMU and Virt-Manager Using Terminal in Hindi
Поддерживаемые платформы
Target CPU | User emulation | System emulation |
x86 | OK | OK |
x86_64 | Not supported | OK |
ARM | OK | OK |
SPARC | OK | OK |
SPARC64 | Dev only | Dev only |
PowerPC | OK | OK |
PowerPC64 | Not supported | Dev only |
MIPS | OK | OK |
m68k | Dev only | Dev only |
SH-4 | Dev only | Dev only |
На первую страницу #149 к последнему сообщению |
Источник: forum.ru-board.com
QEMU
QEMU — система эмуляции (и виртуализации) компьютера (вычислительной системы с процессором, памятью и периферийными устройствами), поддерживающего различные архитектуры.
Поддерживаемые эмулируемые (target) архитектуры:
- x86,
- x86_64,
- ARM,
- SPARC,
- PowerPC,
- MIPS,
- m68k (Coldfire),
- SH-4.
В процессе разработки находятся:
В режиме виртуализации QEMU использует специальный модуль KQEMU, позволяющий исполнять код гостевой операционной системы непосредственно на процессоре хост-системы. В таком режиме поддерживается только архитектура x86. Начиная с версии 0.12.0, QEMU не поддерживает KQEMU.
CentOS 7 qemu/kvm 설치 하기
QEMU обладает ещё одной интересной возможностью — он позволяет исполнять бинарный код, подготовленный для одной архитектуры, на процессоре другой архитектуры (работает только с linux в качестве host-ОС). Например, можно на PowerPC (попробовать) запускать Linux-программы, откомпилированные для x86, или Windows-программы (win32) через Wine.
QEMU использует механизм динамической трансляции, т.е. каждая из инструкций эмулируемой платформы заменяется на заранее подготовленный фрагмент инструкций физического процессора (в котором, возможно, изменяются используемые регистры). Оттранслированные фрагменты хранятся в 16-ти мегабайтном Translation cache.
Инсталляция QEMU
Эмулятор qemu можно установить принятым в дистрибутиве способом.
Например, для Debian GNU/Linux:
%# apt-get install qemu
Элементарные операции доступны сразу же после установки.
Например, запустить в эмуляторе LiveCD:
%$ qemu -cdrom knoppix.iso
Ещё можно делать так:
Создаём образ диска
%$ qemu-img create Arch.img 1024M
Инсталлируем систему
%$ qemu -cdrom archlinux-200x.xx-x.iso -boot d Arch.img
Обратите внимание, что программа может запускаться от имени обыкновенного пользователя, не суперпользователя.
Чтобы QEMU отпустил захваченную мышь, нужно нажать Ctrl-Alt.
kqemu
kqemu — модуль ядра Linux, который позволяет напрямую передавать инструкции эмулируемой системы процессору хост-системы, что существенно повышает производительность.
Чтобы использование kqemu было возможно, необходимо:
- доступен и загружен модуль ядра kqemu;
- qemu исполняется от имени суперпользователя;
- qemu исполняется не в паравиртуальном домене Xen.
Модуль kqemu не работает в паравиртуальных доменах Xen, включая домен 0.
При условии выполнения всех этих требований, kqemu при запуске qemu включается автоматически.
Инсталляция в Debian:
%# apt-cache search kqemu %# apt-get install kqemu-modules-2.6-686 %# modprobe kqemu
Графика и консоль в QEMU
Консоль
Можно запустить эмулятор/виртуальную машину без эмуляции графического интерфейса. Предполагается, что взаимодействие с ней будет выполняться через последовательный порт (который будет подключен к терминалу, на котором вызывается qemu):
qemu -m 256 -hda test01.img -nographic
При этом Linux ядру виртуальной машины должны передаваться параметры:
console=ttyS0
В файле /etc/inittab должна присутствовать строка:
S0:2345:respawn:/sbin/mingetty ttyS0
Если же нет возможности передать дополнительные параметры ядра пользуясь загрузчиком, то можно вызвать qemu сразу с ядром и initrd:
qemu -nographic -kernel ./bzImage -hda ./test01.img -append «root=/dev/sda console=ttyS0»
Сеть в QEMU
тихо-тихо идёт
пинг изнутри
qemu
Один из способов соединить эмулируемую машину и общую сеть — использовать виртуальный мост Linux. Для этого в хост-системе необходимо создать мост, который соединить с физическим сетевым интерфейсом. К полученному мосту можно подключать эмулятор.
Например, в хост-системе создан мост и к нему подключен интерфейс:
%# brctl show . br0 8000.001a4d80ce78 no peth0 .
Тогда, если использовать такой скрипт и способ запуска qemu, эмулятор будет подключен к этому мосту, и его единственный сетевой интерфейс будет смотреть в общую сеть (туда, куда смотрит интерфейс peth0).
Файл /etc/qemu-ifup
#!/bin/sh bridge=br0 echo «Executing /etc/qemu-ifup» echo «Bringing up $1 for bridged mode. » sudo /sbin/ifconfig $1 0.0.0.0 promisc up echo «Adding $1 to $bridge. » sudo /usr/sbin/brctl addif $bridge $1 sleep 2
Файл должен быть исполняемым:
%$ chmod +x qemu-ifup
%# qemu -hda haiku.img -boot c -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime
Запускать нужно от root’а, потому что иначе могут возникнуть проблемы с доступом к устройству /dev/net/tun.
Здесь ключевое слово vlan обозначает виртуальный коммутатор внутри процесса QEMU, который не имеет прямого отношения к VLANам в привычном понимании этого слова.
Здесь вместо haiku.img должен быть указано имя файла, содержащего исполняемый образ.
- Networking QEMU Virtual BSD Systems (англ.) хорошая схема внутреннего подключения внутреннего DHCP-сервера в QEMU
- http://qemu-buch.de/cgi-bin/moin.cgi/QemuAndSlirp
Обратиться по сети к машине, работающей внутри QEMU можно не обзятально создавая дополнительные интерфейсы в хост-системе:
$ qemu-system-x86_64 Platte.img -net nic -net user,hostfwd=tcp::12345-:22
В данном случае порт 12345 в хост системе отражается на порт 22 гостевой системы. Сетевой интерфейс гостевой системы конфигурируется с помощью встроенного DHCP-сервера.
Пробросить порт в обратную сторону можно с помощью `guestfwd`:
guestfwd=tcp:10.0.2.100:49999-tcp:127.0.0.1:49999
В этом случае при обращении изнутри гостевой системы на 10.0.2.100:49999 обращение будет перенаправлено на 127.0.0.1:49999 внешней системы.
Другой способ — использовать опцию redir:
-redir tcp:12345::22
Дополнительная информация по теме (QEMU + Socket):
- http://unix.stackexchange.com/questions/124681/ssh-from-host-to-guest-using-qemu
- http://wiki.qemu.org/Documentation/Networking (искать по слову Socket)
- http://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-en.html
- http://secomputing.co.uk/2012/02/21/Forwarding-ports-to-KVM-clients/
- http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Netzwerkoptionen/_Virtuelle_Netzwerke_konfigurieren (нем.)
USB в QEMU
Knoppix внутри QEMU. Проброшено USB-устройство
Поддержка USB в QEMU включается при помощи ключа -usb.
Вы можете пробросить устроуйство внутрь машины QEMU при помощи ключа -usbdevice.
Например, вы хотите пробросить GPS-навигатор Garmin, который подключается через USB к хост-системе:
В хост-системе выполняете:
%# lsusb Bus 001 Device 004: ID 091e:0003 Garmin International GPSmap (various models)
При вызове qemu указываете идентификатор устройства:
%# qemu -usb -usbdevice host:091e:0003
Важно чтобы в хост-системе не был загружен драйвер того устройства, которое пробрасывается внутрь эмулятора. Его можно выгрузить вручную, но лучше занести его в blacklist, чтобы после перезагрузки он не был загружен опять.
С чем можно поиграться в QEMU
Многие интересные проекты требуют особого железа или по крайней мере отдельного железа. Они не хотят исполнятся внутри запущенной операционной системы или вообще хотят, чтобы железо было какое-то особенное.
Многие из этих проектов можно посмотреть и поиграться с ними с помощью QEMU.
- LiveCD — любой LiveCD скачивается и запускается в QEMU. Не требует никаких дополнительных операций по подготовке. Очень удобно для проверки диска, для изучения его возможностей.
- OLPC — возможно вы слышали об OLPC и хотели бы на него посмотреть. Проще всего это сделать при помощи QEMU. Образы здесь [1]. Используйте образ ext3, не JFFS!
- OpenMoko — Образы для эмуляции здесь [2].
Дополнительная информация
- Свободный QEMU — установка и первые впечатления — заметка в блоге «Записки дебианщика» (рус.)
- Документация пользователя эмулятора процессора QEMU (рус.)
- Hardware virtualization with QEMU (англ.)
- http://qemu-buch.de/ (нем.) и частично (англ.)
- QEMU and TUN/TAP networking (англ.)
- QEMU — Debian — Linux — TUN/TAP — network bridge (англ.)
- qemu bridged to Ethernet (англ.)
- Setting up your own internal network w/ qemu. (англ.)
- How to use Network in QEMU (англ.)
- QEMU Networking (англ.)
Эмуляция различных архитектур:
- HPPAQEMU — HPPA Host and Target Support for QEMU (PA-RISC)
- Debian on an emulated ARM machine (англ.)
Материалы по эмуляторам на Xgu.ru
- WANEM — эмулятор WAN
- IMUNES (An Integrated Multiprotocol Network Emulator / Simulator)
Источник: xgu.ru
Дополнительные настройки Qemu Manager
Пару недель назад мы в общих чертах ознакомились с приложением Qemu Manager — графической оболочкой для консольного эмулятора Qemu . В отличие от популярных гипервизоров, таких как Oracle VM VirtualBox , эта платформа виртуализации позволяет запускать операционные системы, написанные под другую архитектуру процессора, кроме того, Qemu является более гибкой в плане эмуляции компьютерного железа.
Несмотря на то что менеджер не развивается уже более 10 лет, начинающие пользователи эмулятора находят его весьма полезным, поскольку программа избавляет их от необходимости глубоко вникать в синтаксис команд Qemu.
Расширенные настройки Qemu Manager
Разбирая возможности Qemu Manager, в прошлый раз мы коснулись только основных его функций и настроек, сегодня мы продолжим знакомиться с функционалом приложения и на этот раз рассмотрим назначение его дополнительных параметров, собранных на вкладке «Advanced».
- CPU Affinity — Поддержка многопроцессорных систем, в выпадающем списке вы можете выбрать ядро ЦП, на котором хотите запускать виртуальную машину. По умолчанию опция отключена.
- Kernel Image — Опция позволяет запускать скомпилированное сжатое ядро операционной системы Linux, представленное файлом bzImage .
- Initial Ram Disk Image — Для запуска некоторых эмулируемых платформ может потребоваться временная файловая система, используемая ядром Linux при начальной загрузке. В случае необходимости путь к файлу-образу такой ФС указывается в качестве значения параметра.
- Kernel command line append — Позволяет добавить командную строку ядра.
- Bios Filename — Позволяет эмулировать альтернативный BIOS , путь к файлу BIOS необходимо указать в поле, предварительно скопировав сам файл в папку установки Qemu.
- Sound Library — Опция позволяет выбрать звуковую библиотеку, поддерживаются Direct Sound , SDL , Wave Renderer и FMOD(при условии, что используется версия QEMU с FMOD) .
- Close VM when rebooted — Если включить эту настройку, вместо перезагрузки виртуальная машина будет выключаться.
- Enable SDL output — Позволяет задействовать графическую библиотеку SDL .
- QEMU Window Title — Задает заголовок отдельного окна виртуальной машины, может быть произвольным. По умолчанию задано .
- Do not start CPU on startup — Если включить эту опцию, QEMU не станет задействовать процессор при старте виртуальной машины. Последняя попросту не запустится.
- Use Local Time — Позволяет установить время, отличающееся от времени хостовой машины.
- Specify Start Date Time of VM» width=»513″ height=»170″ />
- KQEMU — Позволяет задействовать модуль-ускоритель KQEMU, оптимизирующего дисковые операции и отрисовку интерфейса VM. Может принимать три значения: Disabled(ускоритель отключен) , FULL acceleration(полное ускорение, возможны сбои в работе виртуальной машины) и User Mode(пользовательский режим, частичное использование ускорителя) .
- Enable WIN2K Hack — Используется в основном при установке на VM Windows 2000 , предотвращает бесконтрольное потребление VM оперативной памяти хоста. После установки Windows 2000 опцию необходимо отключить.
- Disable ACPI Support — Отключает поддержку ACPI , используется, если при работе с гостевой машиной выдаются ошибки ACPI .
- Qemu Process Priority — Задает приоритет процесса запускаемой в эмуляторе гостевой машины, поддерживает четыре режима Idle(низкий) , Normal(обычный) , High(высокий) и Realtime(режим реального времени) . Используется тот же принцип, что и при установке приоритета процессов программ в Диспетчере задач.
- Do Not Apply Changes to VM Session — Если включить эту настройку, эмулятор не станет сохранять изменения в диске-контейнере виртуальной машины, примененные во время сеанса.
- Run VM in Debug mode — Запускает виртуальную машину в режиме отладки.
- Additional QEMU Parameters — Позволяет указать дополнительные параметры запуска в ручном режиме, требует знания синтаксиса.
- Use Additional QEMU Parameters Only — Работает в связке с предыдущей опцией, если ее включить, для запуска эмулятора станут использоваться только перечисленные дополнительные параметры, тогда как остальные настройки будут проигнорированы.
Большая часть из всех приведенных выше настроек вам никогда не пригодятся, если, конечно, вы не пожелаете вникнуть в QEMU по-взрослому или не станете пробовать эмулировать «экзотические» платформы. Просто имейте ввиду, что такие настройки в QEMU имеются.
Источник: www.white-windows.ru
Эмуляторы windows для android / Запуск windows приложений (*.exe) на android
Не будет преувеличением сказать, что виртуализация — это очень востребованная в настоящее время технология. Сегодня по запросу слова виртуализация в поисковой системе выдается примерно 22 миллиона результатов. Например, только за один месяц корпорация EMC объявила о выводе на рынок ценных бумаг подразделения VMware, Citrix System объявила о планах покупки XenSource, появилось множество новых компаний в сегменте виртуализации. На этом, как оказалось, колоссальном рынке постоянно обнаруживаются новые ниши. Но за всеми разговорами о первоначальных публичных предложениях и поглощениях в области виртуализации в эти дни легко забыть о некоторых других уже существующих технологиях виртуализации.
В этой статье будет представлено одно из наиболее интересных приложений виртуализации, не фигурирующее на первых полосах новостей — QEMU. QEMU — это приложение, которое можно применять для многих целей. Его можно использовать для виртуализации гостевой операционной системы или в качестве полнофункционального машинного эмулятора, запускающего операционные системы, предназначенные для процессора хост-системы или других процессорных архитектур.
Выводы
В этой статье мы очень кратко рассмотрели как пользоваться qemu, основные настройки этой утилиты и опции. На самом деле там намного больше опций и возможностей. Одна только возможность эмулировать такое огромное количество архитектур чего стоит. Если для вас эмулятор qemu слишком сложен через терминал, то можно использовать графический интерфейс, например, virt-manager.
А вы используете qemu? Или предпочитаете другие виртуальные машины? Почему? Напишите в комментариях!
- Установка VMware на Ubuntu 18.04 16 ноября, 2016
Краткое введение в технологию виртуализации
Начнем с краткого введения в технологию виртуализации, чтобы заложить основу для рассмотрения QEMU.
Под виртуализацией в этой статье подразумевается виртуализация платформы. Для физического оборудования, контролирующая программа может быть операционной системой-хозяином или гипервизором (см. Рисунок 1). В некоторых случаях сама хозяйская операционная система и является гипервизором. Гостевые операционные системы «проживают» на гипервизоре.
В некоторых случаях гостевые операционные системы ориентированы на тот же процессор, что и контролирующая программа, но в других случаях платформы могут быть отличными (например, гостевая система PowerPC работает на x86 платформе).
Рисунок 1. Базовая архитектура виртуализации платформы
Кликните, чтобы увидеть увеличенное изображение
Реализовать виртуализацию можно множеством путей, но наиболее часто встречаются три основных метода. Первый называется «родной» (или полной) виртуализацией. В этом варианте гипервизор реализует основные элементы изоляции, отделяя физическое оборудование от гостевой операционной системы. Этот подход впервые был продемонстрирован в 1966 году в операционной системе виртуальных машин/виртуальной памяти IBM® CP — 40, а сейчас тот же метод используется в VMware ESX Server.
Другой популярный метод виртуализации называется паравиртуализацией. В случае паравиртуализации контролирующая программа реализует интерфейса прикладных программ (API) гипервизора, который используется гостевой операционной системой. Паравиртуализацию используют Xen и Linux Kernel-based Virtual Machine (KVM).
Третий полезный метод называется эмуляцией. Эмуляция, как видно из названия, виртуализует гостевую платформу благодаря полной имитации аппаратной среды. Эмуляция осуществляется в различных формах, даже в пределах одного и того же приложения. Примерами виртуализации посредством эмуляции -являются QEMU и Bochs.
Виртуализация и виртуальная машина
Если говорить обобщенно, виртуализация позволяет использовать на одном физическом компьютере несколько виртуальных машин.
А виртуальная машина, в свою очередь, это программа, которая эмулирует (имитирует) работу другого компьютера. То есть на виртуальную машину можно установить операционную систему, она имеет свою оперативную память, жесткий диск и так далее.
Если мощностей компьютера хватает, то на нем можно запускать несколько виртуальных машин, в том числе и одновременно.
Поэтому чаще всего виртуальные машины используются в тех случаях, когда нужно получить новое рабочее окружение без переустановки основной операционной системы (например, Linux на машине с Windows и наоборот). Виртуальные машины позволяют эмулировать архитектуры игровых приставок. Также они используются для защиты информации и ограничения возможностей запускаемых процессов. Виртуальную машину удобно переносить на другой компьютер: для этого нужно только установить на нем программу эмуляции и перенести образ нужной виртуальной машины. В общем, существует множество преимуществ использования виртуальных машин.
Популярные программы виртуализации это:
- VirtualBox
- VMware Workstation
- Microsoft Virtual PC
- QEMU
О последней и пойдет речь в этой статье.
Архитектура QEMU
Рассмотрим, как QEMU обеспечивает эмуляцию. В этом разделе описываются два режима работы QEMU, а также некоторые интересные аспекты динамического транслятора QEMU.
Основные операции QEMU
QEMU поддерживает два режима эмуляции: пользовательский режим [User-mode] и системный режим [System-mode]. Пользовательский режим эмуляции позволяет процессу, созданному на одном процессоре, работать на другом (выполняется динамический перевод инструкций для принимающего процессора и конвертация системных вызовов Linux). Системный режим эмуляции позволяет эмулировать систему целиком, включая процессор и разнообразную периферию.
При эмуляции кода для x86 на хост-системе с архитектурой x86 можно достичь эффективности, близкой к родной, с помощью так называемого акселератора QEMU. Он позволяет исполнять эмулируемый код непосредственно на центральном процессоре хоста (на Linux через модуль ядра).
Но что делает QEMU действительно интересным с технической точки зрения, так это его быстрый и компактный динамический транслятор . Динамический транслятор позволяет выполнять во время исполнения переводить инструкции целевого (гостевого) процессора в инструкции центрального процессора хоста для обеспечения эмуляции. Это может быть сделано методом грубой силы (просто заменяя инструкции одного процессора другими), но это не всегда легко сделать, а в некоторых случаях одна инструкция может потребовать нескольких инструкций или даже изменений в их порядке следования для транслируемой архитектуры.
QEMU обеспечивает динамическую трансляцию преобразованием целевой инструкции в микрооперации. Эти микрооперации представляют собой элементы С-кода, которые компилируются в объекты. Затем вступает в дело основной транслятор. Он отображает целевые инструкции на микрооперации для динамической трансляции. Такой подход не только эффективен, но и обеспечивает переносимость.
Динамический транслятор QEMU также кэширует блоки транслируемого кода для снижения накладных расходов транслятора. Когда блок целевого кода встречается впервые, он переводится и хранится в виде транслированного блока . Кэш QEMU хранит недавно переведенные блоки в буфере объемом 16 МБ. QEMU может даже поддерживать самомодифицирующийся код, аннулируя транслированные блоки в кэше.
Узнать больше о деталях внутреннего устройства QEMU и ее динамическом трансляторе можно в интересной статье Фабриса Белларда (автора 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 https://mycomp.su/operacionka/qemu-skachat.html» target=»_blank»]mycomp.su[/mask_link]