Simulator or Emulator? What is the difference?
虽然我理解模拟和仿真的含义一般,但我几乎总是对它们感到困惑。 假设我创建了一个模仿现有硬件/软件的软件,我该怎么称呼它? 模拟器还是模拟器?
任何人都能解释编程方面的差异吗?
额外奖励:这两个术语的英语差异是什么? (对不起,我不是母语人士:))
仿真是模仿外部可观察行为以匹配现有目标的过程。仿真机制的内部状态不必准确地反映它正在仿真的目标的内部状态。
另一方面,模拟涉及对目标的基础状态进行建模。良好模拟的最终结果是模拟模型将模拟它正在模拟的目标。
理想情况下,您应该能够查看模拟并观察在查看原始目标时也会看到的属性。实际上,出于性能原因,可能会有一些模拟的快捷方式 - 也就是说,模拟的某些内部方面实际上可能是仿真。
MAME是街机游戏模拟器; Hyperterm是一个(不是很好)的终端模拟器。无需对街机或终端进行详细建模即可获得所需的模拟行为。
飞行模拟器是一个模拟器; SPICE是一个电子模拟器。他们尽可能地模拟目标的每个细节,以表示目标在现实中的作用。
编辑:其他回应指出,仿真的目标是能够替代它正在模拟的对象。这是一个重点。模拟的重点更多地放在目标内部状态的建模上 - 模拟并不一定会导致模拟。特别是,模拟可能比实时运行得慢得多。例如,SPICE不能替代实际的电子电路(即使假设有某种神奇的设备可以完美地将电路连接到SPICE仿真。)
模拟
模拟并不总是导致模拟 -
如果飞行模拟器可以将你从A运送到B,那么它将是一个飞行模拟器。
仿真器可以替换原件以供实际使用。
Virtual PC模拟PC。
模拟器是用于研究和分析的模型。
仿真器总是必须接近实时运行。对于并非总是如此的模拟器。地质模拟可以达到1000年/秒或更长时间。
模拟=用于分析和研究
仿真=用作替代品
模拟器是一种模型环境,但模拟器是复制原始设备或系统上的用法的模拟器。
模拟器模仿它正在模拟的东西的活动。它"出现"(很多可以用这个"出现",取决于上下文)与被模拟的东西相同。例如,飞行模拟器"出现"是对用户的真实飞行,尽管它不会将您从一个地方运送到另一个地方。
另一方面,模拟器实际上"做"了被模拟的东西所做的事情,并且这样做也"似乎在做同样的事情"。模拟器可以使用不同的协议集来模仿正在模拟的事物,但结果/结果始终与原始对象相同。例如,EMU8086模拟计算机上的8086微处理器,显然不是在8086(=不同协议)上运行,但它提供的输出是真正的8086所能提供的。
这是焦点的差异。 Emulators1专注于重建系统的行为,而不考虑系统如何在内部运行。 Simulators2专注于对系统组件进行建模。当您主要关心系统的功能时,您可以使用模拟器,当您关心它是如何工作时,您可以使用模拟器。
至于他们的一般英语含义,模仿是"努力在质量或行动上等于或优于另一个",而模拟是"模仿,复制,复制行为,外观或属性"。差别不大。仿真来自?mulus,"奋斗,竞争",并且与"模仿"和"形象"有关,这表明了表面杠杆的相似性。"模拟"来自similis"like","相似"这个词也可能表示更深的一致性。
参考文献:
我不认为可以比较仿真器和模拟器。两者都模仿某些东西,但不属于相同的推理范围,它们不会在相同的上下文中使用。
简而言之:模拟器旨在复制orginial的某些功能,甚至可以在真实环境中替换它。模拟器不是为了复制原件的特征而设计的,而是仅仅与原始人类相似。没有原始功能,模拟器无法在真实环境中取代它。
模拟器是一种模仿足够接近的东西的设备,以便它可以代替真实的东西。例如,您希望电路像ROM(只读存储器)电路一样工作,但也希望调整内容直到它是您想要的。您将使用ROM仿真器,黑盒子(可能是基于CPU的),其物理和电气接口与您要模拟的ROM兼容。模拟器将插入设备以代替真实ROM。工作时主板不会有任何差异,但您可以轻松更改模拟ROM内容。否则,仿真器将完全像其主板上下文中的实际情况一样(可能由于实际的内部模型而稍微慢一点)但是在主板上下文中将只有设计者可见的其他功能(如重写) 。因此,模拟器定义将是:模仿原始的东西,具有其所有功能特征,实际上可以在现实世界中的某些范围内替换它,并且可能具有在正常上下文中不可见的附加特征。
模拟器用于另一种思维环境,例如平面模拟器,汽车模拟器等。模拟仅关注实际事物的某些方面,通常涉及人类如何感知和控制它。模拟器不会执行真实的东西的功能,也不能取代它。飞机模拟器不会飞行或载人,这根本不是它的目的。模拟器不是为了工作,而是为了飞行员看起来像某些目的而不是正常目的,例如,允许地面训练(包括在所有发动机故障等异常情况下)。因此,模拟器定义将是:在某种程度上可以像人类一样出现在人类身上,但不能替代实际使用的东西。此外,飞行员将知道模拟器是模拟器。
我认为我们不会看到任何ROM模拟器,因为ROM不与人类交互,也不会看到任何平面模拟器,因为飞机无法在现实世界中执行相同功能的替换。
在我看来,模拟器或模拟器中的模型可以是任何东西,并且不必与原始模型类似。 ROM仿真器模型可能是软件而不是硬件,MS Flight Simulator不能是软件。
这两个术语的比较将与当前选择的答案(来自Toybuilder)相矛盾,后者将差异放在内部模型上,而我的建议是不同之处在于伪造是否可以用于在现实世界中执行实际功能(实际上是一些可接受的延伸。
请注意,平面模拟器还将模拟不属于平面的地球,太阳,风等,因此平面模拟器必须模拟飞机的某些方面,以及平面的环境。飞机,因为它不是在这个实际环境中使用,而是在训练室中使用。
这与仅模拟原始模拟器的模拟器有很大不同,其目的是在原始环境中使用而无需模拟它。回到飞机上下文......什么可能是飞机模拟器?也许一列火车将连接两个机场 - 实际上是两个平面台阶 - 载着乘客,船上有空中小姐,汽车内部看起来像一个真正的飞机舱,并且船长说"女士们,先生们我们的海拔高度是10公里和温度在我们的目的地是24°C"。它的好处很难看,哼......
作为结论,模拟器是一个真正意图工作的东西,模拟器是一个虚假的意图欺骗用户。
好。
简单说明。
如果要将PC(运行Windows)转换为Mac,可以执行以下任一操作:
(1) You can simply install a Mac theme on your Windows. So, your PC feels more like Mac, but you can't actually run any Mac programs.
(SIMULATION)
(要么)
(2) You can program your PC to run like Mac (I'm not sure if this is possible :P ). Now you can even run Mac programs successfully and expect the same output as on Mac.
(EMULATION)
在第一种情况下,您可以体验Mac,但是您不能期望与Mac上相同的输出。
在第二种情况下,您可以期望与Mac上相同的输出,但事实仍然是它只是一台PC。
几年前,我想出了一个非常简短的格言,我相信,它很好地捕捉了差异的本质:
A simulator is an emulator on a mission.
我的意思是,当你不能使用真实的东西时,你使用模拟器,当你不能使用真实的东西并且想要找到关于它的东西时,你使用模拟器。
要了解模拟器和模拟器之间的区别,请记住模拟器试图模仿真实设备的行为。例如,在iOS模拟器的情况下,它模拟实际iPhone / iPad设备的真实行为。但是,模拟器本身使用Mac上安装的各种库(例如QuickTime)来执行其渲染,以使效果看起来与实际的iPhone相同。此外,在Simulator上测试的应用程序被编译为x86代码,这是Simulator理解的字节代码。相反,真正的iPhone设备使用基于ARM的代码。
相反,仿真器模拟真实设备的工作。在仿真器上测试的应用程序被编译为真实设备使用的实际字节代码。仿真器通过将字节代码转换为可由运行仿真器的主计算机执行的形式来执行应用程序。
要了解模拟和仿真之间的细微差别,想象一下,您正试图说服孩子玩刀具是危险的。为了模拟这一点,你假装用刀割伤自己并痛苦地呻吟。为了模仿这一点,你实际上削减了自己。
模拟器是系统的模型,它将接受模拟系统可接受的任何有效输入,并产生相同的输出或结果。因此,只有在精确再现仿真系统的行为时,您的软件才是仿真器。
或多或少的正常说法:如果您的软件可以完成模仿系统可以做的所有事情,那么它就是一个模拟器。如果它只是近似系统的结果(IT或其他),它就是一个模拟器。
仿真器是真实系统的替代品,但模拟器用于优化,理解和估计真实系统。
模拟器:它类似于解释器。
即它实际上逐行执行实际代码以模仿行为
模拟器:它是类似的可执行文件。
即它需要编译代码并执行它。
两个术语之间的区别有点模糊。来自一个"仿真器"是允许您调试嵌入式系统的硬件的世界。并且记住允许您具有ICE(电路仿真)功能来调试PC平台的产品,我发现使用术语"仿真"对于模拟硬件行为的软件来说有点用词不当。
我目前使用该术语的理由是仿真是它可以"增强"功能,而只关注系统行为的"合理"近似。
ICE :(在电路仿真中)
插入电路板代替实际处理器的硬件。它允许您运行系统,就像实际处理器存在一样。通常,它们具有处理器的变体,以实际使用胶合逻辑执行软件,以允许用户在硬件控制下中断执行和单步。有些还会提供日志记录功能。大多数现代处理器开发系统都采用JTAG仿真取代ICE类型仿真,其中JTAG只通过专用串行链路与处理器通信,所有执行都由安装在板上的处理器执行。
软件仿真器:
0x86仿真器只关心能够执行0x86汇编语言,而不是提供SPECIFIC 0x86处理器的每周期精确周期行为模型。 Bochs就是一个例子。 QEMU这样做,但也允许使用特殊内核模块进行"虚拟化"。
模拟器:
德州仪器(TI)为处理器提供了一个CYCLE ACCURATE行为模型,用于软件开发,旨在准确模拟SPECIFIC处理器内核行为,供开发人员在使用硬件之前使用。
软件EMULATOR增强功能:
BLEEM不仅允许您运行Playstation软件,而且还允许以比Playstation能够提供的更高分辨率输出显示,并且还利用了可用的GPU的更高级功能。 (即更好地混合和平滑纹理。)
两者都是一个对象的模型,你有一些控制输入和观察输出的方法。
关键的区别在于:
- 使用模拟器,您希望输出与您要模拟的对象完全匹配。
- 使用模拟器,您希望输出的某些属性与对象生成的属性类似。
让我举一个例子 - 假设你想做一些系统测试,看看如何向系统添加新的传感器(如温度计)会影响系统。你知道温度计每秒发送一次包含其测量值的信息8次。
模拟 - 如果您还没有温度计,但是您想测试此消息速率不会使系统过载,您可以通过附加一个每秒发送8次随机数的单元来模拟传感器。您可以运行任何不依赖于传感器发送的实际值的测试。
仿真 - 假设你有一个非常昂贵的温度计,测量到0.001摄氏度,你想看看你是否可以使用更便宜的温度计,只测量到最接近的0.5摄氏度。你可以使用昂贵的温度计模拟更便宜的温度计和然后将读数四舍五入到最接近的0.5 C并运行依赖于温度值的测试。
请注意,模拟也可用于预测或预测行为。有限元分析模拟用于许多应用,包括天气预报和虚拟风洞。
术语的定义:
- 仿真 - 超越或完全匹配
- 模拟 - 模仿外观或性格
模拟是一种行为与其他类似的系统,但是以完全不同的方式实现。它提供了系统的基本行为,但可能不一定遵守所模拟系统的所有规则。它可以帮助您了解某些工作原理。
仿真是一种行为与其他行为完全相同的系统,并且遵守所模拟系统的所有规则。它实际上是另一个系统的完全复制,直到与模拟系统的输入和输出二进制兼容,但在与原始模拟系统的环境不同的环境中运行。规则是固定的,无法更改或系统失败。
这些词的定义描述了最好的差异。谷歌搜索提供以下模拟和模拟的定义:
模拟模仿的外观或特征。
模仿匹配或超越(一个人或成就),通常通过模仿。
模拟模仿系统。仿真很好地模拟了一个系统,它可以取代它甚至可以超越它。
在计算中,仿真将是它正在模拟的系统的替代品。通常情况下,它甚至会超越它所模仿的系统。例如,游戏控制台模拟器通常会进行改进,例如更高的硬件兼容性,更好的性能以及改进的音频/视频质量。
另一方面,模拟受到它们作为模型的限制。它们是模仿系统的最佳尝试,但不是替代它的系统。有硬件模拟器,因为可以模仿硬件,很难区分。没有农业模拟器,因为没有可以取代实际农业的模拟。我们只能模拟农业模型,以深入了解如何更好地耕种。
通过观察历史实践,这个问题可能是最好的答案。
在过去,我在PC上看到了PlayStation和PC的游戏机模拟器。 SEGA。
当提到试图模仿真实生活行为的软件时,模拟器是常见的,例如驾驶或飞行。 Gran Turismo和Microsoft Flight Simulator成为模拟器的经典示例。
至于语言差异,仿真通常是指复制某人(或某事物)值得称赞的特征或行为的行为。模仿与模仿不同,模仿中的人是为了嘲弄而复制的。
动词"模拟"的语言意义主要是假装或模仿某人或某物。
在计算机科学中,模拟和仿真都可以从原始系统的相同输入产生相同的输出;但是,仿真也使用相同的过程来实现它,并且由相同的材料制成。模拟使用与原始系统不同的过程。另外值得注意的是术语复制,它是两者的中间体 - 使用相同的过程但是由不同的材料制成。
因此,如果我想在我的PC上运行我的旧超级马里奥兄弟游戏,我使用SNES模拟器,因为它使用相同或类似的计算机代码(进程)来运行游戏,并使用相同或类似的材料(硅芯片) 。
但是,如果我想在我的PC上驾驶波音747飞机,我会使用飞行模拟器,因为它使用了与原始完全不同的过程(没有真正的机翼,升力或空气动力学!)。
以下是从计算机科学术语表中获取的确切定义:
模拟是系统的模型,其捕获系统的输入和输出之间的功能连接,但不一定基于与系统本身的过程相同或相似的过程。
复制是系统的模型,其捕获系统的输入和输出之间的功能连接,并且基于与系统本身的过程相同或相似的过程。
仿真是某个系统的模型,它捕获系统的输入和输出之间的功能连接,基于与该系统相同或相似的过程,并且由与该系统相同的材料构建。 。
参考文献:开放大学,M366词汇表1.1,2007
从程序员BUT的角度来看,Virtual PC试图模拟计算机,同时它从电气工程师的角度模拟计算机。
模拟器比模拟器更广泛,看起来这个术语的二元性在上面的帖子中被推翻了。
模拟器
当人们开始直接替换现有系统的某些硬件部分时,人们决定在"计算机世界"中使用新的单词模拟 - 模仿他们的行为并依赖计算性质,以确保不会破坏某些东西并将所有内容留在等效状态。所以我们已经模仿了这一块! (整体仍然像以前一样工作)
仿真器通常在狭义上用于数字领域,作为替代和虚拟化 - 以数字形式呈现为一种软件 - 以前已知和存在的东西(虚拟芯片,电路板,电子设备)。因此,当世界变得更加数字化并将模拟器词带给群众时,群众增加了不确定性(或其他原因)。
模拟器
首先,我看到很多关于模拟器的评论或替换真实的东西,但模拟器没有。
但是飞行模拟器用于真实的东西 - 它训练飞行员,给他们技能和知识,它取代昂贵的真实飞机,节省了大量资金。我们不能只说一个平面模拟器,因为我们有内心的感觉,这远不止于此,所以我们称之为模拟器:)平面模拟器可以包含模拟雷达或转发器,这是真的。
反对声明,模拟器用于分析和研究(和模拟器用于真实的东西),但分析和研究不仅仅是模拟GSM板的真实情况(在我们生活的信息时代更是如此)。分析为业务增加了价值,削减了成本或指出了不低于被替换(模拟)硬件的利润。
模拟器类似于我们由于某种原因无法获得的东西的建模(成本,技术,物理不可能性)。它通常模拟新的或无形的或复杂的或我们不熟悉的市场,天气,燃烧,用户。所以这里有飞行,黑洞,证券交易所,模拟。
最后:
至于词源
一切都来自拉丁文,意思是:
- 模仿是"平等"(看起来更具侵略性和直接性 - 竞争)
- 模拟是"相似"(看起来更狡猾和棘手 - 模仿)
仿真器:
考虑一下你只知道英语并且你在中国的情况。为了与中国人互动,您需要一名翻译。现在,翻译的角色是它会用英语寻求你的意见并转换成中文,然后把这些意见交给中国人,得到中国人的回应,转换成英文,用英文给你输出。现在,翻译和中国人是模拟器。两个组合将提供类似的功能,就像您与英国人沟通一样。因此硬件可能不同,但功能相同。
模拟器:
我不能提供比SPICE或飞行模拟器更好的例子。两者都将用软件或数学模型替换硬件组件行为,其性能类似于硬件。
最后,它取决于哪种解决方案更适合项目需求的背景。