首页 文章

模拟器或模拟器?有什么不同?

提问于
浏览
449

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

任何人都能解释编程方面的差异吗?

额外奖励:这两个术语的英语差异是什么? (对不起,我不是母语人士:))

20 回答

  • 399

    用或多或少的正常说法:如果您的软件可以完成模仿系统可以做的所有事情,那么它就是一个模拟器 . 如果它只是近似系统的结果(IT或其他),它就是一个模拟器 .

  • 2

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

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

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

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

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

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

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

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

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

    作为一个结论,模拟器是一个真正意图工作的东西,模拟器是一个虚假的意图欺骗用户 .

  • 35

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

    模拟器是任务中的模拟器 .

    我的意思是你使用模拟器,你可以使用真实的东西,你想找到一些关于它的东西 .

  • 1

    模拟=用于分析和研究

    仿真=用作替代品

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

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

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

  • 2

    仿真器:

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

    模拟器:

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

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

  • 3

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

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

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

    MAME是街机游戏模拟器; Hyperterm是一个(不是很好)的终端模拟器 . 无需详细模拟街机或终端以获得所需的模拟行为 .

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

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

  • 9

    简单说明 .

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

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

    (要么)

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

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

  • 3

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

    关键的区别在于:

    • 使用 emulator ,您希望输出与您要模拟的对象产生的输出完全匹配 .

    • 使用 simulator ,您希望输出的某些属性与对象生成的属性类似 .

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

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

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

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

    术语的定义:

    • 仿真 - 超越或完全匹配

    • 模拟 - 模仿外观或角色

  • 12

    Simulator: 它类似于口译员 . 即它实际上执行 line by line 中的实际代码来模仿行为

    Emulator: 它是类似的可执行文件 . 即它需要编译代码并执行它 .

  • 9

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

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

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

  • 4

    仿真器可以替换原件以供实际使用 .

    模拟器是用于分析的模型 .

    If a flight-simulator could transport you from A to B then it would be a flight-emulator.

    Virtual PC模拟PC .

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

  • 5

    这是焦点的不同 . Emulators1专注于重新创建系统的行为,而不考虑系统如何在内部运行 . Simulators2专注于对系统组件进行建模 . 当您关心系统的功能时,您可以使用模拟器,而当您关心它是如何工作时,则使用模拟器 .

    至于他们的一般英语含义,仿效是“努力平等或优于另一个品质或 actions model ,复制,复制行为,外观或属性” . 差别不大 . 仿真来自æmulus,"striving, rivaling,"与"imitate"和"image,"相关,这表明了表面杠杆的相似性 . "Simulation"来自similis "like","similar,"这个词可能暗示了更深的一致性 .

    参考文献:

  • 2

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

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

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

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

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

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

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

  • 3

    仿真器是真实系统的替代方案,但模拟器用于优化,理解和估计实际系统 .

  • 285

    通过观察历史实践,这个问题可能是最好的答案 .

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

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

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

    动词“模拟”的语言意义主要是假装或模仿某人或某事 .

  • 10

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

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

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

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

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

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

  • 145

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

    simulate 模仿外观或性格 .

    emulate 匹配或超越(一个人或成就),通常通过模仿 .

    模拟模仿系统 . 仿真很好地模拟了一个系统,它可以替代它,甚至可以超越它 .

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

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

  • 3

    模拟是一个对其他东西表现出来的系统,但是以完全不同的方式实现 . 它提供了系统的基本行为,但可能不一定遵守所模拟系统的所有规则 . 它可以帮助您了解某些工作原理 .

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

  • 0

    从程序员的角度来看,虚拟PC试图从电脑工程师的角度来看计算机.478457_计算机 .

  • 19

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

相关问题