代码之家  ›  专栏  ›  技术社区  ›  Khaled Alshaya

模拟器还是模拟器?有什么区别?

  •  459
  • Khaled Alshaya  · 技术社区  · 15 年前

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

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

    奖金:这两个术语的英语有什么区别?(对不起,我不是本地人。)

    20 回复  |  直到 6 年前
        1
  •  407
  •   I. J. Kennedy ShankarSangoli    13 年前

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

    另一方面,模拟涉及到对目标的底层状态进行建模。仿真结果表明,该仿真模型能够对目标进行仿真。

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

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

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

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

        2
  •  294
  •   Henk Holterman    6 年前

    如果一个飞行模拟器能把你从A传送到B,那么它就是一个飞行模拟器。

    模拟器可以替换 真实的 使用。
    虚拟PC模拟PC。

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

    仿真器必须始终以接近实时的方式操作。对于一个不总是这样的模拟器。地质模拟可以进行1000年/秒或更长时间。

        3
  •  147
  •   Sнаđошƒаӽ Marco Tedone    10 年前

    模拟=用于 分析 学习

    仿真=用作 代替

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

    模拟器模仿它正在模拟的事物的活动。它“出现”(很多情况下可以与此“出现”,取决于上下文)与正在模拟的对象相同。例如,对于用户来说,飞行模拟器“似乎”是一个真实的飞行,尽管它确实将您从一个地方传送到另一个地方。

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

        4
  •  35
  •   outis    15 年前

    这是焦点的不同。模拟器 1 重点是重新创建系统的行为,而不考虑系统内部如何工作。仿真器 2 重点是对系统的组件进行建模。当你主要关心一个系统做什么的时候,你使用模拟器;当你关心一个系统如何做的时候,你使用模拟器。

    至于它们的一般英语意思,模仿是“在品质上与他人平等或优于他人的努力” 行动 ,而模拟为“to” 模型 ,复制,复制“”的行为、外观或属性。差别不大。仿真来自 木马 “奋斗,竞争”,与“模仿”和“形象”有关,这表明了表面杠杆的相似性。模拟“来自 比喻 “like”这个词和“simile”这个词一样,可能意味着更深层的一致性。

    参考文献:

    1. 维基百科: Emulator
    2. 维基百科: Computer Simulation
    3. Wiktionary: emulation
    4. Wiktionary: simulation
    5. 词源在线: emulation
    6. 词源在线: simulation
        5
  •  19
  •   mins    13 年前

    我认为仿真器和仿真器是无法比较的。两者都模仿某种东西,但不是同一推理范围的一部分,它们不在同一上下文中使用。

    简而言之:仿真器被设计用来复制组织的一些特性,甚至可以在实际环境中替换它。仿真器不被设计成复制原稿的特征,而只是看起来与原稿相似。如果没有原始的特性,模拟器就不能在真实环境中取代它。

    仿真器 是一个模拟物体足够近的装置 可以代替真正的东西 . 例如,您希望一个电路像只读存储器(ROM)电路一样工作,但也希望调整内容,直到满足您的需要。您将使用一个ROM模拟器,一个黑匣子(可能是基于CPU的),具有与您想要模拟的ROM兼容的物理和电气接口。仿真器将插入设备,代替真正的只读存储器。主板在工作时看不到任何区别,但您将能够轻松地更改模拟的只读存储器内容。否则,仿真器将在其主板上下文中(可能由于实际的内部模型而稍慢一点)与实际情况完全相同,但在主板上下文之外,只有设计者才能看到其他功能(如重新写入)。因此,仿真器的定义是:模仿原始的东西,拥有它所有的功能特性,实际上可以在现实世界中对其进行某种程度的替换,并且可能具有在正常环境中不可见的其他特性。

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

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

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

    这两个术语的比较将与当前选择的答案(来自toybuilder)相矛盾,后者在内部模型上有所不同,而我的建议是,区别在于是否可以或不能使用假产品来执行实际世界中的实际功能(实际上是某种可接受的扩展)。

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

    这与只模拟原始数据的仿真器有很大的不同,它的目的是在原始数据的环境中使用,而不需要模拟原始数据。回到平面上下文…什么是飞机模拟器?也许一列火车可以连接两个机场——实际上是两个飞机台阶——载客,空姐在车上,车厢内部看起来像一个真正的飞机舱,机长说:“女士们先生们,我们现在的高度是10公里,目的地的温度是24摄氏度。”它的好处很难看,嗯…

    综上所述,仿真器是一个真正可以工作的东西,仿真器是一个用来欺骗用户的伪造品。

        6
  •  12
  •   Vishnu Vivek    11 年前

    简单的解释。

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

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

    (或)

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

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

        7
  •  10
  •   Jörg W Mittag    15 年前

    几年前,我想出了一句很简短的格言,我相信,它很好地抓住了差异的本质:

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

    我的意思是,当你不能使用真实的东西时,你使用模拟器;当你不能使用真实的东西时,你使用模拟器。 你想知道一些事情 .

        8
  •  10
  •   Pawan Sharma    12 年前

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

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

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

        9
  •  9
  •   cdiggins    15 年前

    模拟器是一个系统的模型,它将接受被仿真系统接受的任何有效输入,并产生相同的输出或结果。所以你的软件是一个模拟器,只有当它复制了 行为 精确的模拟系统。

        10
  •  6
  •   Pontus Gagge    15 年前

    用一般的说法:如果你的软件可以做模拟系统所能做的一切,那么它就是一个模拟器。如果它只是一个系统(IT或其他)的结果的近似值,那么它就是一个模拟器。

        11
  •  4
  •   Hamad    11 年前

    模拟器: 它类似于口译员。 也就是说,它实际上执行 逐字逐句地 模仿行为

    仿真器: 它是类似的可执行文件。 也就是说,它获取编译后的代码并执行它。

        12
  •  3
  •   NoMoreZealots    15 年前

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

    我现在使用这个术语的理由是仿真,它可以“增强”功能,并且只涉及系统行为的“合理”近似。

    ICE:(电路仿真) 插在板上代替实际处理器的硬件。它允许您像运行实际处理器一样运行系统。通常,它们上面有一个处理器的变体,可以用粘合逻辑实际执行软件,以允许用户中断执行,并在硬件控制下执行单个步骤。一些还将提供日志记录功能。大多数现代处理器开发系统已经用JTAG仿真取代了冰型仿真,JTAG只是通过一个特殊用途的串行链路与处理器通信,所有的执行都由安装在板上的处理器执行。

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

    模拟器: Texas Instruments为软件开发提供了一个周期精确的处理器行为模型,旨在准确模拟特定处理器核心行为,供开发人员在使用硬件之前使用。

    软件仿真器增强功能: Bleem不仅允许您运行PlayStation软件,还允许以比PlayStation所能提供的更高分辨率输出显示,还利用了可用的GPU的更高级的功能。(即更好地混合和平滑纹理。)

        13
  •  3
  •   Aeolai    13 年前

    在计算机科学中,模拟和仿真从相同的输入中产生与原始系统相同的输出;但是,仿真也使用 相同过程 为了实现这一目标, 相同材料 . 模拟使用与原始系统不同的过程。同样值得注意的是术语“复制”,它是两者的中间产物——使用相同的工艺,但由不同的材料制成。

    所以如果我想在我的电脑上运行我以前的超级马里奥兄弟游戏,我就用一个snes 仿真器 因为它使用相同或相似的计算机代码(进程)来运行游戏,并且使用相同或相似的材料(硅片)。 但是,如果我想在我的电脑上驾驶波音747飞机,我就用飞机 模拟器 因为它使用了与原来完全不同的过程(没有实际的机翼,升力或空气动力学涉及!).

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

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

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

    仿真是一些系统的模型,它根据与系统相同或类似的过程,以及由与系统相同的材料构成的过程,捕捉系统输入和输出之间的功能连接。

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

        14
  •  3
  •   ronalchn Damien    12 年前

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

        15
  •  3
  •   Jay Elston    12 年前

    两者都是对象的模型,您可以通过某种方式控制输入和观察输出。

    关键区别在于:

    • 用一个 仿真器 ,您需要输出 精确匹配 你正在模仿的对象会产生什么。
    • 用一个 模拟器 ,您希望输出的某些属性 类似 物体会产生什么。

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

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

    模拟——假设你有一个非常昂贵的温度计,它的测量值为0.001摄氏度,你想看看你是否能用一个更便宜的温度计,它的测量值只能精确到0.5摄氏度。你可以用一个昂贵的温度计来模拟更便宜的温度计,然后把读数四舍五入到最接近的0.5摄氏度,并运行依赖于T的测试。温度值。

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

    术语定义:

    • 仿真——超越或完全匹配
    • 模仿——模仿外表或性格
        16
  •  2
  •   Zaid    15 年前

    这个问题最好还是看一下历史实践来回答。

    过去,我在PC上见过PlayStation&sega的游戏控制台模拟器。

    当提到试图模拟现实生活行为的软件时,模拟器是司空见惯的,例如驾驶或飞行。GranTurismo和微软飞行模拟器是仿真器的经典例子。

    至于语言差异,模仿通常是指模仿某人(或某物)值得称赞的特征或行为的行为。模仿不同于模仿,模仿的目的是模仿一个人。

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

        17
  •  2
  •   DIXON THANKACHAN    11 年前

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

    仿真是一个行为 确切地 像其他东西一样,遵守被仿真系统的所有规则。它实际上是另一个系统的完整复制,从二进制到与被仿真系统的输入和输出兼容,但操作环境与原始被仿真系统的环境不同。规则是固定的,不能更改或系统失败。

        18
  •  2
  •   None    8 年前

    单词的定义最能说明差异。谷歌搜索提供了以下模拟和模拟的定义:

    模拟 模仿…的外表或特征。

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

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

    在计算领域,仿真将是它正在仿真的系统的替代品。通常情况下,它甚至会比它所模仿的系统表现更好。例如,游戏控制台模拟器通常会做出一些改进,例如提高硬件兼容性、更好的性能以及改进音频/视频质量。

    另一方面,模拟也受到模型的限制。它们是模拟系统的最佳尝试,但不是系统的替代品。有硬件仿真器,因为硬件是可以模仿的,很难区分。没有农业模拟器,因为没有可以替代实际农业的仿真。我们只能模拟一个农业模型来了解如何更好地进行农业生产。

        19
  •  1
  •   Abhinav    10 年前

    虚拟PC试图 模仿 一台计算机, 从程序员的角度来看 但同时,它 模拟 一台计算机 从电气工程师的角度来看 .

        20
  •  0
  •   Vaibhav Gautam    8 年前

    仿真器:

    考虑一个你只懂英语而你在中国的情况。为了与中国人交流,你需要一个翻译。现在,翻译人员的作用是寻求你的英文输入,并将其转换为中文,并将其输入给中国人,得到中国人的回应,然后将其转换为英文,并以英文输出给你。现在那个翻译和中国人是仿真器。两种联合收割机都将提供类似的功能,就像您与英国人通信一样。所以硬件可能不同,但功能相同。

    模拟器:

    我举不出比SPICE或飞行模拟器更好的例子。两者都将用软件或数学模型替换硬件组件行为,这些软件或数学模型的行为将类似于硬件。

    最后,它取决于哪个解决方案更适合项目需求的上下文。