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

时间:2009-10-18 11:13:41

标签: terminology simulation emulation

虽然我理解模拟和仿真的含义一般,但我几乎总是对它们感到困惑。假设我创建了一个模仿现有硬件/软件的软件,我该怎么称呼它?模拟器还是模拟器?

有人能解释编程方面的差异吗?

奖金:这两个词之间的英语差异是什么? (对不起,我不是母语:))

22 个答案:

答案 0 :(得分:424)

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

另一方面,模拟涉及对目标的基础状态进行建模。良好模拟的最终结果是模拟模型将模拟它正在模拟的目标。

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

MAME是街机游戏模拟器; Hyperterm是一个(不是很好)的终端模拟器。无需对街机或终端进行详细建模即可获得所需的模拟行为。

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

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

答案 1 :(得分:307)

如果飞行模拟器可以将您从A运送到B,那么它将是飞行模拟器。

模拟器可以替换真实使用的原件 Virtual PC模拟PC。

模拟器是用于研究和分析的模型。

仿真器总是必须接近实时运行。对于并非总是如此的模拟器。地质模拟可以达到1000年/秒或更长时间。

答案 2 :(得分:153)

模拟=用于分析学习

仿真=用作替代

模拟器是一个模型环境,但模拟器是复制原始设备或系统上的用法的模拟器。

模拟器模仿它正在模拟的东西的活动。它“出现”(很多可以用这个“出现”,取决于上下文)与被模拟的东西相同。例如,飞行模拟器“出现”是对用户的真实飞行,尽管它确实将您从一个地方运送到另一个地方。

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

答案 3 :(得分:37)

这是焦点的差异。仿真器 1 专注于重新创建系统的行为,而不考虑系统如何在内部运行。模拟器 2 专注于对系统组件进行建模。当你关心系统的功能时,你会使用模拟器,而当你关心它是如何做的时,你会使用模拟器。

至于他们的一般英语含义,仿效是“努力在质量或行动”中等于或优于另一种,而模拟是“模型,复制,复制“的行为,外观或属性。差别不大。仿真来自æmulus,“奋斗,竞争”,并且与“模仿”和“形象”相关,这表明了表面杠杆的相似性。 “模拟”来自 similis “like”,“相似”这个词也可能表示更深的一致性。

参考文献:

  1. 维基百科:Emulator
  2. 维基百科:Computer Simulation
  3. 维基词典:emulation
  4. 维基词典:simulation
  5. 在线词源:emulation
  6. 在线词源:simulation

答案 4 :(得分:19)

我不认为可以比较仿真器和模拟器。两者都模仿某些东西,但不属于相同的推理范围,它们不会在相同的上下文中使用。

简而言之:模拟器旨在复制orginial的某些功能,甚至可以在真实环境中替换它。模拟器不是为了复制原件的特征而设计的,而是仅仅与原始人类相似。如果没有原始功能,模拟器就无法在真实环境中取代它。

模拟器是一种模仿足够接近的设备,以便可以替换为真实的。例如,您希望电路像ROM(只读存储器)电路一样工作,但也希望调整内容直到它是您想要的。您将使用ROM仿真器,黑盒子(可能是基于CPU的),其物理和电气接口与您要模拟的ROM兼容。模拟器将插入设备以代替真实ROM。工作时主板不会有任何差异,但您可以轻松更改模拟ROM内容。否则,仿真器将完全像其主板上下文中的实际情况一样(可能由于实际的内部模型而稍微慢一点)但是在主板上下文中将只有设计者可见的其他功能(如重写) 。因此,模拟器定义将是:模仿原始的东西,具有其所有功能特征,实际上可以在现实世界中的某些范围内替换它,并且可能具有在正常上下文中不可见的其他特征。

模拟器用于另一个思考环境,例如飞机模拟器,汽车模拟器等。模拟只关注实际事物的某些方面,通常与人类将如何感知和控制它。模拟器不会执行真实的东西的功能,也不能取代它。飞机模拟器不会飞行或载人,这根本不是它的目的。模拟器不是为了工作,而是为了飞行员看起来像某些目的而不是正常目的,例如,允许地面训练(包括在所有发动机故障等异常情况下)。因此,模拟器定义将是:在某种程度上可以像人类一样出现在人类身上,但不能替代实际使用的东西。此外,飞行员将知道模拟器是模拟器。

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

在我看来,模拟器或模拟器中的模型可以是任何东西,并且不能与原始模型相似。 ROM仿真器模型可能是软件而不是硬件,MS Flight Simulator不能是软件。

这两个术语的比较将与当前选择的答案(来自Toybuilder)相矛盾,后者将差异放在内部模型上,而我的建议是,不同之处在于伪造是否可以用来执行实际的功能。现实世界(确实是一些可接受的延伸)。

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

这与仅模拟原始模拟器的模拟器有很大不同,其目的是在原始环境中使用而无需模拟它。回到飞机上下文......什么可能是飞机模拟器?也许一列火车将连接两个机场 - 实际上是两个平面台阶 - 载着乘客,船上有空中小姐,汽车内部看起来像一个真正的飞机舱,并且船长说“女士们,先生们我们的海拔高度是10公里和温度在我们的目的地是24°C“。它的好处很难看,哼...... ...

作为一个结论,模拟器是一个真正的工作,模拟器是一个虚假的意图诱骗用户。

答案 5 :(得分:12)

简单说明。

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

  

(1)您只需在Windows上安装Mac主题即可。所以,你的PC感觉更像Mac,但实际上你无法运行任何Mac程序。 (SIMULATION)

(或)

  

(2)您可以将PC编程为像Mac一样运行(我不确定这是否可行:P)。现在,您甚至可以成功运行Mac程序,并期望获得与Mac相同的输出。 (EMULATION)

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

答案 6 :(得分:10)

几年前,我想出了一个非常简短的格言,我相信,它很好地捕捉了差异的本质:

  

模拟器是执行任务的模拟器。

我的意思是,当你不能使用真实的东西时,你使用模拟器,当你不能使用真实的东西并且想要找到关于它的东西时使用模拟器

答案 7 :(得分:10)

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

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

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

答案 8 :(得分:9)

仿真器是系统的模型,它将接受仿真系统可接受的任何有效输入,并产生相同的输出或结果。因此,只有当它精确地再现模拟系统的行为时,您的软件才是模拟器。

答案 9 :(得分:6)

或多或少的正常说法:如果您的软件可以完成模拟系统可以执行的所有操作,那么它就是模拟器。如果它只是近似系统的结果(IT或其他),它就是一个模拟器。

答案 10 :(得分:4)

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

答案 11 :(得分:4)

模拟器:它类似于解释器。 即它实际上在逐行中执行实际代码以模仿行为

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

答案 12 :(得分:3)

两个术语之间的区别有点模糊。来自一个“仿真器”是允许您调试嵌入式系统的硬件的世界。并且记住允许您具有ICE(电路仿真)功能来调试PC平台的产品,我发现使用术语“仿真”对于模拟硬件行为的软件来说有点用词不当。

我对当前使用该术语的理由是仿真是它可以“增强”功能,而只关注系统行为的“合理”近似。

ICE :(在电路仿真中) 插入电路板代替实际处理器的硬件。它允许您运行系统,就像实际处理器存在一样。通常,它们具有处理器的变体,以实际使用胶合逻辑执行软件,以允许用户在硬件控制下中断执行和单步。有些还会提供日志记录功能。大多数现代处理器开发系统都采用JTAG仿真取代ICE类型仿真,其中JTAG只通过专用串行链路与处理器通信,所有执行都由安装在板上的处理器执行。

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

模拟器: 德州仪器(TI)为处理器提供了一个CYCLE ACCURATE行为模型,用于软件开发,旨在准确模拟SPECIFIC处理器内核行为,供开发人员在使用硬件之前使用。

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

答案 13 :(得分:3)

两者都是一个对象的模型,你有一些控制输入和观察输出的方法。

关键区别在于:

  • 使用 模拟器 ,您希望输出完全匹配您要模拟的对象会产生什么。
  • 使用 模拟器 ,您希望输出的某些属性类似于对象将产生的内容。

让我举个例子 - 假设您想进行一些系统测试,看看如何向系统添加新传感器(如温度计)会影响系统。你知道温度计每秒发送一次包含其测量值的信息8次。

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

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

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

术语的定义:

  • 仿效 - 超越或完全匹配
  • 模拟 - 模仿外表或角色

答案 14 :(得分:2)

通过查看历史实践,这个问题可能是最好的答案。

过去,我在PC上看过PlayStation和PC的游戏机模拟器。 SEGA。

模拟器在提到试图模仿真实生活行为的软件时很常见,例如驾驶或飞行。 Gran Turismo和Microsoft Flight Simulator成为模拟器的经典例子。

至于语言差异,仿真通常是指复制某人(或某事物)值得称赞的特征或行为的行为。模仿与模仿不同,模仿中的人是为了嘲弄而复制的。

动词'模拟'的语言意义主要是假装或模仿某人或某事。

答案 15 :(得分:2)

这些词的定义描述了最好的差异。谷歌搜索提供了以下模拟和模拟的定义:

模拟 模仿外观或角色。

模仿 匹配或超越(个人或成就),通常是模仿。

模拟模仿系统。仿真模拟系统非常好,可以替代它,甚至可以超越它。

在计算中,仿真将是它正在模拟的系统的替代品。通常情况下,它甚至会超越它所模仿的系统。例如,游戏机模拟器通常会进行改进,例如更高的硬件兼容性,更好的性能以及改进的音频/视频质量。

另一方面,模拟受到模型的限制。它们是模仿系统的最佳尝试,但不是替代它的系统。有硬件模拟器,因为可以模仿硬件,很难区分。没有农业模拟器,因为没有可以取代实际农业的模拟。我们只能模拟农业模型,以深入了解如何更好地耕种。

答案 16 :(得分:2)

模拟是一种与其他行为相似的系统,但是以完全不同的方式实现。它提供了系统的基本行为,但可能不一定遵守所模拟系统的所有规则。它可以帮助您了解某些工作原理。

仿真是一种行为完全的系统,并且遵守所模拟系统的所有规则。它实际上是另一个系统的完全复制,直到与模拟系统的输入和输出二进制兼容,但在与原始模拟系统的环境不同的环境中运行。规则是固定的,无法更改或系统失败。

答案 17 :(得分:2)

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

因此,如果我想在我的PC上运行我的旧超级马里奥兄弟游戏,我使用SNES 模拟器,因为它使用相同或类似的计算机代码(进程)来运行游戏,使用相同或相似的材料(硅芯片)。 但是,如果我想在我的电脑上驾驶波音747飞机,我会使用飞行模拟器,因为它使用了与原始完全不同的过程(没有实际的机翼,升力或空气动力学!)。 / p>

以下是从计算机科学词汇表中获取的确切定义:

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

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

仿真是某个系统的模型,它捕获系统的输入和输出之间的功能连接,基于与该系统相同或相似的过程,并且由相同的材料构建作为那个系统。

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

答案 18 :(得分:1)

虚拟PC尝试模拟计算机从程序员 BUT的角度来看,同时模拟从电气工程师的角度来看计算机

答案 19 :(得分:1)

这两个术语完全不同,只有很少的交叉。要找到正确的术语实际上很容易,只需考虑以下内容:

模拟实际上并没有做任何事情。您可以研究它,例如计算机的工作原理,但除此之外通常没有其他结果。飞行模拟器中的飞机失事不会造成真正的伤害。天气预报模拟本身不会改变天气。

模拟可以做一些真实的事情。您可以像使用物理计算机一样使用模拟计算机并使用它创建文档。飞行模拟器中的飞机失事会产生这样的结果,就像人们经历真正的影响一样,包括可能的身体伤害。

您的困惑可能源于这样一个事实,即“研究模拟”和“访问模拟”通常是一回事。

您并不孤单。电影“矩阵”谈到了模拟。然而,黑客帝国正在运行模拟,因为它对黑客帝国的所有成员都有真正的影响。相比之下,训练室没有真正的影响,所以这是一个模拟(黑客帝国)。

让我们看一些例子。

模拟与模拟雨

在花园里取一根水管,让它下雨。这里的模拟和仿真有什么区别?

当你模拟下雨时,人们仍然会责怪你淋湿了。你的雨对世界有一些真正的影响,但你的模拟没有,因为模拟不会欺骗任何人,因为这是真正的雨。

相反,当你模拟下雨时,人们会责怪天气。也就是说,你模拟的雨真的表现得像现实中的雨。 这种下雨模拟因此扭曲了现实, 让人们相信错误的罪魁祸首。

<块引用>

我花了很长时间才明白这一点。 因此,要解释所有的混乱并不容易,也不明显。

请记住,模拟可能会产生副作用, 就像天气预报是基于模拟的, 这需要相当多的计算能力和电能, 对环境有影响。

因此,在“模拟下雨”的示例中,人们淋湿只是一种副作用,而不是模拟的一部分。如果你用这个模拟的雨来模拟彩虹,情况也是如此。虽然“彩虹如何工作”的属性是此模拟的一部分,但模拟本身并不提供彩虹,这只是由于太阳在水滴的副作用上的折射而发生的。

模拟计算机与仿真计算机

虽然您可能认为“模拟计算机可以产生结果”,但这实际上是错误的推理。如果您将文件保存到模拟硬盘驱动器上,这些文件不能离开模拟驱动器之外的模拟驱动器。您可以通过研究模拟驱动器来获取文件,但这不是模拟本身的一部分。

如果硬盘驱动器保存了数据,以至于数据实际上可以在模拟之外使用,那么您可以在模拟中使用一个模拟硬盘来这样做。

因此,仿真可以是仿真的一部分,反之亦然。

模拟文件系统与模拟文件系统

如果您模拟一个文件系统,为了实用性,您可能会选择将文件按原样保存到您的真实文件系统中(也许带有一些额外的元信息)。在这种情况下,模拟似乎在模拟之外创造了真正的“价值”:可用文件!

但这只是巧合,因为您的模拟文件系统实际上也模拟了文件系统。您实际上是在模拟中模拟了外部文件系统!

模拟与模拟 TPM 或 HSM

区别的一个很好的例子是,当您考虑安全性时。 A TPM is a specific device to keep it's own keys secure (source of identity) while an HSM is a general device to secure foreign keys (verify identity)

<块引用>

有趣的事实:我的手指经常输入 TMP 而不是 TPM。

如果您模拟 TPM,这会对安全性产生巨大影响,因为这样您就可以观察 TPM 的内部状态。这使得所有的安全性无效。即使这样的模拟可以为您改进 TPM 本身的设计提供有价值的提示,您也不希望将宝贵的数据暴露给真实的模拟 TPM。

但是,如果您模拟 TPM,您将尽量将这些内部状态隐藏到外部。这样一个模拟的 TPM 可以用来真正保护其他东西,而不是没有它。

使用真正的 TPM,您无法模拟真正的 HSM 的属性。您可以存档的只是模拟 HSM,但这不会具有真实 HSM 的安全属性,因此存储在此模拟 HSM 中的所有数据都不会受到保护(它们只会在模拟本身内受到保护)。< /p>

相比之下,使用真正的 HSM,您可以模拟具有真正 TPM 的所有属性的 TPM。为此,需要构建 HSM,使得没有信息需要离开 HSM,也不需要离开 TPM。

(请注意,我对 HSM 或 TPM 一无所知,因此可能没有能够提供模拟 TPM 的 HSM。)

模拟世界与模拟世界

如果我们的世界是模拟的,那么我们也是模拟。因此一些旁观者(让我们称她为上帝)可以随时看着我们并改变模拟。我们也无法确定我们是否被模拟。因为我很确定我知道我是,所以我不认为我是模拟的,因为自我意识对我来说看起来像是一种具有真实成分的效果,这与模拟相矛盾。这也意味着,我们的世界也不能是模拟,因为模拟只能像世界一样影响我,如果我是模拟的一部分。

但是我们的世界仍然可以被模仿(就像在电影“黑客帝国”中一样),因为我要“证明世界”的只是我的心态和感官输入,我无法验证,因为我不能离开自己。如果我不是模拟的一部分,那么应该有机会观察到不连续性(如电影“矩阵”中),以防模拟无法完美运行。

这在我模拟时也会发生变化,就像在模拟器中运行操作系统一样。然后我无法观察到此类错误,因为我的状态可以从仿真中重置(称为:睡眠)而不会观察到中断。

然而,我宁愿认为世界是一种全息幻觉,而不是一种模拟。因为如果它是模拟的,那么我就会被某个出于某种目的运行模拟的人(称他为 Rick)所利用,而幻觉纯粹是我自己的事情。

我就此打住,因为幻觉会将我们引向完全不同的事物。

答案 20 :(得分:0)

仿真器:

考虑一种你只懂英语并且你在中国的情况。为了与中国人互动,您需要一名翻译。现在,翻译的角色是它会用英语寻求你的意见并转换成中文,然后把这些意见交给中国人,得到中国人的回应,转换成英文,用英文给你输出。现在,翻译和中国人是模拟器。两个组合将提供类似的功能,就像您与英国人沟通一样。因此硬件可能不同,但功能也相同。

模拟器:

我不能提供比SPICE或飞行模拟器更好的例子。两者都将用软件或数学模型替换硬件组件行为,其性能类似于硬件。

最终,它取决于哪种解决方案更适合项目需求的背景。

答案 21 :(得分:0)

Simulator Emulator 更为广泛,并且似乎在以上文章中都忽略了该术语的对偶性。

仿真器

人们开始以简单的方式替换现有系统的某些硬件部分时,他们决定在“计算机世界”中使用新的单词“ emulation”(模拟)-模仿其行为并依靠计算的本质来一定不要破坏某些东西并使所有东西都处于同等状态。 因此,我们模拟了这一部分! (并且整个操作仍然像以前一样)

仿真器通常在狭义上用于数字领域,作为以前已知和存在的东西(虚拟芯片,电路板,电子设备)的替换和虚拟化-以数字形式作为软件呈现。因此,当世界变得更加数字化并将 emulator 词带给大众时,大众为它增加了不确定性(或其他原因)。

模拟器

首先,我看到了许多关于模拟器的评论,这些评论是在做或替换真实的东西,而不是在模拟器上。

BUT飞行模拟器用于真实物体-它训练飞行员,提高他们的技能和知识,并且可以代替昂贵的真实飞机并节省大量资金。我们不能只说一个平面模拟器,因为我们有种内在的感觉,那就是 simulator :)平面模拟器可以包含真实的模拟雷达或应答器。 >

相反的说法是,仿真器用于分析和研究(仿真器用于真实的东西),但是分析和研究的真实性不亚于仿真GSM板(在信息时代,甚至更多)我们住在)。分析为企业增加了价值,削减了成本或指出了不少于已更换(模拟)硬件的利润。

模拟器类似于由于某种原因(成本,技术,物理上的不可能)而无法获得的某些事物的建模。通常针对市场,天气,燃烧,用户等我们不熟悉的新事物,无形事物或复杂事物进行模拟。这就是航班,黑洞,证券交易所,模拟。

那么最后:

  1. 模拟器比模拟器更广泛
  2. 模拟器通常可以模仿/建模更多的全局过程/事物,具有缩小模仿范围的能力(例如,具有代表某些已知模型的预设的电容器模拟器)
  3. 仿真器倾向于模仿具有某些规格,已知特性和属性的某些硬件设备(例如SNES仿真器,Intel 8087或Roland TB-303)

至单词起源

全部来自拉丁文,意思是:

  • 模拟是“相等的”(看起来更具攻击性和直接性-竞争)
  • 模拟是“相似的”(看起来更狡猾和棘手-模仿)