VMWare是如何工作的: http://www.extremetech.com/article2/0,2845,1624080,00.asp 虚拟化是如何工作的: http://blog.tmcnet.com/voip-enterprise/tmcnet/how-does-virtualization-work-and-why-is-now-a-good-time-to-check-it-o.asp 服务器虚拟化FAQ: http://www.itmanagement.com/faq/server-virtualization/
在最简单的意义上,虚拟化环境就像是解释型语言(例如PHP、Javascript或Basic)对于编译型语言(例如C、C++或汇编语言)的本地环境。当编译二进制文件执行时,二进制机器代码直接传递给CPU。然而,当解释型语言运行时,语言应用程序读取代码,然后决定其含义并执行二进制过程以反映出来。因此,像Qemu这样的虚拟化软件,虽然编译为在x86处理器上运行,但会读取针对Mac的二进制文件,并解释收到的二进制文件,将其从大端切换到小端,然后知道Mac上的操作码X对应于x86上的操作码Y,而Mac上的操作码A在x86上没有相应的操作码,因此需要调用x86上的函数B等等。真正聪明的部分是硬件解释,其中某人必须编写一个驱动程序,在Qemu上运行在x86上,但将界面呈现给Qemu的Mac界面,使Mac应用程序认为它们正在与Mac硬件交流。
在最基本的意义上,虚拟化软件将一台计算机置于另一台计算机之内...有点像。(这里是一个非常基础的链接:http://blog.capterra.com/virtualization-software)更复杂的情况下,虚拟化软件(也称为 hypervisor)抽象出服务器的特征。这使得多个操作系统可以在单个物理服务器上运行。