虚拟化软件是如何工作的?

11

我想知道虚拟化软件如VirtualBox或VMWare Workstation是如何工作的?他们如何创建被操作系统视为单独计算机的虚拟环境?我几乎可以肯定这个问题的答案非常深奥,但我会满意于基本理论。


这个问题属于Serverfault。 - Rodrigo
2
Rodrigo:我不这么认为,但我也不确定它是否适合在这里。 - Noon Silk
3个回答


1
在最简单的意义上,虚拟化环境就像是解释型语言(例如PHP、Javascript或Basic)对于编译型语言(例如C、C++或汇编语言)的本地环境。当编译二进制文件执行时,二进制机器代码直接传递给CPU。然而,当解释型语言运行时,语言应用程序读取代码,然后决定其含义并执行二进制过程以反映出来。
因此,像Qemu这样的虚拟化软件,虽然编译为在x86处理器上运行,但会读取针对Mac的二进制文件,并解释收到的二进制文件,将其从大端切换到小端,然后知道Mac上的操作码X对应于x86上的操作码Y,而Mac上的操作码A在x86上没有相应的操作码,因此需要调用x86上的函数B等等。
真正聪明的部分是硬件解释,其中某人必须编写一个驱动程序,在Qemu上运行在x86上,但将界面呈现给Qemu的Mac界面,使Mac应用程序认为它们正在与Mac硬件交流。

0
在最基本的意义上,虚拟化软件将一台计算机置于另一台计算机之内...有点像。(这里是一个非常基础的链接:http://blog.capterra.com/virtualization-software
更复杂的情况下,虚拟化软件(也称为 hypervisor)抽象出服务器的特征。这使得多个操作系统可以在单个物理服务器上运行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接