A.J*_*.J. 34 emulation virtual-machine
我看到他们是不同的东西,但我真的不知道为什么.有人说:"仿真器用于游戏;虚拟机用于操作系统"我不同意这个答案,因为除了视频游戏控制台之外还有用于平台的仿真器(AMIGA(?))
你能帮我吗?
gee*_*aur 32
虚拟机利用CPU自我虚拟化,无论在何种程度上,都可以为真实硬件提供虚拟化接口.仿真器模拟硬件,而不依赖于CPU能够直接运行代码并将某些操作重定向到控制虚拟容器的虚拟机管理程序.
一个特定的x86示例可能有所帮助: Bochs是一个模拟器,即使它在兼容的物理处理器上运行,也可以用软件模拟整个处理器; qemu也是一个模拟器,虽然使用内核端kqemu软件包,当模拟机器与物理硬件匹配时,它获得了一些有限的虚拟化功能 - 但它无法真正利用完整的x86自我虚拟化,因此它是有限的管理程序; kvm是一个虚拟机管理程序.
可以说管理程序"模拟"受保护的访问; 但是,它不会模拟处理器,并且说它调解受保护的访问更为正确.
受保护的访问意味着设置页表或读/写I/O端口.对于前者,管理程序验证(并且通常修改,以匹配管理程序自己的内存)页表操作并执行受保护的指令本身; I/O操作映射到模拟设备硬件而不是模拟CPU.
而且只是为了使事情变得复杂,Wine也是一个虚拟机管理程序/虚拟机(虽然ABI级别更高)而不是模拟器(因此"Wine不是模拟器").
Ben*_*igt 22
虚拟机的目的是创建一个隔离的环境.
仿真器的目的是准确地再现某些硬件的行为.
两者都旨在与主机的硬件保持某种程度的独立性,但虚拟机倾向于模拟足够的硬件以使客户端工作,并且强调仿真/虚拟化的效率.最终,虚拟机可能不像真正存在的任何硬件那样,并且可能需要特定于VM的驱动程序,但是客户驱动程序集将在大量虚拟环境中保持一致.
另一方面,模拟器试图精确地再现所模拟的一些真实硬件的所有行为,包括怪癖和错误.所需的访客驱动程序将与模拟的环境完全匹配.
虚拟化,半虚拟化和仿真技术或某种组合可用于虚拟机的实现.仿真器通常不能使用虚拟化,因为这会使抽象有些漏洞.
小智 6
戴尔解释了模拟器和虚拟机之间的区别.
仿真或虚拟化:有什么区别?
仿真和虚拟化具有许多相似之处,但它们具有明显的操作差异.如果您希望在较新的体系结构中访问较旧的操作系统,则仿真将是您的首选路径.相反,虚拟化系统独立于底层硬件.我们将把这些经常混淆的术语分开,并描述它们对业务IT运营的意义.
有什么不同?
简而言之,仿真涉及使一个系统模仿另一个系统.例如,如果一个软件在系统A而不是在系统B上运行,我们使系统B"模拟"系统A的工作.然后软件在系统A的仿真上运行.
在同一个例子中,虚拟化将涉及采用系统A并将其拆分为两个服务器B和C.这两个"虚拟"服务器都是独立的软件容器,可以自己访问基于软件的资源 - CPU,RAM,存储和网络 - 并且可以独立重启.它们的行为与真实硬件完全相同,应用程序或其他计算机无法区分它们.
这些技术中的每一种都有其自身的用途,优点和缺点.
仿真
在我们的仿真示例中,软件会填充硬件 - 创建一个以类似硬件的方式运行的环境.这会通过为仿真过程分配周期来对处理器造成影响 - 这些周期将用于执行计算.因此,在创建这种环境中花费了很大一部分CPU肌肉.
有趣的是,您可以在模拟环境中运行虚拟服务器.那么,如果仿真是如此浪费资源,为什么要考虑呢?
在以下场景中可以有效地利用仿真:
•运行适用于其他硬件的操作系统(例如,PC上的Mac软件;计算机上基于控制台的游戏)
•运行适用于其他操作系统的软件(在PC上运行Mac专用软件,反之亦然)
•在可比硬件过时后运行旧版软件
在为多个系统设计软件时,仿真也很有用.编码可以在一台机器上完成,应用程序可以在多个操作系统的模拟中运行,所有操作系统都在自己的窗口中同时运行.
虚拟化
在我们的虚拟化示例中,我们可以有把握地说它以高效,功能的方式利用计算资源 - 与其物理位置或布局无关.具有足够RAM和足够存储空间的快速计算机可以拆分为多个服务器,每个服务器都有一个资源池.通常部署为单个服务器的单个机器可以托管公司的Web和电子邮件服务器.以前未充分利用的计算资源现在可以充分发挥潜力.这有助于大幅降低成本.
虽然模拟环境需要软件桥来与硬件交互,但虚拟化直接访问硬件.然而,尽管总体上更快,但虚拟化仅限于运行已经能够在底层硬件上运行的软件.虚拟化最明显的好处包括:
•与现有x86 CPU架构的广泛兼容性
•能够作为所有硬件和软件的物理设备出现
•每个实例中都包含自包含
在仿真和虚拟化之间,您的企业可以执行大多数虚拟系统功能.虽然这两种服务听起来都很相似,但它们都围绕着您如何使用该软件.如果您希望软件不受影响,虚拟化允许访客代码直接在CPU上运行.相反,模拟器将自己运行访客代码,从而为其他任务节省CPU.