虽然我理解模拟和模拟的一般含义,但我几乎总是对它们感到困惑。假设我创建了一个模仿现有硬件/软件的软件,我应该如何称呼它?模拟器还是模拟器?
有人能从编程的角度来解释一下吗?
福利:这两个词在英语中有什么区别?(对不起,我的母语不是英语:))
用比较正常的说法来说:如果你的软件能做被模仿系统能做的所有事情,那么它就是一个模拟器。如果它只是近似于系统(it或其他)的结果,那么它就是一个模拟器。
这个问题最好的答案可能是看一看历史实践。
在过去,我曾在PlayStation &上看到PC上的游戏控制台模拟器;世嘉。
模拟器是指那些试图模拟现实生活行为的软件,比如驾驶或飞行。《Gran Turismo》和《微软飞行模拟器》都是模拟游戏的经典例子。
就语言差异而言,模仿通常指的是模仿某人(或某事)值得称赞的特征或行为。仿真与模仿是不同的,模仿是为了嘲弄而复制一个人。
动词“simulation”在语言学上的意思基本上是假装或模仿某人或某事。
如果一个飞行模拟器可以把你从a带到B,那么它就是一个飞行模拟器。
一个模拟器可以取代原来的真正的使用 虚拟PC是一种模拟PC的设备。< / p >
模拟器是用于研究和分析的模型。
模拟器总是必须接近实时运行。对于模拟器来说,情况并非总是如此。地质模拟可以做到1000年/秒甚至更久。
仿真器是一个系统的模型,它可以接受被仿真系统可以接受的任何有效输入,并产生相同的输出或结果。因此,您的软件是一个模拟器,前提是它精确地再现了仿真系统的行为。
模拟是模拟外部可观察到的行为以匹配现有目标的过程。模拟机制的内部状态不必准确地反映它所模拟的目标的内部状态。
另一方面,仿真涉及到对目标的基本状态进行建模。一个好的仿真的最终结果是,仿真模型将模拟它所模拟的目标。
理想情况下,您应该能够查看模拟并观察到您在查看原始目标时也会看到的属性。在实践中,由于性能原因,模拟可能存在一些快捷方式——也就是说,模拟的某些内部方面实际上可能是模拟。
MAME是一款街机游戏模拟器;Hyperterm是一个(不是很好的)终端仿真器。没有必要为街机或终端详细建模以获得所需的模拟行为。
《Flight Simulator》是一款模拟器;SPICE是一个电子模拟器。他们尽可能地模拟目标的每个细节,以表示目标在现实中的行为。
EDIT:其他响应指出,模拟的目标是能够替代它所模拟的对象。这一点很重要。仿真的重点更多地是对目标的内部状态进行建模——而仿真并不一定会导致仿真。特别是,模拟可能比实时运行慢得多。例如,SPICE不能代替实际的电子电路(即使假设有某种神奇的设备可以完美地将电路与SPICE模拟连接起来)。 模拟并不总是导致模拟——
这是焦点的不同。模拟器1专注于重新创建系统的行为,而不考虑系统内部的功能。模拟器2专注于建模系统的组件。当你主要关心一个系统做什么时,你使用模拟器;当你关心它如何做时,你使用模拟器。
就其一般的英文含义而言,emulation是“努力在品质或行动上达到或超过另一个人”,而simulation是“复制、复制行为、外观或特性”。差别不大。Emulation来自æ姆鲁国家公园,“努力,竞争”,与“模仿”和“形象”有关,这表明表面上的相似性。“模拟”来自冲沙的“像”,“相似”一词也是如此,这可能暗示了更深层次的一致性。
引用:
几年前,我想出了一个非常简短的格言,我相信,它很好地抓住了差异的本质:
模拟器是执行任务的模拟器。
我的意思是,当你不能使用真实的东西时,你使用模拟器,当你不能使用真实的东西而你想要找到一些关于它的东西时。
这两个术语之间的区别有点模糊。来自一个“模拟器”是允许您调试嵌入式系统的硬件的世界。记住那些允许你拥有ICE (In Circuit Emulation)功能来调试PC平台的产品,我发现术语“仿真”的使用对于模拟一块硬件行为的软件来说有点不恰当。
我对当前使用“仿真”一词的理由是,它可以“增强”功能,并且只与系统行为的“合理”近似有关。
ICE:(在电路仿真中) 插在电路板上代替实际处理器的一块硬件。它允许您像实际的处理器一样运行系统。通常,这些处理器上有一个变体,以实际执行带有粘合逻辑的软件,允许用户在硬件控制下打破执行和单个步骤。有些还提供日志记录功能。大多数现代处理器开发系统已经用JTAG仿真取代了ICE类型的仿真,在JTAG仿真中,JTAG只是通过一个特殊用途的串行链路与处理器通信,所有的执行都由安装在主板上的处理器执行 < p >软件模拟器: 0x86仿真器只关心是否能够执行0x86汇编语言,而不提供特定0x86处理器的精确的每周期行为模型。Bochs就是一个例子。QEMU做到了这一点,但也允许使用特殊的内核模块进行“虚拟化” < p >模拟器: 德州仪器为软件开发提供了一个处理器的CYCLE ACCURATE行为模型,该模型旨在精确模拟特定处理器核心的行为,供开发人员在拥有工作硬件之前使用
Software EMULATOR增强功能: BLEEM不仅允许你运行Playstation软件,还允许显示器输出比Playstation能够提供的分辨率更高的分辨率,并且还利用了可用的gpu的更高级功能。(即更好的混合和平滑纹理)
在计算机科学中,模拟和仿真都从相同的输入产生与原始系统相同的输出;但是,模拟也使用同样的过程来实现它,并由相同的材料组成。模拟使用与原始系统不同的进程。同样值得注意的是术语复制,它是两者的中间——使用相同的过程,但由不同的材料制成。
以下是摘自计算机科学术语表的准确定义:
模拟是一种系统模型,它捕捉了系统输入和输出之间的功能连接,但不一定基于与系统本身相同或相似的过程。
复制是一种系统模型,它捕获系统输入和输出之间的功能连接,并基于与系统本身相同或相似的过程。
仿真是某种系统的模型,它捕获系统输入和输出之间的功能连接,基于与该系统相同或类似的过程,并且由与该系统相同的材料构建。
参考文献:The Open University, M366 Glossary 1.1, 2007
我不认为模拟器和模拟器可以比较。两者都模仿某些东西,但不是同一推理范围的一部分,它们不在同一上下文中使用。
简而言之:模拟器被设计用来复制原始程序的某些特性,甚至可以在真实环境中替换它。模拟器的设计不是为了复制原物的特征,而是为了在人类看来与原物相似。没有了原有的功能,仿真器无法在实际环境中代替原有的功能。
模拟器是一个设备,它模仿了一些足够接近的东西,以至于它能被替换成真实的东西吗。例如,你想要一个电路像ROM(只读存储器)电路一样工作,但也想要调整内容,直到它是你想要的。您将使用一个ROM模拟器,一个带有与要模拟的ROM兼容的物理和电气接口的黑盒子(可能是基于cpu的)。模拟器将被插入到设备中代替真正的ROM。主板在工作时不会看到任何差异,但您将能够轻松地更改模拟ROM内容。否则,模拟器将完全作为实际的东西在其主板上下文中(可能会有点慢,由于实际的内部模型),但将有额外的功能(如重写),只有设计师可见,在主板上下文中。所以模拟器的定义是:模拟原始的东西,拥有它所有的功能特性,在现实世界中可以在某种程度上取代它,并且可能有在正常上下文中不可见的附加特性。
模拟器用于另一个思考环境,例如飞机模拟器、汽车模拟器等。模拟将只关心实际事物的某些方面,通常是与人类将如何感知和控制它相关的方面。这个模拟器不能执行真实事物的功能,也不能用来代替真实事物。飞机模拟器不能飞行或搭载人,这根本不是它的目的。模拟器并不是为了工作,而是为了让飞行员在某种程度上看起来像实际的东西,而不是为了正常的目的,例如允许地面训练(包括在不寻常的情况下,如全引擎故障)。所以模拟器的定义是:在某种程度上,可以在人类看来像原来的东西,但在实际使用中不能取代它。此外,飞行员将知道模拟器是模拟器。
我认为我们不会看到ROM模拟器,因为ROM不与人类交互,我们也不会看到任何平面模拟器,因为在现实世界中,飞机无法有一个替代物来执行相同的功能。
在我看来,模拟器或模拟器中的模型可以是任何东西,并且不必与原始模型相似。一个ROM模拟器模型将很可能是软件而不是硬件,MS飞行模拟器不能比它更软件。
这两个术语的比较将与当前选择的答案(来自Toybuilder)相矛盾,后者将差异放在内部模型上,而我的建议是,差异在于假的是否可以用于执行实际世界中的实际功能(确实在某些可接受的范围内)。
注意,飞机模拟器还必须模拟地球、太阳、风等,这些都不是飞机的一部分,所以飞机模拟器必须模拟飞机的某些方面,以及飞机的环境,因为它不是在这个实际环境中使用,而是在一个训练室中使用。
这与只模拟原始程序的模拟器有很大的不同,它的目的是在原始程序的环境中使用,而不需要模拟它。回到平面上下文…什么是平面模拟器?也许是一列连接两个机场的火车——实际上是两个飞机台阶——载着乘客,车上有空姐,车厢内部看起来像真正的机舱,机长说:“女士们先生们,我们的海拔高度目前是10公里,目的地的温度是24°C。”它的好处很难看到,哼……
总之,模拟器是一个真实的东西,旨在工作,模拟器是一个假的,旨在欺骗用户。
模拟= 分析和研究
仿真=用于作为替代
模拟器是模拟环境,而模拟器是复制原始设备或系统上的使用情况的环境。
模拟器模拟它所模拟的事物的活动。它“看起来”(根据上下文,很多人都可以用这个“看起来”)与被模拟的事物相同。例如,对用户来说,飞行模拟器“看起来”是一次真实的飞行,尽管它并不能将你从一个地方运送到另一个地方。
另一方面,模拟器,实际上“强劲< > < / >强”被模拟的东西做什么,在这样做,它也“似乎也在做同样的事”。仿真器可以使用不同的协议集来模拟被仿真的对象,但结果/结果总是与原始对象相同。例如,EMU8086模拟计算机上的8086微处理器,显然它不是在8086上运行(= 不同的协议),但它给出的输出是真正的8086所给出的。
要理解模拟器和仿真器之间的区别,请记住模拟器试图模拟真实设备的行为。例如,在iOS模拟器的例子中,它模拟了实际的iPhone/iPad设备的真实行为。然而,模拟器本身使用安装在Mac上的各种库(如QuickTime)来执行渲染,以便效果看起来与实际的iPhone相同。此外,在模拟器上测试的应用程序被编译成x86代码,这是模拟器可以理解的字节码。相反,真正的iPhone设备使用基于arm的代码。
相比之下,模拟器模拟真实设备的工作。在模拟器上测试的应用程序被编译成实际设备使用的实际字节码。仿真器通过将字节码转换为可由运行仿真器的主机执行的形式来执行应用程序。
为了理解模拟和模拟之间的微妙区别,假设您试图说服一个孩子玩刀是危险的。为了模拟这种情况,你假装用刀割伤自己,并痛苦地呻吟。为了模仿这一点,你真的会割伤自己。
模拟器是真实系统的替代品,但模拟器用于优化、理解和估计真实系统。
两者都是对象的模型,您可以通过某种方式控制对象的输入和观察对象的输出。
关键的区别在于:
让我举个例子——假设你想做一些系统测试,看看在系统中添加一个新的传感器(比如温度计)会如何影响系统。你知道温度计每秒发送8次包含其测量值的信息。
模拟——如果你还没有温度计,但是你想测试这个消息速率不会使你的系统过载,你可以通过附加一个每秒发送8次随机数的单元来模拟传感器。您可以运行任何不依赖于传感器发送的实际值的测试。
模拟——假设你有一个非常昂贵的温度计,测量值为0.001 C,你想看看是否可以使用一个更便宜的温度计,只能测量到最近的0.5 C。你可以使用一个昂贵的温度计模拟更便宜的温度计,然后将读数四舍五入到最近的0.5 C,并运行依赖于温度值的测试。
注意,模拟也可以用于预测或预测行为。有限元分析模拟应用于许多领域,包括天气预报和虚拟风洞。
术语的定义:
简单的解释。
如果你想把你的电脑(运行Windows)转换成Mac,你可以做以下任何一项:
你可以简单地在你的Windows上安装一个Mac主题。所以,你的电脑感觉上更像Mac,但实际上你不能运行任何Mac程序。# EYZ0
(或)
(2)你可以把你的电脑编程成像Mac一样运行(我不确定这是否可能:P)。现在你甚至可以成功地运行Mac程序,并期望与Mac上相同的输出
模拟是一个以类似的为行为的系统,但以完全不同的方式实现。它提供了系统的基本行为,但不一定遵守被模拟系统的所有规则。它的存在是为了让你了解事物是如何工作的。
模拟是一个系统,它的完全行为与其他系统类似,并且遵守所模拟系统的所有规则。它实际上是另一个系统的完全复制,甚至与仿真系统的输入和输出二进制兼容,但在与原始仿真系统的环境不同的环境中运行。规则是固定的,不能更改,否则系统会失败。
模拟器:它是类似的可执行文件。 例如,它接受编译后的代码并执行它
一台虚拟PC试图模仿一台计算机,从程序员的角度来看但是,同时,它模拟一台计算机从电气工程师的角度来看。
模拟器:
假设你在中国,只懂英语。为了和中国人交流,你需要一个翻译。现在,翻译器的作用是,它会从你那里获取英语输入,然后转换成中文,再把输入给中国人,然后从中国人那里得到回应,再转换成英语,然后用英语输出给你。现在翻译和中国人是模拟器。两者结合起来将提供类似的功能,就好像你在和英国人交流一样。所以硬件可能不同,但功能是一样的。
我想不出比SPICE或飞行模拟器更好的例子了。两者都将用与硬件行为相似的软件或数学模型取代硬件组件行为。
最后,哪种解决方案更适合项目需求取决于上下文。
词语的定义最好地描述了差异。谷歌搜索给出了以下模拟和仿真的定义:
# EYZ0 # EYZ1
仿真模拟一个系统。仿真可以很好地模拟一个系统,从而可以取代它,甚至可能超过它。
在计算中,模拟将是它所模拟的系统的替换。通常情况下,它甚至会超越它所模仿的系统。例如,游戏控制台模拟器通常会做一些改进,比如更好的硬件兼容性、更好的性能和更好的音频/视频质量。
另一方面,模拟由于是模型而受到限制。它们是模拟系统的最佳尝试,而不是系统的替代品。有硬件模拟器,因为硬件可以被模仿,而且很难区分。没有种植模拟器,因为没有仿真可以取代实际的种植。我们只能模拟一种耕作模式,以了解如何更好地耕作。
模拟器比模拟器更广泛,似乎在上面的帖子中,这个术语的双重性被过度考虑了。
模拟器
人们决定在“计算机世界”中使用一个新词模拟,当他们开始以直接的方式替换现有系统的一些硬件部分时——模仿它们的行为,并依赖于计算性质,以确保不会破坏某些东西,并使所有东西都处于等效状态。# EYZ1
模拟器通常在数字领域的狭义上用于替代和虚拟化——以数字形式作为一个软件——以前已知和存在的东西(虚拟芯片、电路板、电子设备)。因此,当世界变得更加数字化,并将模拟器这个词带给大众时,大众给它增加了不确定性(或额外的原因)。
首先,我看到许多关于模拟器可以代替真实的东西的评论,但是模拟器不能。
但是飞行模拟器是用来做真实的事情的——它训练飞行员,提高他们的技能和知识,它取代了昂贵的真实飞机,节省了很多钱。我们不能仅仅说它是一个飞机模拟器,因为我们内心觉得它远不止于此,所以我们称它为模拟器:)飞机模拟器可以包含模拟雷达或应答器,这是真的。
相反,模拟器用于分析和研究(模拟器用于真实的东西),但分析研究并不比模拟GSM板更真实(在我们生活的信息时代更是如此)。分析为业务增加了价值,降低了成本或指出了不低于替换(模拟)硬件的利润。
模拟器类似于对我们由于某些原因(成本、技术、物理不可能性)而无法获得的东西进行建模。它通常是模拟一些新的、无形的、复杂的或者我们不太了解的东西,比如市场、天气、燃烧、用户。这就是飞行,黑洞,股票交易,模拟。
# EYZ0
至于词源
它们都来自拉丁语,意思是:
这两个术语是完全不同的,只有很少的交集。找到正确的术语其实很简单,只需考虑以下几点:
你可以研究它,例如计算机是如何工作的,但它通常没有其他结果。飞行模拟器中的飞机坠毁不会造成真正的伤害。天气预报模拟本身并不会改变天气。
您可以像使用物理计算机一样使用模拟计算机并使用它创建文档。在飞行模拟器中,飞机坠毁会有一个结果,就像人们经历真实的影响一样,包括可能的身体伤害。
你的困惑可能源于这样一个事实:“研究模拟”;而“进入仿真”;经常是完全一样的事情。
你并不是唯一有困惑的人。电影《黑客帝国》说到模拟。然而,《黑客帝国》正在进行模拟,因为它对《黑客帝国》的所有成员都有真实的影响。相比之下,训练室没有真正的影响,所以这是(黑客帝国)的模拟。
让我们来看一些例子。
在花园里拿根水管,让它下雨。这里模拟和仿真的区别是什么?
当你在模拟下雨时,人们还是会责怪你淋湿了。你的降雨对世界有一些真实的影响,但你的模拟没有,因为模拟没有欺骗任何人,因为它是真实的降雨。
我花了好长时间才明白这一点。 因此,它既不容易也不明显,这就解释了所有的困惑
因此,在“模拟雨”的例子中,人们被淋湿只是一个副作用,而不是模拟的一部分。如果你用这个模拟的雨来模拟彩虹也是一样的。而“how rainbows work”的属性;是这个模拟的一部分,模拟本身并没有提供彩虹,这只是由于太阳对水滴的折射而发生的。
虽然你可能认为“模拟计算机可以有一个结果”;这实际上是错误的推理。如果将文件保存到模拟硬盘驱动器上,这些文件不能离开模拟驱动器。您可以通过研究模拟驱动器来获得这些文件,但这不是模拟本身的一部分。
如果硬盘保存的数据是这样的,即数据在模拟之外实际上是可用的,那么在模拟中就有一个模拟硬盘来这样做。
因此,模拟可以是模拟的一部分,反之亦然。
如果您模拟一个文件系统,出于实用性考虑,您可能会选择按原样将文件保存到您真正的文件系统上(可能带有一些额外的元信息)。在这种情况下,模拟似乎创造了真正的“价值”。模拟之外:可用的文件!
但这只是巧合,因为模拟的文件系统实际上也模拟文件系统。您实际上在模拟中模拟了外部文件系统!
一个很好的例子就是,当你想到安全性的时候。# EYZ0。
有趣的事实:我的手指经常输入TMP而不是TPM。
如果模拟TPM,这对安全性有很大的影响,因为这样您就可以观察到TPM的内部状态。这样所有的安全措施都失效了。即使这样的模拟可以为改进TPM本身的设计提供有价值的提示,您也不希望将有价值的数据真实地暴露给模拟的TPM。
但是,如果您模拟TPM,您将尽可能地将这些内部状态隐藏到外部。这样的模拟TPM可以用来真正地保护其他东西,比没有TPM更好。
使用真正的TPM,您无法模拟真正HSM的属性。所有您可以存档的是模拟HSM,但这将不具有真实HSM的安全属性,因此存储在这个模拟HSM中的所有数据将不受保护(它们将只在模拟本身中受到保护)。
相反,对于真正的HSM,您可以使用真正TPM的所有属性来模拟TPM。为此,HSM需要构造成这样,即没有信息需要离开HSM,而这些信息也不需要离开TPM。
(请注意,我对hsm或tpm一无所知,所以可能没有hsm能够提供模拟tpm。)
如果我们的世界是模拟的,我们也是模拟的。因此,一些观众(让我们称她为上帝)可以看着我们,随时改变模拟。此外,我们无法确定我们是否被模拟。我很确定我知道我是,我不认为我是被模拟的,因为自我意识对我来说就像一个具有真实成分的效果,这与模拟相矛盾。这也意味着,我们的世界不可能是一个模拟,因为只有当我是模拟的一部分时,模拟才能像世界一样影响我。
但我们的世界仍然可以被模仿(就像电影“黑客帝国”中那样),因为我必须“证明这个世界”。是我的精神状态和感官输入,我无法验证,因为我无法离开自己。如果我不是模拟的一部分,那么应该有机会观察到不连续性(就像电影“黑客帝国”中那样),以防模拟不能完美地工作。
当我在模拟器中运行操作系统时,这种情况也会发生变化。然后我无法观察到这样的错误,因为我的状态可以从模拟(称为Sleep)中重置,而不会观察到中断。
然而,我更愿意认为这个世界是一个全息的幻觉,而不是一个类似模拟的东西。因为如果它是模拟的,那么我就会被某人(叫他Rick)为了某种目的而运行模拟,而幻觉纯粹是我自己的东西。
我就讲到这里,因为幻觉会把我们引向完全不同的东西。
模拟是像 < em >最后。 它显示了什么它可以做什么。 例如:汽车驾驶仿真。
模拟是像 < em >封装。 它显示了如何它可以做什么 示例:汽车引擎内部活动。