Как сделать эмуляцию

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

Не будет преувеличением сказать, что виртуализация — это очень востребованная в настоящее время технология. Сегодня по запросу слова виртуализация в поисковой системе выдается примерно 22 миллиона результатов. Например, только за один месяц корпорация EMC объявила о выводе на рынок ценных бумаг подразделения VMware, Citrix System объявила о планах покупки XenSource, появилось множество новых компаний в сегменте виртуализации. На этом, как оказалось, колоссальном рынке постоянно обнаруживаются новые ниши. Но за всеми разговорами о первоначальных публичных предложениях и поглощениях в области виртуализации в эти дни легко забыть о некоторых других уже существующих технологиях виртуализации.

В этой статье будет представлено одно из наиболее интересных приложений виртуализации, не фигурирующее на первых полосах новостей — QEMU. QEMU — это приложение, которое можно применять для многих целей. Его можно использовать для виртуализации гостевой операционной системы или в качестве полнофункционального машинного эмулятора, запускающего операционные системы, предназначенные для процессора хост-системы или других процессорных архитектур.




Выводы

В этой статье мы очень кратко рассмотрели как пользоваться qemu, основные настройки этой утилиты и опции. На самом деле там намного больше опций и возможностей. Одна только возможность эмулировать такое огромное количество архитектур чего стоит. Если для вас эмулятор qemu слишком сложен через терминал, то можно использовать графический интерфейс, например, virt-manager. А вы используете qemu? Или предпочитаете другие виртуальные машины? Почему? Напишите в комментариях!

30 декабря, 2016

Краткое введение в технологию виртуализации

Начнем с краткого введения в технологию виртуализации, чтобы заложить основу для рассмотрения QEMU.

Рисунок 1. Базовая архитектура виртуализации платформы

Кликните, чтобы увидеть увеличенное изображение

Другой популярный метод виртуализации называется паравиртуализацией. В случае паравиртуализации контролирующая программа реализует интерфейса прикладных программ (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 & White) и Sun 4u.

Можно запустить эмулятор/виртуальную машину без эмуляции графического интерфейса. Предполагается, что взаимодействие с ней будет выполняться через последовательный порт (который будет подключен к терминалу, на котором вызывается qemu):

Для Windows 11 покупать TPM 2.0 не нужно — его можно легко эмулировать. Как это сделать

После того, как в сеть слили образ Windows 11, многие столкнулись с проблемой установки новой версии операционной системы Microsoft и впервые узнали о том, что такое Trusted Platform Module (TPM). Уже после официального анонса компания опубликовала системные требования Windows 11, и там действительно присутствовал некий модуль безопасности TPM версии 2.0. Буквально на следующий день владельцы ПК штурмовали магазины в поисках недостающего чипа, а предприимчивые продавцы резко взвинтили цены на них. Несмотря на это, практически все запасы внешних модулей TPM были распроданы. При том, что это очень нишевое устройство, которое выпускается специально под разъёмы каждого отдельного производителя материнских плат. Если вам не удалось заполучить аппаратный модуль TPM, переживать не стоит — вполне возможно, он вам не понадобится.

Содержание

Поддержка TPM может быть встроена прямо в процессор

Аппаратный чип TPM считается наиболее защищенной версией механизма безопасности. Он припаивается непосредственно к материнской плате (обычно встречается в платах для корпоративного использования) или подключается к ней отдельным модулем.

Для Windows 11 покупать TPM 2.0 не нужно — его можно легко эмулировать. Как это сделать

Как оказалось, поддержка TPM встроена прямо в современные процессоры Intel и AMD, и они отлично могут эмулировать работу этих чипов. Более того, для Windows 11 вообще нет никакой разницы, используется ли в системе аппаратный криптографический модуль или его функции реализованы в процессоре. В случае софтверного TPM код выполняется не во внешнем чипе, а в самом процессоре, поэтому его роль выполняет CPU.

Возникает вопрос: какие именно процессоры поддерживают эмуляцию TPM? Microsoft уже опубликовала полный список всех совместимых с Windows 11 процессоров (AMD, Intel и Qualcomm), и в нём каждый уже включает софтверную реализацию TPM. У AMD такая технология называется fTPM (Firmware Trusted Platform Module), она доступна, начиная с серии Ryzen 2500. Что касается Intel, то её технология носит название iPPT (Intel Platform Protection Technology) и присутствует в процессорах Core 4-го поколения и выше.

Как включить эмуляцию TPM в UEFI

Практически все современные материнские платы на чипсетах Intel и AMD содержат функцию программного модуля TPM, но проблема в том, что по умолчанию эта функция всегда отключена. С такой же вероятностью будет отключена и аппаратная реализация чипа. Поэтому делаем следующее (на примере материнской платы ASUS):

Для Windows 11 покупать TPM 2.0 не нужно — его можно легко эмулировать. Как это сделать

Для Windows 11 покупать TPM 2.0 не нужно — его можно легко эмулировать. Как это сделать

На разных материнских платах настройки UEFI могут отличаться, но непринципиально, а сама опция может называться по-разному: TPM, TPM Device, Trusted Platform Module, Security Chip, fTPM и PTT. Если возникнут трудности, рекомендую воспользоваться поиском.

Android Studio

Наше руководство покажет как установить и использовать эмулятор смартфонов Android Studio для тестирования разнообразных приложений и последних версий операционных систем Android.

Примечание . Эмулятор Android поддерживает только 64-разрядные версии Windows 10 / 8 / 7 и требует как минимум 4 гигабайта оперативной памяти. Необходима поддержка и активация функций виртуализации "Intel Virtualization Technology" или "AMD Virtualization Technology" в BIOS материнской платы.

Как установить и подготовить Android Studio

Для начала, перейдите на официальную страницу загрузки и скачайте 64-битную версию.

Запустите дистрибутив, нажмите кнопку "Next" и выполните установку следуя инструкциям.

Начало установки

По завершении, нажмите "Finish".

Окончание установки Android Studio

Если у вас нет сохраненных настроек программы, выберите "Do not import settings" и подтвердите нажав "OK".

Не импортировать настройки

Откажитесь от передачи статистики в Google кнопкой "Dont send".

Отказ от передачи данных

Пропустите страницу приветствия.

Пропуск страницы

Выберите индивидуальные настройки.

Выбор индивидуальных настроек

Задайте подходящую тему оформления.

Выбрать тему

Отметьте галочкой "Android Virtual Device" и проследуйте дальше.

Отметить - Android Virtual Device

Задайте объём оперативной памяти руководствуясь вашей конфигурацией компьютера.

Задать объём оперативной памяти

В следующем окне нажмите кнопку "Finish".

Финиш

Подождите пока загрузятся необходимые компоненты.

Дождаться загрузки

И финишируйте одноименной кнопкой.

Загрузка окончена

Как подготовить эмулятор Android Studio

В окне "Welcome to Android Studio" нажмите "Start a new Android Studio project".

Нажать

Выберите "Basic Activity".

Выбрать

Задайте "Версию Android", мы выбрали последнюю Android 10 (Q) и нажмите "Finish".

Задать версию Android

Как настроить и запустить эмулятор Android Studio

Запустите Android Studio и нажмите кнопку менеджера виртуального Android-устройства.

Открыть AVD

В нем будет готовое устройство "Nexus 5 X" которое можно удалить из-за отсутствия сервиса Play Store.

Удалить устройство

После чего, создадим своё нажав "Create Virtual Device".

Создать устройство

Отметим категорию устройства, это может быть смартфон, планшет либо другое. Мы выберем "Phone" и эмулируем смартфон, "Pixel 2" со значком "Play Store" отлично подойдет.

Выбор устройства

Теперь скачаем операционную систему Android 10 с сервисом Google Play нажав "Download".

Принять соглашение

Дождемся скачивания и распаковки системы.

Дождаться загрузки и распаковки

Нажмем на "Finish".

Закончить

И пойдем дальше.

Пройти дальше

Здесь можно задать новое имя устройству, выбрать положение экрана, посмотреть расширенные настройки и завершить приготовления.

Задать имя и положение экрана

После чего, нажать кнопку запуска эмулятора Android и дождаться загрузки системы.

Запустить эмулятор Android

Android-устройство

Когда устройство будет загружено, перейдите в настройки Android, прокрутите в низ и зайдите в раздел "System".

Перейти в настройки системы

Пройдите по такому пути Languages & input > Languages.

Попасть в настройки языка

Добавьте "Русский язык" через кнопку "Add a Language", поставьте "Русский" первым языком.

Добавить и активировать русский язык

Пользуйтесь операционной системой Android и тестируйте разнообразные приложения из Google Play на своем компьютере.

Рекомендуемый контент

NetAngels — Облачный хостинг для вашего сайта

MEmu - быстрый эмулятор Android для компьютера

MEmu - быстрый эмулятор Android позволяющий запускать приложения и играть в мобильные игры на персональном компьютере. MEmu обеспечивает высочайшую производительность и превосходные возможности, поддерживает различные

NoxPlayer - эмулятор Android для игр на компьютере

NoxPlayer - производительный эмулятор Android, специально оптимизирован для быстрой работы мобильных игр на компьютере с возможностью тестирования различных приложений.

LDPlayer - мощный эмулятор Android для компьютера

Используя мощный эмулятор Android для компьютера LDPlayer вы сможете играть в мобильные игры на высокой скорости и тестировать разнообразные приложения из Google Play.

BlueStacks - игровой эмулятор Android для компьютера

BlueStacks - высокопроизводительный игровой эмулятор Android позволяющий тестировать приложения из сервиса Google Play и играть в разнообразные мобильные игры прямо на своем компьютере.

Как сделать скриншот на Android

Как сделать скриншот на Android? Данный вопрос неизбежен для каждого пользователя смартфона или планшета на операционной системе Android. Наше небольшое руководство покажет как делать снимки экрана своего устройства.

Доброго дня!

В последние пару лет удаленная работа набрала популярность, и меня иногда просят подсказать, как сделать так, чтобы определенные кнопки на клавиатуре/мышки нажимались сами по себе (пока чел. отошел от ПК). Например, это может быть удобно, чтобы удаленный ПК не засыпал и не приходилось заново к нему подключаться.

Чаще всего, отвечая на подобные вопросы, я приводил ссылку на заметку о макросах, и рекомендовал парочку утилит. Однако, порой получал в ответ: "Ты подскажи как именно, покажи на примере. ".

Что же, сегодня покажу небольшой пример (не идеальный, но всё же). 👌

Примечание : не ставлю себе задачи показать все способы решения подобной задачи — в заметке предложен лишь один из вариантов (однако, универсальный и почти бесплатный).

Для выше-оговоренной задачи, думаю, отлично подходит программа 📌Keyran (у нее 📌есть аналоги). Почему она?

  1. Во-первых , в ней легко создать список для "авто-нажимания" компьютером нужных кнопок с выбранными интервалами времени между ними;
  2. Во-вторых , она имеет спец. драйвер (устанавливать его нужно по необходимости), позволяющий имитировать работу практически "настоящей" клавиатуры/мышки;
  3. В-третьих , ее относительно легко настроить - по готовой инструкции разберётся даже человек далекий от мира IT.

Установка Keyran стандартна, поэтому ее не рассматриваю. Перейду сразу же к своему примеру. 👇

1) Первый раз загрузив программу, перейдите в редактор макросов . См. левую верхнюю часть окна программы.

Редактор макросов

2) Затем создайте новый файл — слева внизу есть спец. кнопка.

Создать файл

3) Далее нужно сделать следующее:

  1. дать название своему макросу (чтобы легко отличить его от других);
  2. внизу на виртуальной клавиатуре/мышке выбрать ту кнопку, которую вам нужно впоследствии эмулировать/нажимать (я выбрал перемещение курсора мышки);
  3. в списке задач по центру появятся две строки - в первой можно указать координаты для смещения курсора мышки;
  4. во второй строке - можно отрегулировать время ожидания до следующей команды в списке — в моем случае это время составляет, по умолчанию, 64 мс (время можно задавать также в секундах и минутах) . См. скриншоты ниже. 👇

Создаем макрос

Настройка времени ожидания

Настройка времени ожидания

4) Затем я добавил еще одно смещение курсора и нажатие кнопки "4" (список кнопок создавайте тот, который вам нужен! Чтобы компьютер просто не засыпал — можно имитировать движения мышки).

Готово!

5) Когда список кнопок будет готов — сохраните макрос — а далее перед вами появится главное окно с клавиатурой и мышкой. 👇

Выберите указателем мышки ту клавишу, на которую вы хотите "повесить" запуск макроса — в моем случае я указал "1": далее выберите нужный макрос и режим его работы (если нужно периодически шевелить мышку — то логично остановиться на варианте "Выполнять до повторного нажатия" ).

Вешаем на нужную клавишу

Вешаем на нужную клавишу

6) В общем-то, почти все готово!

Осталось только в нижней части окна нажать кнопку запуска программы Keyran (напоминает "Play") и выбранную вами клавишу (в моем случае "1"). Тут же начнет выполняться наш макрос — т.е. кнопки будут нажиматься "самостоятельно" автоматически по созданному списку!

Запускаем программу и жмем заветную клавишу

Запускаем программу и жмем заветную клавишу

Как это работает на практике — см. нижеприведенное видео.

"4-ки" в блокноте набираются сами + бегает туда-сюда курсор мышки. Разумеется, такой список клавиш и нажатий я сделал спец. для наглядности — на практике, обычно, делают по-другому. 😉

Читайте также: