我正在向我的课程介绍虚拟化。
在研究的同时,我对裸机pipe理程序和二进制翻译的完整虚拟化模式之间的困惑。
有人可以解释吗?
裸机hupervisor(一种虚拟化)利用CPUfunction给予来宾操作系统一个印象,即他们是计算机上唯一的操作系统。 他们必须虚拟化大部分设备访问权限,以便客人不会造成问题。 主要优点是速度,通常很快。
通过二进制翻译进行虚拟化本质上是一个仿真器。 这是一个运行在另一个操作系统上的程序,显示了它对客户的“分析”结果。 例如,不是运行添加1 + 2的代码(并且让CPU知道答案是3),它将具有评估代码的algorithm,确定它添加两个数字,find这些数字,添加它们,并将结果呈现给您。 正如你所看到的,这是一个更为复杂的过程。 主要优点是Guest的CPU不必与主机的CPU相同。
我不确定你在哪里看到完全虚拟化的二进制翻译; 例?
裸机pipe理程序通常被认为是VMWare的ESX(i)工具。 你有一个只处理虚拟化的服务器; 你不能坐在控制台和网页浏览,而在后台运行虚拟化引擎。 这是专门用于虚拟化PC环境的服务器,它通常是经过修改的基本Windows内核(适用于Microsoft产品)或经过修改的特定Linux发行版(VMWare,Citrix等),专门用于与他们的产品捆绑。
裸机来自这样一个事实,即您不需要安装多用户操作系统或者根本不需要configuration任何操作系统。 您购买服务器,打一个光盘,十分钟后就可以开始configuration虚拟机了。 它从字面上看不是为你做任何事情,而是创build虚拟机。 链接中的替代方法是让您将pipe理程序作为托pipe应用程序运行,通过系统调用与安装的操作系统共享硬件访问权限。
二进制翻译听起来像是在Mac上的Rosetta ,或像Java或.NET字节码翻译的虚拟机。 Rosetta采用非本地代码,并将其转换为本机版本,以便在不同的硬件平台上运行,以获得更好的性能,而不是在每次系统调用时都进行翻译。对于Mac,需要PowerPC代码,并使其可以在Intel处理器。
裸机pipe理程序(例如VMWare ESXi)是直接在硬件上运行的pipe理程序,没有操作系统,例如在PC或Mac上运行VMWare Server / Fusion或Workstation时运行另一个操作系统在虚拟化。 完全虚拟化,就像我看到的那样,意味着虚拟化可用于作为客户端运行的操作系统的整个硬件,而不是直接将命令传递给硬件,就像虚拟机具有专用光盘或NIC一样。 取决于你的课程的主题,你应该包括由IBM大型机完成的硬件虚拟化,或者通过Intel VT或AMD-V进行一些小的扩展。