模拟器还是模拟器? 有什么不同?

虽然我明白一般的模拟和仿真意味着什么,但我几乎总是对它们感到困惑。 假设我创build了一个模仿现有硬件/软件的软件,我该怎么称呼它? 模拟器还是模拟器?

任何人都可以解释在编程方面的差异?
奖金:这两个词在英语上有什么不同? (对不起,我不是母语:)

仿真是模仿外在观察行为来匹配现有目标的过程。 仿真机制的内部状态不必准确地反映它正在仿真的目标的内部状态。

另一方面,模拟涉及build模目标的基础状态。 一个好的模拟的最终结果是仿真模型将仿真它正在模拟的目标。

理想情况下,您应该能够查看模拟并观察您在查看原始目标时也会看到的属性。 在实践中,出于性能的原因可能有一些捷径,即模拟的某些内部方面实际上可能是一个仿真。

MAME是街机游戏模拟器; 超级terminal是一个(不是很好)的terminal模拟器。 没有必要详细模拟街机或terminal,以获得所需的仿真行为。

飞行模拟器是一个模拟器; SPICE是一个电子模拟器。 他们尽可能地模拟目标的每个细节,以表示目标在现实中的作用。

编辑:其他答复指出,仿真的目标是能够替代它正在仿效的对象。 这是重要的一点。 仿真的重点更多的是目标内部状态的build模 – 仿真不一定会导致仿真。 特别是,仿真运行可能比实时慢得多。 例如,SPICE不能替代实际的电子电路(即使假设某种神奇的器件可以完美地将电路连接到SPICE仿真)。仿真仿真并不总是导致仿真 –

仿真器可以替代原来的“真正的”使用。 模拟器是一个分析模型。

虚拟PC模拟PC。

如果一个飞行模拟器可以将你从A运输到B,那么它将是一个飞行模拟器。

仿真器将总是要接近实时运行。 对于并非总是如此的模拟器。 地质模拟可以做1000年/秒或更多。

模拟=用于分析研究

仿真=用作替代

模拟器是模拟的环境,但仿真器是仿照原始设备或系统上的使用情况的模拟器。

模拟器模仿它正在模拟的东西的活动。 它“出现”(根据上下文,很多可以与这个“出现”一起)与被模拟的事物相同。 例如,飞行模拟器“似乎”是一个真正的飞行给用户,尽pipe它将你从一个地方运送到另一个地方。

另一方面,模拟器实际上“ 了被模仿的东西,而这样做“ 似乎也在做同样的事情 ”。 模拟器可以使用不同的协议集来模拟被模拟的东西,但是结果/结果总是与原始对象相同。 例如,EMU8086仿真计算机上的8086微处理器,这显然不是在8086(= 不同的协议 )上运行,但它给出的输出是真正的8086。

这是一个重点差异。 仿真器1专注于重新创build系统的行为,而不考虑系统如何在内部运行。 模拟器2专注于对系统组件进行build模。 当你主要关心系统的function时使用仿真器,而当你关心它是如何工作的时候使用模拟器。

对于一般的英语含义来说,仿效是“在质量或行为上等于或超越另一个的努力”,而仿真则是“ 模拟 ,复制,复制行为,外观或性质”。 没有太大的区别。 仿真来自于“奋斗,竞争”的æmulus ,与“模仿”和“形象”有关,performance为表面杠杆相似。 “模拟”来自similis的 “like”,就像“similar”一样,这也许暗示了更深层次的一致性。

参考文献:

  1. 维基百科: 模拟器
  2. 维基百科: 计算机模拟
  3. 维基词典: emulation
  4. 模拟
  5. 词源在线: 仿真
  6. 词源在线: 模拟

我不认为模拟器和模拟器可以比较。 两者都模仿一些东西,但不是同一范围的推理的一部分,他们不是在相同的情况下使用。

简而言之:仿真器被devise为复制原始的一些特征,甚至可以在真实的环境中replace它。 模拟器不是要复制原始的特征,而只是看起来类似于原来的人类。 没有原始的function,模拟器不能在真实的环境中取代它。

仿真器是一种模仿足够接近的设备,以便它可以替代真实的东西 。 例如,你想要一个电路像ROM(只读存储器)电路一样工作,但也想调整内容,直到它是你想要的。 您将使用一个ROM模拟器,一个黑盒(可能是基于CPU的),具有与您要模拟的ROM兼容的物理和电气接口。 仿真器将被插入到设备中,而不是真正的ROM。 主板在工作时不会看到任何区别,但是您可以轻松更改仿真ROM内容。 否则,仿真器的行为与主板上下文中的实际情况完全一致(可能由于实际的内部模型而慢一点),但是会有额外的function(如重写)仅在devise者看来,在主板背景之外。 所以仿真器的定义是:模仿原始的,具有所有function特征的东西,实际上可以在现实世界中取代它,并且可能具有在正常情况下不可见的附加特征。

一个模拟器被用在另一个思维上下文中,例如一个平面模拟器,一个汽车模拟器等等。模拟只考虑实际事物的某些方面,通常涉及到人类将如何感知和控制它 。 模拟器不会执行真正的东西的function,不能被推翻。 飞机模拟器不会飞行或携带某人,这不是它的目的。 模拟器不是为了工作,而是为了让驾驶员看起来像实际的东西而不是正常的东西,例如允许地面训练(包括在像所有引擎故障那样的exception情况下)。 所以模拟器的定义是:人类可以看到的东西,在某种程度上,像原来的东西,但不能代替实际使用。 另外飞行员会知道模拟器是模拟器。

我不认为我们会看到任何ROM模拟器,因为ROM不会与人交互,也不会看到任何平面模拟器,因为飞机不能在现实世界中执行相同的function。

在我看来,模拟器或模拟器中的模型可以是任何东西,并且不会与原始模型相似。 一个ROM模拟器模型将可能是软件,而不是硬件,MS飞行模拟器不能是比它更多的软件。

这两个术语的比较将与当前select的答案(来自Toybuilder)相矛盾,这个答案将差异放在内部模型上,而我的build议是区别在于虚假是否可以用来在现实世界中执行实际function到一些被接受的范围,实际上)。

请注意,平面模拟器也将模拟不属于飞机一部分的地球,太阳,风等,因此平面模拟器将不得不模拟飞机的某些方面以及环境因为它不是在这个实际的环境中使用,而是在一个训练室。

这与仅仿真原型的仿真器有很大的不同,其目的是在原有的环境中使用,而不需要仿真。 回到平面的上下文…什么可能是飞机模拟器? 也许一列火车将连接两个机场 – 实际上是两个飞机的台阶 – 载客,机上挂着空姐,汽车内部看起来像一个真正的飞机机舱,并与队长说:“女士们,先生们我们的高度是十几分钟,温度在我们的目的地是24°C“。 它的好处很难看,哼哼…

总而言之,模拟器是一个真正意图工作的东西,模拟器是一个假的用来欺骗用户。

简单的解释。

如果您想将PC(运行Windows)转换为Mac,则可以执行以下任一操作:

(1)您可以简单地在Windows上安装Mac主题。 所以,你的PC感觉更像Mac,但是你实际上不能运行任何的Mac程序。 (SIMULATION)

(要么)

(2)您可以编程您的电脑运行像Mac(我不知道这是否可能:P)。 现在,您甚至可以成功运行Mac程序,并期望与Mac上相同的输出。 (EMULATION)

在第一种情况下,你可以体验Mac,但是你不能期望Mac上有相同的输出。
在第二种情况下,您可以预期与Mac上的输出相同,但事实仍然是它只是一台PC。

几年前,我提出了一个很短的谚语,我相信,它非常好地捕捉了差异的本质:

模拟器是一个任务的模拟器。

我的意思是说,当你不能使用真实的东西的时候,你使用了一个模拟器,而当你不能使用真实的东西时,你会使用一个模拟器, 并且你想find一些东西

仿真器是一个系统的模型,它将接受仿真系统接受的任何有效input,并产生相同的输出或结果。 所以你的软件是一个仿真器,只要它精确地再现仿真系统的行为

要理解模拟器和模拟器之间的区别,请记住,模拟器试图模仿真实设备的行为。 例如,在iOS模拟器的情况下,它模拟真实的iPhone / iPad设备的真实行为。 但是,模拟器本身使用Mac上安装的各种库(如QuickTime)来执行其渲染,使其效果与实际的iPhone相同。 另外,在模拟器上testing的应用程序被编译成x86代码,这是模拟器可以理解的字节代码。 相反,真正的iPhone设备使用基于ARM的代码。

相比之下,仿真器模拟真实设备的工作。 在仿真器上testing的应用程序被编译成实际设备使用的实际字节码。 仿真器通过将字节码转换为可由运行仿真器的主机执行的forms来执行应用程序。

为了理解仿真和仿真之间的细微差别,假设你试图说服一个孩子玩刀是危险的。 为了模拟这个,你假装用刀割伤自己,痛苦地呻吟。 为了模仿这个,你实际上削减了你自己。

或多或less说一句正常的话:如果你的软件可以完成模拟系统所能做的一切,那就是一个模拟器。 如果它只是近似于一个系统(IT或其他)的结果,那么它就是一个模拟器。

模拟

模拟是一个系统,其行为类似于其他事物,但是以完全不同的方式实现。 它提供了一个系统的基本行为,但不一定遵守被模拟系统的所有规则。 这是给你一个关于如何工作的想法。

以飞行模拟器为例。 它看起来和感觉就像你在飞机上飞行一样,但是你完全没有了飞机的实际情况,你可以按照自己的意愿弯曲或者折断这些规则。 例如,在伦敦和悉尼之间空中客车A380颠倒过来而不会破坏。

仿真

仿真是一个完全像其他事物一样的系统,并且遵守被仿真系统的所有规则。 它实际上是另一个系统的完全复制,直到与仿真系统的input和输出二进制兼容,但是在与原始仿真系统的环境不同的环境中运行。 规则是固定的,不能改变,或者系统失败。

MAME系统是围绕这个前提而build立的。 所有那些已经被遗忘了的老式街机系统,几乎完全用硬件或硬件系统的固件来实现,可以模拟出当你达到最高分数时会发生的原始错误和崩溃。

模拟器:和解释器相似。 即它实际上是逐行地执行真实的代码来模仿行为

模拟器:它是类似的可执行文件。 即它需要编译代码并执行它。

两个术语之间的区别有点模糊。 来自一个“模拟器”是硬件,允许您debuggingembedded式系统的世界。 记住那些允许你使用ICE(在电路仿真)function来debuggingPC平台的产品,我发现使用术语“仿真”对于模拟一个硬件行为的软件来说有点用词不当。

我目前使用这个术语的理由是仿真是它可以“增强”function,只关心系统行为的“合理的”近似。

ICE :(在电路仿真中)一块插入电路板而不是实际处理器的硬件。 它允许您像运行实际处理器一样运行系统。 通常情况下,这些处理器都有一个变种,可以用胶合逻辑来实际执行软件,以允许用户在硬件控制下突破执行和单步执行。 有些还会提供日志function。 大多数现代处理器开发系统已经用JTAG仿真代替了ICEtypes仿真,其中JTAG只是通过专用串行链路与处理器通信,并且所有的执行都由安装在板上的处理器执行。

软件EMULATOR:一个0x86模拟器只关心能够执行0x86汇编语言,而不是提供一个具体的0x86处理器的每个周期行为模式的精确循环。 Bochs就是一个例子。 QEMU这样做,但也允许使用特殊内核模块的“虚拟化”。

仿真器:德州仪器(TI)为软件开发提供了处理器的CYCLE ACCURATE行为模型,旨在精确模拟开发人员在使用硬件之前使用的特定处理器核心行为。

软件EMULATOR增强function:BLEEM不仅允许您运行Playstation软件,而且还允许以比Playstation更高的分辨率输出显示,并且还利用了更高级的GPUfunction。 (即更好地混合和平滑纹理。)

在计算机科学中,仿真和仿真都会产生与原始系统相同的输出。 然而,仿真也使用相同的过程来实现它,并且由相同的材料制成 。 仿真使用原始系统的不同stream程。 另外值得注意的是复制这个术语,它是两者的中间体 – 使用相同的过程,但是由不同的材料制成。

所以,如果我想在我的电脑上运行我的老超级马里奥兄弟游戏,我使用SNES 模拟器 ,因为它使用相同或类似的计算机代码(进程)来运行游戏,并使用相同或相似的材料(硅芯片) 。 但是,如果我想在我的个人电脑上使用波音747喷气式飞机,我会使用飞行模拟器,因为它使用完全不同于原来的过程(没有实际的机翼,升力或空气动力学参与!)。

以下是来自计算机科学术语表的确切定义:

仿真是捕获系统的input和输出之间的function连接的系统的模型,但不一定基于与系统本身相同或相似的过程。

复制是捕获系统input和输出之间的function连接的系统模型,基于与系统本身相同或相似的过程。

仿真是某个系统的一个模型,它捕获系统input和输出之间的function连接,基于与那个系统相同或相似的过程,并且由与该系统相同的材料构build。

参考:开放大学,M366词汇表1.1,2007

仿真器是真实系统的替代品,但仿真器用于优化,理解和估计真实系统。

两者都是一个对象的模型,你有一些控制input和观察输出的手段。

关键区别在于:

  • 使用模拟器 ,您希望输出完全匹配您正在模拟的对象将生成的内容。
  • 使用模拟器 ,您希望输出的某些属性与对象的生成类似

让我举个例子 – 假设你想做一些系统testing,看看如何在系统中添加一个新的传感器(如温度计)会影响系统。 你知道温度计每秒钟发送一个包含其测量的信息。

模拟 – 如果你还没有温度计,但是你想testing这个消息速率不会使你的系统超载,你可以通过附加一个发送一个随机数的单元来模拟传感器,每秒8次。 您可以运行任何不依赖于传感器发送的实际值的testing。

仿真 – 假设你有一个非常昂贵的温度计,测量到0.001 C,你想看看是否可以通过一个更便宜的温度计只能测量到最接近的0.5 C.你可以使用昂贵的温度计来模拟更便宜的温度计和然后将读数四舍五入到最接近的0.5C并运行依赖于温度值的testing。

请注意,模拟也可用于预测或预测行为。 有限元分析模拟用于许多应用,包括天气预报和虚拟风洞。

术语的定义:

  • 仿真 – 超越或完全匹配
  • 模仿 – 模仿外观或性格

这个问题可能是最好的回顾历史的做法。

在过去,我已经在PlayStation&SEGA的个人电脑上看到了游戏机模拟器。

模拟器在涉及试图模仿真实生活行为的软件(例如驾驶或飞行)时是司空见惯的。 Gran Turismo和微软的飞行模拟器可以作为模拟器的典型例子。

至于语言上的差异,仿效通常是指抄袭某人(或某物)的赞美特征或行为的行为。 仿真不同于模仿,其中一个人是为了嘲弄而复制的。

动词“模拟”的语言意义本质上是假装或模仿某人或某事。

模拟是一个系统,其行为类似于其他事物,但是以完全不同的方式实现。 它提供了一个系统的基本行为,但可能并不一定遵守被模拟系统的所有规则。 这是给你一个关于如何工作的想法。

仿真是一个完全像其他事物一样的系统,遵守被仿真系统的所有规则。 它实际上是另一个系统的完全复制,直到与仿真系统的input和输出二进制兼容,但是在与原始仿真系统的环境不同的环境中运行。 规则是固定的,不能改变或系统失败。

这些词的定义描述了最好的区别。 谷歌search给出了模拟和模拟的以下定义:

模仿 模仿外观或性格。

模仿 比赛或超越(一个人或成就),通常是模仿。

模拟仿真系统。 一个仿真模拟一个系统,以至于它可以取代它,甚至可能超过它。

在计算中,仿真可能会代替正在仿效的系统。 它通常甚至会超越它所模仿的系统。 例如,游戏控制台模拟器通常会进行改进,例如更好的硬件兼容性,更好的性能和改进的audio/video质量。

另一方面,模拟受到模型的限制。 他们是模仿系统的最佳尝试,但不能替代它。 有硬件模拟器,因为硬件可以模仿,很难区分。 没有农业模拟器,因为没有模拟可以取代实际的农业。 我们只能模拟农业模式,以获得更好的农业发展的见解。

虚拟PC试图模拟一台计算机, 从程序员的angular度来看,同时它从电子工程师的angular度来 模拟一台计算机。

仿真器:

考虑一个你只知道英语而你在中国的情况。 为了与中国人交stream,你需要一个翻译。 现在,译者的angular色就是要用英文向你求助,转换成中文,然后把这个意见给中国人,得到中国人的回应,转换成英文,并用英文给你。 现在翻译和中国人是模拟器。 这两个组合将提供类似的function,如果你正在与英国人沟通。 所以硬件可能会有所不同,但function将是相同的。

模拟器:

我不能提供比SPICE或飞行模拟器更好的例子。 两者都将取代硬件组件的行为与软件或math模型,将performance类似的硬件。

最终取决于哪种解决scheme更适合项目需求。