Хотя я понимаю, что такое симуляция и эмуляция в целом, я почти всегда запутываюсь в них. Предположим, что я создаю часть программного обеспечения, которая имитирует существующее аппаратное / программное обеспечение, как это назвать? Симулятор или эмулятор?
Может ли кто-нибудь объяснить разницу с точки зрения программирования?
Бонус: Какая разница в английском между этими двумя терминами? (Извините, я не являюсь носителем языка :))
Ответы:
Эмуляция - это процесс имитации внешне наблюдаемого поведения в соответствии с существующей целью. Внутреннее состояние механизма эмуляции не обязательно должно точно отражать внутреннее состояние цели, которую он эмулирует.
Моделирование, с другой стороны, включает в себя моделирование основного состояния цели. Конечным результатом хорошей имитации является то, что имитационная модель будет эмулировать цель, которую она имитирует.
В идеале вы должны иметь возможность посмотреть на симуляцию и наблюдать свойства, которые вы также увидите, если вы посмотрите на исходную цель. На практике могут существовать некоторые сокращения для симуляции по причинам производительности, то есть некоторые внутренние аспекты симуляции могут фактически быть эмуляцией.
MAME - эмулятор аркадных игр; Hyperterm - это (не очень хороший) эмулятор терминала. Нет необходимости подробно моделировать игровой автомат или терминал, чтобы получить желаемое эмулированное поведение.
Flight Simulator - это симулятор; SPICE - это симулятор электроники. Они максимально моделируют каждую деталь цели, чтобы представить, что цель делает в реальности.
РЕДАКТИРОВАТЬ: Другие ответы указали, что цель эмуляции состоит в том, чтобы иметь возможность заменить объект, который он эмулирует. Это важный момент. Внимание симуляции больше сосредоточено на моделировании внутреннего состояния цели - и симуляция не обязательно приводит к эмуляции. В частности, симуляция может выполняться намного медленнее, чем в реальном времени. SPICE, например, не может заменить реальную электронную схему (даже если предположить, что было какое-то магическое устройство, которое идеально сопрягает электрические цепи с симуляцией SPICE). Симуляция моделирования не всегда приводит к эмуляции -
источник
Если бы имитатор полета мог доставить вас из А в В, то это был бы эмулятор полета.
Эмулятор может заменить оригинал для реального использования.
Виртуальный ПК эмулирует ПК.
Симулятор - это модель для изучения и анализа.
Эмулятор всегда должен работать в режиме реального времени. Для симулятора это не всегда так. Геологическое моделирование может делать 1000 лет в секунду или более.
источник
Симуляция = Для анализа и изучения
Эмуляция = Для использования в качестве замены
Симулятор - это среда, которая моделирует, но эмулятор - это среда, которая копирует использование, как на исходном устройстве или системе.
Симулятор имитирует активность того, что имитирует. Оно «кажется» (многие могут пойти с этим «появляется», в зависимости от контекста) и совпадает с моделируемой вещью. Например, симулятор полета «кажется» настоящим рейсом для пользователя, хотя он не переносит вас из одного места в другое.
Эмулятор, с другой стороны, на самом деле « делает » то, что делает эмулируемая вещь, и при этом он тоже « делает то же самое ». Эмулятор может использовать другой набор протоколов для имитации эмулируемой вещи, но результат / результат всегда совпадает с исходным объектом. Например, EMU8086 эмулирует микропроцессор 8086 на вашем компьютере, который, очевидно, не работает на 8086 (= разные протоколы ), но вывод, который он дает, дает реальный 8086.
источник
Это разница в фокусе. Эмуляторы 1 фокусируются на воссоздании поведения системы, не принимая во внимание то, как система функционирует внутри. Симуляторы 2 сосредоточены на моделировании компонентов системы. Вы используете эмулятор, когда вы в основном заботитесь о том, что делает система, и симулятор, когда вы заботитесь о том, как она это делает.
Что касается их общего английского значения, эмуляция - это «стремление сравнять или превзойти другого в качествах или действиях », а симуляция - « моделировать , копировать, дублировать поведение, внешний вид или свойства». Не большая разница. Эмуляция происходит от æmulus , «стремление, соперничество» и связана с «подражать» и «имиджем», что предполагает сходство поверхностного рычага. «Симуляция» происходит от similis «like», как и слово «Similar», что, возможно, предполагает более глубокую конгруэнтность.
Ссылки:
источник
Я не думаю, что эмулятор и симулятор можно сравнить. Оба имитируют что-то, но не являются частью одной и той же области мышления, они не используются в одном и том же контексте.
Вкратце: эмулятор предназначен для копирования некоторых функций оригинала и даже может заменить его в реальной среде. Симулятор не предназначен для копирования особенностей оригинала, а только для того, чтобы выглядеть похожим на оригинал для людей. Без особенностей оригинала симулятор не сможет заменить его в реальной среде.
Эмулятор это устройство , которое имитирует что - то достаточно близко , так что это может быть заменена на реальную вещь, Например, вы хотите, чтобы схема работала как схема ПЗУ (постоянное запоминающее устройство), но также хочет корректировать содержимое до тех пор, пока вы не захотите. Вы будете использовать эмулятор ПЗУ, черный ящик (вероятно, на базе процессора) с физическим и электрическим интерфейсами, совместимыми с ПЗУ, которое вы хотите эмулировать. Эмулятор будет подключен к устройству вместо реального ПЗУ. Материнская плата не увидит никакой разницы при работе, но вы сможете легко изменять содержимое эмулируемого ПЗУ. В противном случае эмулятор будет действовать точно так же, как фактическая вещь в контексте материнской платы (возможно, немного медленнее из-за фактической внутренней модели), но будут дополнительные функции (например, переписывание), видимые только для дизайнера, вне контекста материнской платы. , Таким образом, определение эмулятора будет таким: то, что имитирует оригинал, имеет все свои функциональные особенности,
Тренажер используется в другом контексте мышления, например , плоский симулятор, симулятор автомобиля и т.д. Моделирование будет заботиться только о каком - либо аспекте фактической вещи, как правило, связанные с , как человек будет воспринимать и контролировать его, Симулятор не будет выполнять функции реального материала и не может быть навязан ему. Симулятор самолета не будет летать или нести кого-то, это совсем не его цель. Тренажер предназначен не для работы, а для того, чтобы показаться пилоту чем-то похожим на реальную вещь для целей, отличных от обычных, например, для обеспечения наземной тренировки (в том числе в необычных ситуациях, таких как поломка двигателя) Таким образом, определение симулятора будет таким: что-то, что может показаться человеку, в некоторой степени, как оригинал, но не может заменить его для фактического использования. Кроме того, пилот будет знать, что симулятор - это симулятор.
Я не думаю, что мы увидим какой-либо симулятор ПЗУ, потому что ПЗУ не взаимодействует с людьми, и мы не увидим эмулятора самолетов, потому что у самолетов не может быть замены, выполняющих те же функции в реальном мире.
На мой взгляд, модель внутри эмулятора или симулятора может быть чем угодно, и не должна быть похожа на модель оригинала. Модель эмулятора ПЗУ, скорее всего, будет программной, а не аппаратной, MS Flight Simulator не может быть более программным, чем есть.
Это сравнение обоих терминов будет противоречить выбранному в настоящее время ответу (из Toybuilder), который налагает разницу на внутреннюю модель, в то время как я предполагаю, что разница заключается в том, может ли фальшивка использоваться или не использоваться для выполнения реальной функции в реальном мире ( в некотором смысле, действительно).
Обратите внимание, что имитатор самолета должен также имитировать землю, солнце, ветер и т. Д., Которые не являются частью плоскости, поэтому имитатору самолета придется имитировать некоторые аспекты плоскости, а также окружающую среду самолет, потому что он не используется в этой реальной обстановке, но в учебной комнате.
Это большая разница с эмулятором, который эмулирует только оригинал, и его целью является использование в среде оригинала без необходимости эмулировать его. Вернемся к контексту самолета ... что может быть эмулятором самолета? Возможно поезд, который соединит два аэропорта - фактически два шага самолета - перевозящих пассажиров, со стюардессами на борту, с интерьером автомобиля, похожим на фактическую кабину самолета, и с капитаном, говорящим: «Дамы и господа, наша высота составляет 10 км и температура в нашем пункте назначения 24 ° C ". Его преимущество трудно увидеть, гул ...
Таким образом, эмулятор - настоящая вещь, предназначенная для работы, а симулятор - подделка, предназначенная для обмана пользователя.
источник
Простое объяснение.
Если вы хотите конвертировать ваш компьютер (под управлением Windows) в Mac, вы можете сделать одно из следующих:
(или)
В первом случае вы можете использовать Mac, но не можете ожидать того же результата, что и на Mac.
Во втором случае вы можете ожидать того же вывода, что и на Mac, но факт остается фактом: это всего лишь ПК.
источник
Чтобы понять разницу между симулятором и эмулятором, имейте в виду, что симулятор пытается имитировать поведение реального устройства. Например, в случае симулятора iOS он имитирует реальное поведение реального устройства iPhone / iPad. Тем не менее, сам симулятор использует различные библиотеки, установленные на Mac (например, QuickTime), чтобы выполнить его рендеринг, чтобы эффект выглядел так же, как в реальном iPhone. Кроме того, приложения, протестированные на симуляторе, компилируются в код x86, который представляет собой байт-код, понятный симулятору. Настоящее устройство iPhone, наоборот, использует код на основе ARM.
Напротив, эмулятор эмулирует работу реального устройства. Приложения, протестированные на эмуляторе, компилируются в реальный байт-код, используемый реальным устройством. Эмулятор выполняет приложение, переводя байт-код в форму, которая может быть выполнена главным компьютером, на котором запущен эмулятор.
Чтобы понять тонкую разницу между симуляцией и эмуляцией, представьте, что вы пытаетесь убедить ребенка, что играть с ножами опасно. Чтобы имитировать это, вы притворяетесь, что порезались ножом и стонете от боли. Чтобы подражать этому, вы действительно порезались.
источник
Эмулятор - это модель системы, которая будет принимать любые допустимые входные данные, которые принимает эмулируемая система, и выдает тот же результат или результат. Таким образом, ваше программное обеспечение является эмулятором, только если оно точно воспроизводит поведение эмулируемой системы.
источник
Несколько лет назад я придумал очень короткую пословицу, которая, я полагаю, довольно хорошо отражает суть различия:
Я имею в виду, что вы используете эмулятор, когда вы не можете использовать реальную вещь, и вы используете симулятор, когда вы не можете использовать реальную вещь, и вы хотите что-то узнать об этом .
источник
На более или менее нормальном языке: если ваше программное обеспечение может делать все, что может делать имитируемая система, это эмулятор. Если это только приближает результаты системы (IT или иначе), это симулятор.
источник
Симулятор: похож на переводчика. то есть он фактически выполняет реальный код построчно, чтобы имитировать поведение
Эмулятор: это аналог исполняемого файла. т.е. он берет скомпилированный код и выполняет его.
источник
Эмулятор является альтернативой реальной системе, но симулятор используется для оптимизации, понимания и оценки реальной системы.
источник
Различие между этими двумя терминами немного размыто. Происходящий из мира, где «Эмуляторы» - это аппаратные средства, которые позволяют отлаживать встроенные системы. И помните о продуктах, которые позволили вам иметь возможности ICE (In Circuit Emulation) для отладки платформы ПК, я считаю, что использование термина «эмуляция» является своего рода неправильным обозначением для программного обеспечения, имитирующего поведение части аппаратного обеспечения.
Мое оправдание для нынешнего использования термина «Эмуляция» состоит в том, что он может «расширять» функциональность и касается только «разумного» приближения поведения системы.
ICE: (в эмуляции схемы) аппаратное обеспечение, которое подключается к плате вместо реального процессора. Это позволяет запускать систему так, как если бы присутствовал реальный процессор. Как правило, они имеют вариант процессора, который фактически выполняет программное обеспечение со связующей логикой, чтобы позволить пользователю прервать выполнение и выполнить один шаг под управлением аппаратного обеспечения. Некоторые из них также обеспечивают возможность регистрации. Большинство современных систем разработки процессоров заменяют эмуляцию типа ICE на эмуляцию JTAG, где JTAG просто общается с процессором через специальный последовательный канал, а все выполнение выполняется процессором, установленным на плате.
Программный ЭМУЛЯТОР. Эмулятор 0x86 имеет дело только с возможностью выполнения языка ассемблера 0x86, не обеспечивая точную модель поведения цикла SPECIFIC 0x86 с циклом за циклом. Бохс является примером этого. QEMU делает это, но также допускает «виртуализацию» с использованием специальных модулей ядра.
SIMULATOR: Texas Instruments предоставляет модель поведения процессоров CYCLE ACCURATE для своих процессоров, предназначенную для разработки программного обеспечения, которая предназначена для точного МОДЕЛИРОВАНИЯ ОСОБЕННОГО поведения ядер процессоров, которое разработчики должны использовать до использования рабочего оборудования.
Расширяющая функциональность Software EMULATOR: BLEEM не только позволяла вам запускать программное обеспечение Playstation, но также позволяла выводить дисплей с более высоким разрешением, чем Playstation, а также использовала более продвинутые возможности доступных графических процессоров. (т.е. лучшее смешивание и сглаживание текстур.)
источник
Обе модели являются объектами, для которых у вас есть средства управления входами и наблюдения за выходами.
Ключевое отличие состоит в том, что:
Позвольте мне привести пример - предположим, что вы хотите провести некоторое тестирование системы, чтобы увидеть, как добавление нового датчика (например, термометра) в систему повлияет на систему. Вы знаете, что термометр отправляет сообщение 8 раз в секунду, содержащее его измерение.
Симуляция - если у вас еще нет термометра, но вы хотите проверить, что эта частота сообщений не будет перегружать вашу систему, вы можете симулировать датчик, подключив устройство, которое посылает случайное число 8 раз в секунду. Вы можете запустить любой тест, который не зависит от фактического значения, которое посылает датчик.
Эмуляция - предположим, у вас есть очень дорогой термометр, который измеряет до 0,001 C, и вы хотите посмотреть, сможете ли вы обойтись более дешевым термометром, который измеряет только с точностью до 0,5 C. Вы можете эмулировать более дешевый термометр, используя дорогой термометр и затем округлите показания до ближайшего значения 0,5 C и запустите тесты, основанные на значениях температуры.
Обратите внимание, что симуляции также можно использовать для прогнозирования или прогнозирования поведения. Моделирование методом конечных элементов используется во многих приложениях, включая прогнозирование погоды и виртуальные аэродинамические трубы.
Определения терминов:
источник
На этот вопрос, вероятно, лучше всего ответить, взглянув на историческую практику.
В прошлом я видел эмуляторы игровых приставок на ПК для PlayStation и SEGA.
Симуляторы являются обычным явлением, когда речь идет о программном обеспечении, которое пытается имитировать реальные действия, такие как вождение или полет. Gran Turismo и Microsoft Flight Simulator приходят на ум в качестве классических примеров симуляторов.
Что касается языкового различия, под эмуляцией обычно понимается действие копирования чьих-либо (или чего-то) похвальных характеристик или поведения. Эмуляция отличается от подражания, в котором человек копируется с целью издевательства.
Лингвистический смысл глагола «симуляция» заключается в том, чтобы притворяться или подражать кому-то или чему-либо.
источник
В компьютерных науках и симуляция, и эмуляция производят те же выходные данные с теми же входными данными, что и оригинальная система; Тем не менее, эмуляция также использует те же процессы для ее достижения и изготавливается из тех же материалов . Моделирование использует разные процессы из исходной системы. Также стоит отметить термин «репликация», который является промежуточным из двух - использует одни и те же процессы, но сделан из другого материала.
Поэтому, если я хочу запустить мою старую игру Super Mario Bros на своем ПК, я использую эмулятор SNES , потому что он использует тот же или аналогичный компьютерный код (процессы) для запуска игры и использует те же или похожие материалы (кремниевый чип) , Однако, если я хочу управлять самолетом Boeing 747 на своем ПК, я использую симулятор полета, потому что он использует процессы, совершенно отличные от оригинала (фактические крылья, подъем или аэродинамика не задействованы!).
Вот точные определения, взятые из глоссария по информатике:
Имитация - это модель системы, которая фиксирует функциональные связи между входами и выходами системы, но не обязательно основывается на процессах, которые являются такими же или похожими на процессы самой системы.
Репликация - это модель системы, которая фиксирует функциональные связи между входами и выходами системы и основана на процессах, которые являются такими же или похожими на процессы самой системы.
Эмуляция - это модель некоторой системы, которая фиксирует функциональные связи между входами и выходами системы на основе процессов, которые являются такими же или похожими на процессы этой системы, и которая построена из тех же материалов, что и эта система. ,
Ссылка: Открытый университет, M366 Глоссарий 1.1, 2007
источник
Симуляция - это система, которая ведет себя подобно чему-то другому, но реализована совершенно по-другому. Он обеспечивает базовое поведение системы, но может не обязательно соблюдать все правила моделируемой системы. Это там, чтобы дать вам представление о том, как что-то работает.
Эмуляция - это система, которая ведет себя точно так же, как и что-то другое, и соблюдает все правила эмулируемой системы. Фактически это полная репликация другой системы, вплоть до двоичной совместимости с входами и выходами эмулируемой системы, но работающая в среде, отличной от среды исходной эмулируемой системы. Правила являются фиксированными и не могут быть изменены, иначе система выйдет из строя.
источник
Определения слов лучше всего описывают разницу. Поиск в Google дает следующие определения симуляции и эмуляции:
симулировать имитировать внешний вид или характер.
эмулировать матч или превзойти (человек или достижение), как правило, путем подражания.
Симуляция имитирует систему. Эмуляция настолько хорошо имитирует систему, что может заменить ее или даже превзойти.
В вычислительной технике эмуляция будет каплей замены системы, которую она эмулирует. Часто он даже превосходит систему, которую имитирует. Например, эмуляторы игровых приставок обычно вносят улучшения, такие как повышение совместимости оборудования, повышение производительности и улучшение качества аудио / видео.
Моделирование, с другой стороны, ограничено тем, что они являются моделями. Они являются лучшей попыткой имитировать систему, но не заменяют ее. Существуют аппаратные эмуляторы, потому что аппаратные средства могут быть имитированы, и трудно будет отличить их. Эмулятора фермерства не существует, потому что нет эмуляции, которая могла бы заменить настоящее земледелие. Мы можем только смоделировать модель фермерства, чтобы получить представление о том, как лучше фармить.
источник
Виртуальный ПК пытается эмулировать компьютер, с точки зрения программиста, НО, в то же время он имитирует компьютер с точки зрения инженера-электрика .
источник
Эмулятор:
Рассмотрим ситуацию, когда вы знаете только английский и вы находитесь в Китае. Для общения с китайцем вам нужен переводчик. Теперь роль переводчика заключается в том, что он будет запрашивать у вас информацию на английском языке и конвертировать ее в китайский язык, а также предоставлять этот вклад китайцу, а также получать ответ от китайца, переводить его на английский и выводить результаты на английском языке. Теперь этот переводчик и китаец - эмулятор. Оба комбайна обеспечат аналогичную функциональность, как если бы вы общались с англичанином. Таким образом, аппаратное обеспечение может отличаться, но функциональность будет одинаковой.
Тренажер:
Я не могу привести лучший пример, чем SPICE или симулятор полета. Оба заменят поведение аппаратного компонента программной или математической моделью, которая будет вести себя подобно аппаратному.
В конце концов, от контекста зависит, какое решение лучше соответствует потребностям проекта.
источник
Симулятор - это нечто более широкое, чем Эмулятор, и кажется, что двойственность этого термина переосмыслена в постах выше.
Эмулятор
Люди решили использовать новую эмуляцию слова в «компьютерном мире», когда начали прямую замену некоторых аппаратных частей существующей системы - имитируя свое поведение и полагаясь на вычислительную природу, чтобы быть уверенным, что что-то не сломается и все останется в эквивалентное состояние.Таким образом, мы подражали части этого! (и все еще работает как и раньше)
Эмулятор обычно используется в узком смысле в цифровой области как замена и виртуализация - представление в цифровом виде как часть программного обеспечения - чего-то известного и существовавшего ранее (виртуальные микросхемы, платы, электронные устройства). Поэтому, когда мир стал более цифровым и принес слово эмулятора массам, массы добавили ему неопределенности (или дополнительных причин).
имитатор
Прежде всего, я видел много комментариев о том, что эмуляторы делают или заменяют что-то реальное, но не симуляторы.
НО симулятор полета используется для реальных целей - он обучает пилотов, дает им навыки и знания, заменяет дорогие реальные самолеты и экономит много денег. И мы не можем просто сказать «самолет-эмулятор», потому что у нас есть внутреннее ощущение, что это гораздо больше, поэтому мы называем его симулятором :) В самолете-симуляторе может быть эмулированный радар или транспондер, и это правда.
Противоположные утверждения, что симуляторы используются для анализа и изучения (и эмуляторы для чего-то реального), но этот анализ и изучение не менее реальная вещь, чем эмулируемые платы GSM (даже больше в информационном веке, в котором мы живем). Анализ добавляет ценность для бизнеса, снижает затраты или указывает на прибыль не меньше, чем замененное (эмулированное) оборудование.
Симулятор похож на моделирование чего-то, чего мы не можем получить по какой-то причине (стоимость, технология, физическая невозможность). Обычно он моделируется для чего-то нового, нематериального или сложного или не известного нам должным образом, такого как рынок, погода, горение, пользователь. Итак, вот полет, черная дыра, биржа, симуляции.
Итак, наконец:
Что касается происхождения слова
Все пришли с латыни и означают:
источник