Симулятор или Эмулятор? В чем разница?

Хотя я понимаю, что такое симуляция и эмуляция в целом, я почти всегда запутываюсь в них. Предположим, что я создаю часть программного обеспечения, которая имитирует существующее аппаратное / программное обеспечение, как это назвать? Симулятор или эмулятор?

Может ли кто-нибудь объяснить разницу с точки зрения программирования?

Бонус: Какая разница в английском между этими двумя терминами? (Извините, я не являюсь носителем языка:))

25 ответов

Решение

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

Моделирование, с другой стороны, включает моделирование основного состояния цели. Конечным результатом хорошей имитации является то, что имитационная модель будет эмулировать цель, которую она имитирует.

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

MAME - эмулятор аркадных игр; Hyperterm - это (не очень хороший) эмулятор терминала. Нет необходимости подробно моделировать игровой автомат или терминал, чтобы получить желаемое эмулированное поведение.

Flight Simulator - это симулятор; SPICE - это симулятор электроники. Они максимально моделируют каждую деталь цели, чтобы представить, что цель делает в реальности.

РЕДАКТИРОВАТЬ: Другие ответы указали, что цель эмуляции состоит в том, чтобы иметь возможность заменить объект, который он эмулирует. Это важный момент. Внимание симуляции больше сосредоточено на моделировании внутреннего состояния цели - и симуляция не обязательно приводит к эмуляции. В частности, симуляция может выполняться намного медленнее, чем в реальном времени. SPICE, например, не может заменить реальную электронную схему (даже если предположить, что было какое-то магическое устройство, которое идеально сопрягает электрические цепи с симуляцией SPICE). Симуляция моделирования не всегда приводит к эмуляции -

Если бы имитатор полета мог доставить вас из А в В, то это был бы эмулятор полета.

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

Симулятор - это модель для изучения и анализа.

Эмулятор всегда должен работать в режиме реального времени. Для симулятора это не всегда так. Геологическое моделирование может делать 1000 лет в секунду или более.

Симуляция = Для анализа и изучения

Эмуляция = Для использования в качестве замены

Симулятор - это среда, которая моделирует, но эмулятор - это среда, которая копирует использование, как на исходном устройстве или системе.

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

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

Это разница в фокусе. Эмуляторы 1 фокусируются на воссоздании поведения системы без учета внутреннего функционирования системы. Симуляторы 2 сосредоточены на моделировании компонентов системы. Вы используете эмулятор, когда вы в основном заботитесь о том, что делает система, и симулятор, когда вы заботитесь о том, как она это делает.

Что касается их общего английского значения, эмуляция - это "стремление сравнять или превзойти другого в качествах или действиях", а симуляция - " моделировать, копировать, дублировать поведение, внешний вид или свойства". Не большая разница. Эмуляция происходит от æmulus, "стремление, соперничество", и связана с "подражать" и "имиджем", что предполагает сходство поверхностного рычага. "Симуляция" происходит от similis "like", как и слово "Similar", что, возможно, предполагает более глубокую конгруэнтность.

Рекомендации:

  1. Википедия: Эмулятор
  2. Википедия: Компьютерное моделирование
  3. Викисловарь: эмуляция
  4. Викисловарь: симуляция
  5. Этимология онлайн: эмуляция
  6. Этимология онлайн: симуляция

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

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

Эмулятор - это устройство, которое имитирует что-то достаточно близкое, чтобы его можно было заменить реальным. Например, вы хотите, чтобы схема работала как схема ПЗУ (только для чтения), но также хочет корректировать содержимое до тех пор, пока вы не захотите. Вы будете использовать эмулятор ПЗУ, черный ящик (вероятно, на базе процессора) с физическим и электрическим интерфейсами, совместимыми с ПЗУ, которое вы хотите эмулировать. Эмулятор будет подключен к устройству вместо реального ПЗУ. Материнская плата не увидит никакой разницы при работе, но вы сможете легко изменять содержимое эмулируемого ПЗУ. Иначе говоря, эмулятор будет действовать точно так же, как фактическая вещь в контексте материнской платы (возможно, немного медленнее из-за фактической внутренней модели), но будут дополнительные функции (например, переписывание), видимые только для дизайнера, вне контекста материнской платы., Таким образом, определение эмулятора будет таким: что-то, что имитирует оригинал, имеет все его функциональные особенности, может фактически заменить его в некоторой степени в реальном мире и может иметь дополнительные функции, невидимые в обычном контексте.

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

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

На мой взгляд, модель внутри эмулятора или симулятора может быть чем угодно, и не должна быть похожа на модель оригинала. Модель эмулятора ПЗУ, скорее всего, будет программной, а не аппаратной, MS Flight Simulator не может быть более программным, чем есть.

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

Обратите внимание, что имитатор самолета должен будет также имитировать землю, солнце, ветер и т. Д., Которые не являются частью плоскости, поэтому имитатору самолета придется имитировать некоторые аспекты плоскости, а также окружающую среду самолет, потому что он не используется в этой реальной обстановке, но в учебной комнате.

Это большая разница с эмулятором, который эмулирует только оригинал, и его целью является использование в среде оригинала без необходимости эмулировать его. Вернемся к контексту самолета... что может быть эмулятором самолета? Возможно поезд, который соединит два аэропорта - фактически два шага самолета - перевозящих пассажиров, с бортпроводниками на борту, с интерьером автомобиля, похожим на фактическую кабину самолета, и с капитаном, говорящим: "Дамы и господа, наша высота составляет 10 км и температура в нашем пункте назначения 24°C". Его преимущество трудно увидеть, гул...

Таким образом, эмулятор - это настоящая вещь, предназначенная для работы, а симулятор - это подделка, предназначенная для обмана пользователя.

Чтобы понять разницу между симулятором и эмулятором, имейте в виду, что симулятор пытается имитировать поведение реального устройства. Например, в случае симулятора iOS он имитирует реальное поведение реального устройства iPhone/iPad. Тем не менее, сам симулятор использует различные библиотеки, установленные на Mac (например, QuickTime), чтобы выполнить его рендеринг, чтобы эффект выглядел так же, как реальный iPhone. Кроме того, приложения, протестированные на симуляторе, компилируются в код x86, который представляет собой байт-код, понятный симулятору. Настоящее устройство iPhone, наоборот, использует код на основе ARM.

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

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

Простое объяснение.

Если вы хотите конвертировать ваш компьютер (под управлением Windows) в Mac, вы можете сделать одно из следующих:

(1) Вы можете просто установить тему Mac на Windows. Итак, ваш компьютер больше похож на Mac, но вы не можете запускать программы Mac. (SIMULATION)

(или же)

(2) Вы можете запрограммировать ваш компьютер так, чтобы он работал как Mac (я не уверен, что это возможно:P). Теперь вы можете даже успешно запускать программы для Mac и ожидать того же результата, что и на Mac. (EMULATION)

В первом случае вы можете использовать Mac, но не можете ожидать того же результата, что и на Mac.
Во втором случае вы можете ожидать того же вывода, что и на Mac, но факт остается фактом: это всего лишь ПК.

Несколько лет назад я придумал очень короткую пословицу, которая, как мне кажется, довольно хорошо отражает суть различия:

Симулятор - это эмулятор в миссии.

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

На более или менее нормальном языке: если ваше программное обеспечение может делать все, что может делать имитируемая система, это эмулятор. Если это только приближает результаты системы (IT или иначе), это - симулятор.

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

Симулятор: похож на переводчика. то есть он фактически выполняет реальный код построчно, чтобы имитировать поведение

Эмулятор: похож на исполняемый файл. т.е. он берет скомпилированный код и выполняет его.

Оба термина - это нечто совершенно другое и очень мало пересекаются. Найти подходящий термин на самом деле очень легко, просто подумайте о следующем:

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

Эмуляция действительно что-то делает.Вы можете работать с эмулируемым компьютером, как с физическим, и создавать на нем документы. И авиакатастрофа в Flight Emulator будет иметь результат, как и люди, испытывающие реальный удар, включая возможный физический ущерб.

Ваше замешательство, вероятно, связано с тем, что «изучение симуляции» и «доступ к эмуляции» часто являются одним и тем же.

Вы не одиноки в своем замешательстве. Фильм «Матрица» говорит о симуляции. Однако The Matrix работает в режиме эмуляции, так как оказывает реальное влияние на всех членов The Matrix. Напротив, тренировочная комната не имеет реального воздействия, так что это симуляция (Матрицы).

Посмотрим на несколько примеров.

Имитация дождя и имитация дождя

Возьмите в саду шланг для воды и дайте дождю. В чем разница между симуляцией и эмуляцией?

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

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

Мне потребовалось некоторое время, чтобы понять это. Следовательно, это непросто и непросто, что объясняет всю путаницу.

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

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

Имитация и эмуляция компьютера

Хотя вы можете подумать, что «смоделированный компьютер может дать результат», это практически неверное рассуждение. Если вы сохраняете файлы на смоделированном жестком диске, эти файлы не могут покинуть смоделированный диск за пределами моделирования. Вы можете получить файлы, изучив смоделированный привод, но это не является частью самого моделирования.

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

Таким образом, эмуляция может быть частью симуляции и наоборот.

Имитация и эмуляция файловой системы

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

Но это просто совпадение, потому что ваша смоделированная файловая система фактически также имитирует файловую систему. Вы фактически эмулировали внешнюю файловую систему внутри своей симуляции!

Имитация и эмуляция TPM или HSM

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

Интересный факт: мои пальцы постоянно набирают TMP вместо TPM.

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

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

С настоящим TPM вы не можете имитировать свойства реального HSM. Все, что вы можете заархивировать, - это смоделировать HSM, но он не будет иметь свойств безопасности реального HSM, поэтому все данные, которые хранятся в этом смоделированном HSM, не будут защищены (они будут защищены только в рамках самого моделирования).

Напротив, с настоящим HSM вы можете эмулировать TPM со всеми свойствами реального TPM. Для этого HSM должен быть сконструирован таким образом, чтобы никакая информация не должна покидать HSM, которая также не покидает TPM.

(Обратите внимание, что я ничего не знаю о HSM или TPM в частности, поэтому может быть, что нет HSM, которые могли бы предоставлять эмулируемые TPM.)

Симулированный против эмулируемого мира

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

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

Это меняется, когда я эмулировал, например, запускал ОС в эмуляторе. Тогда я не могу наблюдать такие ошибки, так как мое состояние может быть сброшено изнутри эмуляции (назовем это: Sleep) без заметного прерывания.

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

Я останавливаюсь здесь, потому что галлюцинации приводят нас к совершенно другому.

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

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

пример

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

эмуляция

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

пример

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

Эмулятор является альтернативой реальной системе, но симулятор используется для оптимизации, понимания и оценки реальной системы.

Различие между этими двумя терминами немного размыто. Происходящий из мира, где "Эмуляторы" - это аппаратные средства, которые позволяют отлаживать встроенные системы. И помните о продуктах, которые позволили вам иметь возможности ICE (In Circuit Emulation) для отладки платформы ПК. Я считаю, что использование термина "эмуляция" является своего рода неправильным обозначением программного обеспечения, которое имитирует поведение аппаратного обеспечения.

Мое оправдание для нынешнего использования термина "Эмуляция" состоит в том, что он может "расширять" функциональность и касается только "разумного" приближения поведения системы.

ICE: (в схеме эмуляции) аппаратное обеспечение, которое подключается к плате вместо реального процессора. Это позволяет запускать систему так, как если бы присутствовал реальный процессор. Как правило, они имеют вариант процессора, который фактически выполняет программное обеспечение со связующей логикой, чтобы позволить пользователю прервать выполнение и выполнить один шаг под управлением аппаратного обеспечения. Некоторые из них также обеспечивают возможность регистрации. Большинство современных систем разработки процессоров заменяют эмуляцию типа ICE на эмуляцию JTAG, где JTAG просто общается с процессором через специальный последовательный канал связи, а все выполнение выполняется процессором, установленным на плате.

Программный ЭМУЛЯТОР: эмулятор 0x86 имеет дело только с возможностью выполнения языка ассемблера 0x86, не обеспечивая точную модель поведения цикла за такт для процессора SPECIFIC 0x86. Бохс является примером этого. QEMU делает это, но также допускает "виртуализацию" с использованием специальных модулей ядра.

SIMULATOR: Texas Instruments предоставляет модель поведения процессоров CYCLE ACCURATE для своих процессоров, предназначенную для разработки программного обеспечения, которая предназначена для точного МОДЕЛИРОВАНИЯ ОСОБЕННОГО поведения ядер процессоров, которое разработчики должны использовать до использования рабочего оборудования.

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

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

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

В компьютерных науках и симуляция, и эмуляция дают одинаковые результаты, из тех же входов, что и оригинальная система; Тем не менее, эмуляция также использует те же процессы для достижения этого и изготавливается из тех же материалов. Моделирование использует разные процессы из исходной системы. Также стоит отметить термин "репликация", который является промежуточным из двух - использует те же процессы, но сделан из другого материала.

Поэтому, если я хочу запустить мою старую игру Super Mario Bros на своем ПК, я использую эмулятор SNES, потому что он использует тот же или аналогичный компьютерный код (процессы) для запуска игры и использует те же или похожие материалы (кремниевый чип), Однако, если я хочу управлять самолетом Boeing 747 на своем ПК, я использую симулятор полета, потому что он использует процессы, совершенно отличные от оригинальных (фактические крылья, подъем или аэродинамика не задействованы!).

Вот точные определения, взятые из глоссария по информатике:

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

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

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

Ссылка: Открытый университет, M366 Глоссарий 1.1, 2007

На этот вопрос, вероятно, лучше всего ответить, взглянув на историческую практику.

В прошлом я видел эмуляторы игровых консолей на ПК для PlayStation и SEGA.

Симуляторы являются обычным явлением, когда речь идет о программном обеспечении, которое пытается имитировать реальные действия, такие как вождение или полет. Gran Turismo и Microsoft Flight Simulator напоминают классические примеры симуляторов.

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

Лингвистический смысл глагола "симуляция" состоит в том, чтобы притворяться или подражать кому-то или чему-либо.

Определения слов лучше всего описывают разницу. Поиск в Google дает следующие определения симуляции и эмуляции:

симулировать имитировать внешний вид или характер.

подражать матч или превзойти (человек или достижение), как правило, путем подражания.

Симуляция имитирует систему. Эмуляция настолько хорошо имитирует систему, что может заменить или даже превзойти ее.

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

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

Обе модели являются объектами, для которых у вас есть средства управления входами и наблюдения за выходами.

Основное отличие состоит в том, что:

  • С эмулятором вы хотите, чтобы выходные данные точно совпадали с тем, что будет генерировать объект, который вы эмулируете.
  • В симуляторе вы хотите, чтобы определенные свойства вашего вывода были похожи на то, что будет производить объект.

Позвольте мне привести пример - предположим, что вы хотите провести некоторое тестирование системы, чтобы увидеть, как добавление нового датчика (например, термометра) в систему повлияет на систему. Вы знаете, что термометр отправляет сообщение 8 раз в секунду, содержащее его измерение.

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

Эмуляция - предположим, у вас есть очень дорогой термометр, который измеряет до 0,001 C, и вы хотите посмотреть, сможете ли вы обойтись более дешевым термометром, который измеряет только с точностью до 0,5 C. Вы можете эмулировать более дешевый термометр, используя дорогой термометр и затем округлите показания до ближайшего значения 0,5 C и запустите тесты, основанные на значениях температуры.

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

Определения терминов:

  • эмуляция - превосходить или точно соответствовать
  • моделировать - подражать внешности или характеру

Виртуальный ПК пытается эмулировать компьютер с точки зрения программиста, НО, в то же время, он имитирует компьютер с точки зрения инженера-электрика.

Эмуляция похожа на абстракцию. Он показывает, на что он способен. Пример: эмуляция вождения автомобиля.

Симуляция похожа на инкаптуляцию. Он показывает, как это можно сделать. Пример: внутренняя активность двигателя автомобиля.

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

Эмулятор

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

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

имитатор

Во-первых, я видел много комментариев о том, что эмуляторы делают или заменяют что-то реальное, но не симуляторы.

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

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

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

Итак, наконец:

  1. Симулятор шире, чем Эмулятор
  2. Имитатор имеет тенденцию имитировать / моделировать более глобальные процессы / вещи в целом с возможностью сузить имитацию (например, имитатор конденсатора с предустановками, представляющими некоторые известные модели)
  3. Эмулятор имеет тенденцию имитировать определенные аппаратные устройства с определенной спецификацией, известными характеристиками и свойствами (например, эмулятор SNES, Intel 8087 или Roland TB-303).

Что касается происхождения слова

Все пришли с латыни и означают:

  • подражать "быть равным" (выглядит более агрессивно и прямолинейно - соперничество)
  • симулировать - это "быть похожим" (выглядит хитрее и хитрее - имитация)

Эмулятор:

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

Тренажер:

Я не могу привести лучший пример, чем SPICE или симулятор полета. Оба заменят поведение аппаратного компонента программной или математической моделью, которая будет вести себя подобно аппаратному.

В конце концов, от контекста зависит, какое решение лучше соответствует потребностям проекта.

Тренажер обязательно представляет собой масштабную модель. Эмуляторы притворяются моделью 1:1.

Другие вопросы по тегам