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

有人能从编程的角度来解释一下吗?

福利:这两个词在英语中有什么区别?(对不起,我的母语不是英语:))


当前回答

如果一个飞行模拟器可以把你从a带到B,那么它就是一个飞行模拟器。

仿真器可以代替原来的,以供实际使用。 虚拟PC是一种模拟PC的设备。

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

模拟器总是必须接近实时运行。对于模拟器来说,情况并非总是如此。地质模拟可以做到1000年/秒甚至更久。

其他回答

模拟=用于分析和研究

模拟=作为替代品使用

模拟器是模拟环境,而模拟器是复制原始设备或系统上的使用情况的环境。

模拟器模拟它所模拟的事物的活动。它“看起来”(根据上下文,很多人都可以用这个“看起来”)与被模拟的事物相同。例如,对用户来说,飞行模拟器“看起来”是一次真实的飞行,尽管它并不能将你从一个地方运送到另一个地方。

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

这两个术语是完全不同的,只有很少的交集。找到正确的术语其实很简单,只需考虑以下几点:

模拟游戏不会做任何真实的事情。你可以研究它,例如计算机是如何工作的,但它通常没有其他结果。飞行模拟器中的飞机坠毁不会造成真正的伤害。天气预报模拟本身并不会改变天气。

仿真可以真实地做一些事情。你可以像使用物理计算机一样使用模拟计算机并使用它创建文档。在飞行模拟器中,飞机坠毁会有一个结果,就像人们经历真实的影响一样,包括可能的身体伤害。

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

你并不是唯一有困惑的人。电影《黑客帝国》讲的就是模拟。然而,《黑客帝国》正在进行模拟,因为它对《黑客帝国》的所有成员都有真实的影响。相比之下,训练室没有真正的影响,所以这是(黑客帝国)的模拟。

让我们来看一些例子。

模拟雨和模拟雨

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

当你在模拟下雨时,人们还是会责怪你淋湿了。你的降雨对世界有一些真实的影响,但你的模拟没有,因为模拟没有欺骗任何人,因为它是真实的降雨。

相反,当你在模拟下雨时,人们会责怪天气。这就是,你模拟的雨真的表现得像现实中的雨。 这场雨般的竞赛因此扭曲了现实, 让人们相信错误的罪犯。

我花了好长时间才明白这一点。 因此,这既不容易也不明显,这就解释了所有的困惑。

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

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

模拟计算机与仿真计算机

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

如果硬盘保存的数据是这样的,即数据在模拟之外实际上是可用的,那么在模拟中就有一个模拟硬盘来这样做。

因此,模拟可以是模拟的一部分,反之亦然。

模拟与仿真文件系统

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

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

模拟与仿真TPM或HSM

一个很好的例子就是,当你想到安全性的时候。TPM是用于保证自身密钥安全(身份来源)的特定设备,而HSM是用于保护外密钥(验证身份)的通用设备。

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

如果模拟TPM,这对安全性有很大的影响,因为这样您就可以观察到TPM的内部状态。这样所有的安全措施都失效了。即使这样的模拟可以为改进TPM本身的设计提供有价值的提示,您也不希望将有价值的数据真实地暴露给模拟的TPM。

但是,如果您模拟TPM,您将尽可能地将这些内部状态隐藏到外部。这样的模拟TPM可以用来真正地保护其他东西,比没有TPM更好。

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

相反,对于真正的HSM,您可以使用真正TPM的所有属性来模拟TPM。为此,HSM需要构造成这样,即没有信息需要离开HSM,而这些信息也不需要离开TPM。

(请注意,我对hsm或tpm一无所知,所以可能没有hsm能够提供模拟tpm。)

模拟世界与模拟世界

If our world is simulated, we are simulations, too. Hence some spectator (let's call her God) can look at us and change the simulation any time. Also we cannot find out if we are simulated or not. As I am pretty sure that I know that I am, I do not think I am simulated, because self-awareness looks like an effect with a real component to me, which contradicts simulation. This also means, our world cannot be a simulation, too, as a simulation can only affect me like the world does, if I am part of the simulation.

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

当我在模拟器中运行操作系统时,这种情况也会发生变化。然后我无法观察到这样的错误,因为我的状态可以从模拟(称为Sleep)中重置,而不会观察到中断。

然而,我更愿意认为这个世界是一个全息的幻觉,而不是一个类似模拟的东西。因为如果它是模拟的,那么我就会被某人(叫他Rick)为了某种目的而运行模拟,而幻觉纯粹是我自己的东西。

我就讲到这里,因为幻觉会把我们引向完全不同的东西。

用比较正常的说法来说:如果你的软件能做被模仿系统能做的所有事情,那么它就是一个模拟器。如果它只是近似于系统(it或其他)的结果,那么它就是一个模拟器。

词语的定义最好地描述了差异。谷歌搜索给出了以下模拟和仿真的定义:

模仿…的外表或特征。

模仿,赶上或超越(某人或某项成就),通常是通过模仿。

仿真模拟一个系统。仿真可以很好地模拟一个系统,从而可以取代它,甚至可能超过它。

在计算中,模拟将是它所模拟的系统的替换。通常情况下,它甚至会超越它所模仿的系统。例如,游戏控制台模拟器通常会做一些改进,比如更好的硬件兼容性、更好的性能和更好的音频/视频质量。

另一方面,模拟由于是模型而受到限制。它们是模拟系统的最佳尝试,而不是系统的替代品。有硬件模拟器,因为硬件可以被模仿,而且很难区分。没有种植模拟器,因为没有仿真可以取代实际的种植。我们只能模拟一种耕作模式,以了解如何更好地耕作。

这个问题最好的答案可能是看一看历史实践。

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

模拟器是指那些试图模拟现实生活行为的软件,比如驾驶或飞行。《Gran Turismo》和《微软飞行模拟器》都是模拟游戏的经典例子。

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

动词“simulation”在语言学上的意思基本上是假装或模仿某人或某事。