从大二课余接触数据恢复的时候就开始玩虚拟机,从来也没有想过虚拟机是个什么原理,有一次再看书的时候,作者提到过虚拟机的工作原理,回头想想自己电脑上装的VMware Workstation Pro,以前公司在服务器商那里买的服务器,还真是这个理:
硬件和操作系统之间新增一个虚拟层,这个虚拟层也叫虚拟机管理器,通过这个管理器不同的操作系统可以共享一套硬件设备。
虚拟机可以分两种,一种是PC机中装的,windows下的VMware Workstation,VirtualBox;Linux下的KVM;另外一种就是企业用的。分别对应下图中的type2和type1。
当时作者还引用了一句很牛逼的话:
Any problem in computer science can be solved by another layer of indirection.
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。
比如MMU(Memory Management Unit)内存管理单元,就是负责虚拟地址到实际物理地址的转换,可以看成是CPU和物理内存之间的中间层,方便物理内存的更高效使用。还有TCP/IP协议,每一个都是层。
推荐一篇虚拟机讲的更好的文章:http://www.cnblogs.com/plxx/p/5461753.html