Эмулятор и симулятор в чем разница

Эмулятор и симулятор в чем разница

Я часто вижу Simulation и Emulation в компьютерных науках. Эти два термина кажутся синонимами. Есть ли разница между Simulation и Emulation ?

6 ответов

Да, понятия разные.

Моделирование

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

Пример

В качестве примера рассмотрите симулятор полета. Это выглядит и кажется, что вы летите на самолете, но вы совершенно не связаны с реальностью полета на самолете, и вы можете согнуть или нарушить эти правила, как считаете нужным. Например, летайте на аэробусе А380 вверх ногами между Лондоном и Сиднеем, не ломая его.

Emulation

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

Пример

MAME система построена именно на этой предпосылке. Все те старые аркадные системы, о которых давно забыли, которые были реализованы почти полностью на аппаратном уровне или во встроенном программном обеспечении их аппаратных систем, можно эмулировать вплоть до исходных ошибок и сбоев, которые могут произойти, когда вы достигнете максимально возможного балла. / p>

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

Например, симуляция утреннего пригородного трафика исключает имена пригородных пассажиров и, возможно, даже их идентификационные данные (используя переменную-счетчик, а не фактический набор объектов Commuter ), но не может игнорировать скорость их прибытия. .

Эмуляция — это запуск программного обеспечения X, созданного для платформы A на платформе B, без изменения самого программного обеспечения. Это требует построения модели A, которая работает на B, и, очевидно, она должна моделировать все в A, что включает выполнение кода. (Теоретически вы могли бы опустить поддержку кодов операций, которые, как вы знаете, не будут использоваться этим конкретным программным обеспечением, но это редко — работа с эмулятором — это тяжелая работа, и гораздо полезнее сделать основательную работу и получить что-то повторно используемое, чем kludge это работает только для S.)

И то и другое означает, что что-то делает работу чего-то другого.

Разница в том, что «Симуляция» происходит на сознательном уровне (по отношению к пользователю) и обычно дорабатывается, чтобы предвидеть результат реальности, не касаясь самой реальности.

«Эмуляция» происходит на уровне без сознания и имеет целью заменить базовый компонент другим, который по отношению к пользователю работает как старый.

Другими словами, имитация происходит в «параллельном мире», а эмуляция — в «замененном мире».

Технически они оба делают одно и то же: делают что-то в среде, которая действует так, как если бы это была настоящая вещь.

Концептуально, однако, есть важное отличие.

Предполагается, что симулятор в определенной степени отделен от реального мира; результат симуляции не связан напрямую с тем, что он симулирует. Например, симулятор самолета фактически не летает, а пилот фактически не общается с реальным авиадиспетчером.

симуляция обычно преследует цель — тестировать или прогнозировать какой-либо реальный процесс в безопасной среде; поскольку симуляция отключена от реального мира, ничего страшного не случится (симулятор разбившегося самолета никогда не убивает реальных людей).

Эмуляция , напротив, имеет целью занять место реальной вещи: например, если вы эмулируете простой микроконтроллер с использованием более сложного программируемого ЦП, этот ЦП можно использовать в место оригинального микроконтроллера; он будет физически подключен к некоторой машине, и фактически будет управлять этой машиной так же, как микроконтроллер.

Цель эмуляции состоит в замене аппаратных или программных компонентов функциональными эквивалентами, когда исходные модули недоступны (или стали слишком дорогими, если только поддерживать). Эмуляция также может служить цели более гибкого использования аппаратного обеспечения — один и тот же программируемый микроконтроллер может удвоить для нескольких более простых контроллеров, переключая режим эмуляции по мере необходимости.

Хотя этимология не совсем точна, подумайте о разнице между сочувствием, «я могу представить, как это должно ощущаться», и сочувствием, «я знаю, что это такое». Симуляция может включать визуальное представление проблемы, но это не так. Например, он может просто распечатать столбцы чисел, представляющих, сколько людей выстроено в очередь за что-то, общий доход или среднюю скорость. У него есть некоторые характеристики, которые соответствуют реальности, а некоторые — нет.

Читайте также:  Программа с символами и знаками

Эмуляция, которая часто используется в контексте одной платформы, претендующей на роль другой платформы, гораздо более полная. Таким образом, разработчики Windows Phone могут запускать или отлаживать свои телефонные приложения на компьютере под управлением Windows в эмуляторе, который выглядит как телефон и ведет себя так же. Вы также можете запускать свои старые игры Commodore 64 в эмуляторе.

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

Оба термина очень похожи по своей концепции — имитируя.

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

Эмуляторы, с другой стороны, больше внимания уделяют внешнему сходству по сравнению с целевой системой. Это имеет минимальное беспокойство о том, «как» функции имитируются. Эмуляторы обычно используются при работе в совершенно другой среде (например, в другой операционной системе) по сравнению с исходной системой.

В давние времена разработки мобильных сайтов и приложений отладка была сложной задачей. Да, можно было заполучить устройство и быстренько проверить работу – но что было делать, если ты обнаруживал баг?

При отсутствии инструментов отладки приходилось полагаться на разные хаки. В целом они сводились к попыткам воспроизвести баг в десктопном браузере и затем отловить его при помощи Chrome Developer Tools или где-то ещё. К примеру, можно было уменьшить размер окна браузера или поменять user agent.

Грубо говоря, эти хаки не работали. Если ты правишь баг на десктопе, ты не уверен, что он исправлен на мобильном устройстве (МУ). Поэтому приходилось постоянно метаться между устройством и десктопом.

Теперь же у нас есть набор инструментов, позволяющих получать осмысленные данные прямо с МУ. Кроме того, можно использовать десктопные инструменты для отладки прямо на МУ.

В этой статье мы разберём несколько эмуляторов и симуляторов, которые позволяют быстро и легко тестировать сайты и приложения. Затем посмотрим на инструменты для удалённой отладки, позволяющие подключаться к МУ.

Эмуляторы и симуляторы

Тестирование на физических устройствах – штука оправданная. Но это не значит, что не нужно тестировать на эмуляторах и симуляторах. Они позволяют расширить тестируемый набор устройств и проверять изменения на лету.

Симулятор iOS

Для тестирования яблочных устройств, айфонов и айпадов, есть несколько вариантов. Первый среди них – официальный Apple iOS Simulator, входящий в поставку Xcode. Позволяет тестировать разные комбинации софта и железа – но только на Mac.

Установите и запустите Xcode. Потом ПКМ и выберите «Show Package Contents». Затем пройдите “Contents” → “Applications” → “iPhone Simulator.”

Хотя найти его нелегко, использовать симулятор просто. Откройте Safari в симуляторе и тестируйте свой сайт. Можно переключаться между разными устройствами iPhone и iPad, менять версию iOS, поворачивать устройство и т.п.

Если у вас нету Mac’а, придётся заморачиваться. Можно взять iPadian, симулятор iPad для Windows. Кроме него существует ещё несколько вариантов, в частности онлайновые. Но, честно говоря, они не особенно хороши.

Эмулятор Android

У андроида эмулятор кросс-платформенный. К сожалению, он сложен в настройке.

Для начала, скачайте подборку, включающую Android Development Tools (ADT) для Eclipse и Android software development kit (SDK). Затем следуйте инструкциям по установке, не забудьте кроме настроек по-умолчанию установить и “Intel x86 Emulator Accelerator (HAXM installer)”. Также вам понадобится установить HAXM (IntelHaxm.dmg на Маке и IntelHaxm.exe на PC).

Затем создайте Android virtual device (AVD) для тестируемого устройства. В менеджере AVD есть список готовых устройств в “Device Definitions”. Для начала выберите одно из них и нажмите “Create AVD”

Выберите любой CPU, и поставьте “No skin“ и “Use host GPU”. Теперь можно запускать виртуальное устройство и использовать браузер Android для тестирования.

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

Как альтернативу, можно использовать Manymo – эмулятор, встраиваемый в браузер. Его даже можно встроить в страницу.

Другие симуляторы и эмуляторы:

Читайте также:  Блок бесперебойного питания гост

Удалённое тестирование

Эмуляторы и симуляторы полезны, но не на 100% достоверны. Всегда нужно пытаться проводить тестирование на максимальном количестве реальных устройств.

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

Для тестирования устройств от Samsung, таких, как Galaxy S5, можно бесплатно воспользоваться услугами Samsung Remote Test Lab – они предоставляют для тестирования большой выбор своих устройств.

Также можно пользоваться ресурсами Keynote Mobile Testing. Они недёшевы, но количество доступных устройств поражает, и некоторыми можно пользоваться бесплатно.

Если вам нужны физические устройства, можно обратиться в Open Device Lab, где есть список ближайших доступных лабораторий тестирования.

Удалённая отладка

Удалённая отладка на МУ выявляет множество трудностей. К примеру, как получить осмысленные данные от небольшого, сравнительно дохленького устройства?

Инструменты удалённой отладки предоставляют интерфейс для подключения к МУ с десктопа. Таким образом, мы работаем с данными с реальных устройств на мощном десктопном компьютере.

С выходом 6-й версии Apple представила инструмент для отладки МУ через Safari Web Inspector.

Для начала надо разрешить удалённую отладку на устройстве. “Settings” → “Safari” → “Advanced” и разрешить “Web Inspector”

Затем подключите устройство к компьютеру через USB. Потом откройте Safari (версии не ниже 6) и в “Preferences” → “Advanced” выберите “Show Develop menu in menu bar”.

В этом меню вы увидите ваше устройство и несколько страниц с настройками.

На каждой из страниц представлено много инструментов, DOM Inspector и подобные.

Кроме DOM Inspector, iOS’ вы можете использовать:

— временной график для просмотра сетевых запросов, раскладки и рендеринга страниц, работы JavaScript
— отладчик с возможностью установки точек останова
— консоль JavaScript

Как и в случае с симулятором iOS, удалённой отладкой можно заниматься только с Мака.

Android

В случае с Андроидом инструменты удалённой отладки позволяют работать с десктопа при помощи Chrome’s Developer Tools. Кроме того, инструменты эти опять-таки кросс-платформенные.

Сначала, на телефоне пройдите в “Settings” → “About Phone” (для Android 4.4+), или “Settings” → “About Tablet”. Затем нужно нажать на “Build Number” семь раз. Кроме шуток. После этого вы увидите сообщение насчёт разработчика.

Затем обратно в основных настройках “Developer Options” нужен пункт “USB debugging”.

В адресной строке браузера Chrome наберите about:inspect. Разрешите “Discover USB devices”, и вы увидите в меню своё МУ.

Также вы должны увидеть открытые закладки в мобильном браузере. Выберите нужную, и вам будут доступны:

DOM Inspector,
Сетевая панель с внешними ресурсами
Панель исходного кода, для отладки JavaScript
Консоль JavaScript

Подробности можно найти в тьюториале “Introduction to Chrome Developer Tools, Part One.”

Также можно заниматься удалённой отладкой в эмуляторе Андроида.

Weinre

Если вам приходится отлаживать устройство с iOS на Windows, или Linux, или отлаживать устройство, работающее под Windows Phone или BlackBerry – попробуйте Weinre (web inspector remote). Работает везде.

Настройка weinre сложновата, т.к. его надо устанавливать и на сервере, и на странице. Сначала вам понадобится установить Node, а затем установить модуль Weinre:

npm install –g weinre

Затем запустите сервер отладки (подставляем ip-адрес компьютера):

weinre —boundHost 10.0.0.1

Затем проходим на localhost:8080 и копируем содержимое тега . Его нужно будет вставить на отлаживаемую страницу.

Наконец, кликните на ссылке вверху user interface for debugging clients (http://localhost:8080/client/#anonymous). Теперь, когда вы откроете страницу на устройстве, её можно будет увидеть в списке целей (targets).

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

Weinre позволяет тестировать любое устройство, но он не настолько продвинутый, как родные решения для iOS и Android. К примеру, нельзя пошагово отлаживать JavaScript.

Ещё один вариант удалённого тестирования называется Ghostlab.

Заключение

В этой статье мы научились устраивать тестовую лабораторию при помощи комбинации из реальных устройств, эмуляторов, симуляторов и инструментов удалённого тестирования. С их помощью вы сможете тестировать сайты и приложения на различных МУ.

Также мы познакомились с различными инструментами удалённой отладки, которые открывают доступ к отладочным данным МУ, без которых отладка сильно затруднена.

Что ещё почитать перед сном:

“Mobile Emulators and Simulators: The Ultimate Guide,” Maximiliano Firtman
“Introduction to Chrome Developer Tools, Part One,” Seth Ladd, HTML5 Rocks
“About Safari Web Inspector,” Safari Developer Library, Apple
“Enable Remote Debugging With Safari Web Inspector in iOS 6” Dave Ackerman, Modus Create
“Remote Debugging on Android With Chrome,” Chrome Developer Tools
“Weinre as Remote Debugger,” Mozilla Developer Network

Читайте также:  Как узнать размер дисплея ноутбука

Разница между симуляторами и эмуляторами

17.03.2014

В последнее время в eL-среде всё чаще встречаю статьи, в которых путаются понятия "эмулятор" и "симулятор". Некоторые почему-то упорно отказываются различать эти термины (тем более сейчас весна), вводя тех, кто в этой теме пока ещё не разбирается, в заблуждение. Собственно, данная тема ещё более увлекательная, чем holywar на тему "щёлкать или нажимать".

На первой картинке мы видим 2 скриншота: слева — оригинальная программа, справа — эмулятор этой программы.

На второй картинке тоже 2 скриншота: слева — оригинальная программа, справа — симулятор этой программы.

Разницы между этими скриншотами никакой нет. То есть, визуально симулятор ПО и эмулятор ПО зачастую могут выглядеть одинаково.

Итак, давайте сравним два понятия — эмулятор и симулятор, чтобы понять, в чём заключается различие. Часть формулировок, которые я привёл ниже, были взяты из справочников, а также со специализированных форумов.

Что же такое эмулятор?

Начнём с понятия "эмуляция". Эмуляция — это воспроизведение работы программы или системы (а не какой-то её мизерной части) с сохранением ключевых её свойств и принципов работы. Эмуляция выполняет программный код в привычной для этого кода среде, состоящей из тех же компонентов, что и эмулируемый объект.

Пример эмулятора. Все мы знакомы с программой (системой) 1С. Сотрудники выполняют рабочие задачи в "боевом" режиме программы, в рамках которого, к примеру, сохраняется связь с реальными базами данных. Иногда программисты в целях обучения или тестирования функционала программы создают "тестовую" версию программы, в рамках которой можно делать всё тоже самое, что и в "боевой" версии с той разницей, что любые действия пользователя ни на что не повлияют (к примеру, можно смело "грохнуть" базу данных без какого-либо ущерба — просто для того, чтобы посмотреть, что в результате будет). Пожалуй, это можно назвать эмуляцией. Кстати, это отличая замена обучающим симуляторам и тренажёрам ПО (точнее симуляторы ПО выступают заменой таким эмуляторам). Особенно, если такой эмулятор напичкать сообщениями с обратной связью и подсказками для пользователя.

В отличие от симуляции, при которой предполагается имитация поведения системы и её интерфейса, термин эмуляция предполагает создание точной модели устройства.

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

IBM, компания, которая ввела термин "эмуляция" определяет её как "новую комбинацию программы, микрокода и оборудования". До 1980-х годов термин "эмуляция" относился исключительно к аппаратной реализации с применением микрокода, тогда как для программной эмуляции использовался термин "симуляция". Например, компьютер, специально разработанный для выполнения программ, написанный для другой архитектуры, являлся эмулятором. С другой стороны симулятором могла бы называться программа для ПК, с помощью которой можно было бы симулировать старые игры для Atari. #

Симуляция — это воспроизведение работы программы-оригинала сугубо виртуально, на движке специальной программы (средство разработки курсов, к примеру). Симуляция лишь имитирует выполнение кода, а не копирует его, всё виртуально на 100%, всё понарошку.

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

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

Симулятор по полноте функций/учитываемых параметров уже, чем эмулятор. Эмулируется объект, а симулируются его свойства, функции или поведение.

Эмулятор ПО — полнофункциональный аналог оригинального ПО, либо его версия, в которой может быть предусмотрен ряд ограничений по функционалу, возможностям и поведению ПО.

Симулятор ПО — модель оригинального ПО, в которой реализуется логика работы этого ПО (частично или полностью), имитируется поведение ПО, копируется его интерфейс.

Ссылка на основную публикацию
Шаблоны букв английского алфавита для вырезания
Трафареты и шаблоны букв английского алфавита для вырезания из бумаги, это разнообразные шрифты разного стиля и тематики. Трафареты помогут вам...
Что значит спящий режим компьютера
В операционной системе Windows есть несколько режимов выключения компьютера – это обыкновенный режим, (который полностью выключает PC), режим гибернации и...
Что значит сторнировать документ
Сто́рно (итал. storno — перевод на другой счёт, отвод; от stornare — поворачивать обратно) — в общем смысле возврат к...
Шаблоны для брошюры в ворде
Автор: admin Дата записи Быстрей всего набросать буклет, если под рукой окажется готовый шаблон. Проще всего создать буклет в программе...
Adblock detector