Как сделать эмуляцию
Не будет преувеличением сказать, что виртуализация — это очень востребованная в настоящее время технология. Сегодня по запросу слова виртуализация в поисковой системе выдается примерно 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, многие столкнулись с проблемой установки новой версии операционной системы Microsoft и впервые узнали о том, что такое Trusted Platform Module (TPM). Уже после официального анонса компания опубликовала системные требования Windows 11, и там действительно присутствовал некий модуль безопасности TPM версии 2.0. Буквально на следующий день владельцы ПК штурмовали магазины в поисках недостающего чипа, а предприимчивые продавцы резко взвинтили цены на них. Несмотря на это, практически все запасы внешних модулей TPM были распроданы. При том, что это очень нишевое устройство, которое выпускается специально под разъёмы каждого отдельного производителя материнских плат. Если вам не удалось заполучить аппаратный модуль TPM, переживать не стоит — вполне возможно, он вам не понадобится.
Содержание
Поддержка TPM может быть встроена прямо в процессор
Аппаратный чип TPM считается наиболее защищенной версией механизма безопасности. Он припаивается непосредственно к материнской плате (обычно встречается в платах для корпоративного использования) или подключается к ней отдельным модулем.
Как оказалось, поддержка 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):
На разных материнских платах настройки UEFI могут отличаться, но непринципиально, а сама опция может называться по-разному: TPM, TPM Device, Trusted Platform Module, Security Chip, fTPM и PTT. Если возникнут трудности, рекомендую воспользоваться поиском.
Наше руководство покажет как установить и использовать эмулятор смартфонов Android Studio для тестирования разнообразных приложений и последних версий операционных систем Android.
Примечание . Эмулятор Android поддерживает только 64-разрядные версии Windows 10 / 8 / 7 и требует как минимум 4 гигабайта оперативной памяти. Необходима поддержка и активация функций виртуализации "Intel Virtualization Technology" или "AMD Virtualization Technology" в BIOS материнской платы.
Как установить и подготовить Android Studio
Для начала, перейдите на официальную страницу загрузки и скачайте 64-битную версию.
Запустите дистрибутив, нажмите кнопку "Next" и выполните установку следуя инструкциям.
По завершении, нажмите "Finish".
Если у вас нет сохраненных настроек программы, выберите "Do not import settings" и подтвердите нажав "OK".
Откажитесь от передачи статистики в Google кнопкой "Dont send".
Пропустите страницу приветствия.
Выберите индивидуальные настройки.
Задайте подходящую тему оформления.
Отметьте галочкой "Android Virtual Device" и проследуйте дальше.
Задайте объём оперативной памяти руководствуясь вашей конфигурацией компьютера.
В следующем окне нажмите кнопку "Finish".
Подождите пока загрузятся необходимые компоненты.
И финишируйте одноименной кнопкой.
Как подготовить эмулятор Android Studio
В окне "Welcome to Android Studio" нажмите "Start a new Android Studio project".
Выберите "Basic Activity".
Задайте "Версию Android", мы выбрали последнюю Android 10 (Q) и нажмите "Finish".
Как настроить и запустить эмулятор Android Studio
Запустите Android Studio и нажмите кнопку менеджера виртуального Android-устройства.
В нем будет готовое устройство "Nexus 5 X" которое можно удалить из-за отсутствия сервиса Play Store.
После чего, создадим своё нажав "Create Virtual Device".
Отметим категорию устройства, это может быть смартфон, планшет либо другое. Мы выберем "Phone" и эмулируем смартфон, "Pixel 2" со значком "Play Store" отлично подойдет.
Теперь скачаем операционную систему Android 10 с сервисом Google Play нажав "Download".
Дождемся скачивания и распаковки системы.
Нажмем на "Finish".
И пойдем дальше.
Здесь можно задать новое имя устройству, выбрать положение экрана, посмотреть расширенные настройки и завершить приготовления.
После чего, нажать кнопку запуска эмулятора Android и дождаться загрузки системы.
Когда устройство будет загружено, перейдите в настройки Android, прокрутите в низ и зайдите в раздел "System".
Пройдите по такому пути Languages & input > Languages.
Добавьте "Русский язык" через кнопку "Add a Language", поставьте "Русский" первым языком.
Пользуйтесь операционной системой Android и тестируйте разнообразные приложения из Google Play на своем компьютере.
Рекомендуемый контент
MEmu - быстрый эмулятор Android позволяющий запускать приложения и играть в мобильные игры на персональном компьютере. MEmu обеспечивает высочайшую производительность и превосходные возможности, поддерживает различные
NoxPlayer - производительный эмулятор Android, специально оптимизирован для быстрой работы мобильных игр на компьютере с возможностью тестирования различных приложений.
Используя мощный эмулятор Android для компьютера LDPlayer вы сможете играть в мобильные игры на высокой скорости и тестировать разнообразные приложения из Google Play.
BlueStacks - высокопроизводительный игровой эмулятор Android позволяющий тестировать приложения из сервиса Google Play и играть в разнообразные мобильные игры прямо на своем компьютере.
Как сделать скриншот на Android? Данный вопрос неизбежен для каждого пользователя смартфона или планшета на операционной системе Android. Наше небольшое руководство покажет как делать снимки экрана своего устройства.
Доброго дня!
В последние пару лет удаленная работа набрала популярность, и меня иногда просят подсказать, как сделать так, чтобы определенные кнопки на клавиатуре/мышки нажимались сами по себе (пока чел. отошел от ПК). Например, это может быть удобно, чтобы удаленный ПК не засыпал и не приходилось заново к нему подключаться.
Чаще всего, отвечая на подобные вопросы, я приводил ссылку на заметку о макросах, и рекомендовал парочку утилит. Однако, порой получал в ответ: "Ты подскажи как именно, покажи на примере. ".
Что же, сегодня покажу небольшой пример (не идеальный, но всё же). 👌
Примечание : не ставлю себе задачи показать все способы решения подобной задачи — в заметке предложен лишь один из вариантов (однако, универсальный и почти бесплатный).
Для выше-оговоренной задачи, думаю, отлично подходит программа 📌Keyran (у нее 📌есть аналоги). Почему она?
- Во-первых , в ней легко создать список для "авто-нажимания" компьютером нужных кнопок с выбранными интервалами времени между ними;
- Во-вторых , она имеет спец. драйвер (устанавливать его нужно по необходимости), позволяющий имитировать работу практически "настоящей" клавиатуры/мышки;
- В-третьих , ее относительно легко настроить - по готовой инструкции разберётся даже человек далекий от мира IT.
Установка Keyran стандартна, поэтому ее не рассматриваю. Перейду сразу же к своему примеру. 👇
1) Первый раз загрузив программу, перейдите в редактор макросов . См. левую верхнюю часть окна программы.
2) Затем создайте новый файл — слева внизу есть спец. кнопка.
3) Далее нужно сделать следующее:
- дать название своему макросу (чтобы легко отличить его от других);
- внизу на виртуальной клавиатуре/мышке выбрать ту кнопку, которую вам нужно впоследствии эмулировать/нажимать (я выбрал перемещение курсора мышки);
- в списке задач по центру появятся две строки - в первой можно указать координаты для смещения курсора мышки;
- во второй строке - можно отрегулировать время ожидания до следующей команды в списке — в моем случае это время составляет, по умолчанию, 64 мс (время можно задавать также в секундах и минутах) . См. скриншоты ниже. 👇
Настройка времени ожидания
4) Затем я добавил еще одно смещение курсора и нажатие кнопки "4" (список кнопок создавайте тот, который вам нужен! Чтобы компьютер просто не засыпал — можно имитировать движения мышки).
5) Когда список кнопок будет готов — сохраните макрос — а далее перед вами появится главное окно с клавиатурой и мышкой. 👇
Выберите указателем мышки ту клавишу, на которую вы хотите "повесить" запуск макроса — в моем случае я указал "1": далее выберите нужный макрос и режим его работы (если нужно периодически шевелить мышку — то логично остановиться на варианте "Выполнять до повторного нажатия" ).
Вешаем на нужную клавишу
6) В общем-то, почти все готово!
Осталось только в нижней части окна нажать кнопку запуска программы Keyran (напоминает "Play") и выбранную вами клавишу (в моем случае "1"). Тут же начнет выполняться наш макрос — т.е. кнопки будут нажиматься "самостоятельно" автоматически по созданному списку!
Запускаем программу и жмем заветную клавишу
Как это работает на практике — см. нижеприведенное видео.
"4-ки" в блокноте набираются сами + бегает туда-сюда курсор мышки. Разумеется, такой список клавиш и нажатий я сделал спец. для наглядности — на практике, обычно, делают по-другому. 😉
Читайте также: