一、背景
目前的虚拟机有很多,例如VMWare、VitrualBox、QEMU、JVM、Python虚拟机等等。
二、虚拟机的作用
在一台已有的计算机中,忽略实际操作系统种类和硬件的型号,用一些接口库来搭建一台用户想要的,虚拟的程序运行环境。
例如在Windows系统中搭建一个Linux或者MacOS系统平台,在Linux系统中搭建Windows系统平台。
三、虚拟机的难点
1、把相同的代码获得不同系统的支持,需要很多底层的开发。
实际可能有很多功能不支持。
虚拟机就是在当前物理机的硬件和系统基础上,搭建一个规范的运行环境,用很多的转换库来建立虚拟规范和物理机实际规范的联系。
例如:让Linux系统程序在Windows系统下运行,需要建立一个翻译程序,把高层应用的指令,翻译成本地指令执行。
高层调用网络,调用磁盘,调用屏幕,获得鼠标和键盘输入,都需要虚拟机的翻译和反馈。
2、文件读写的路径在不同系统是不一样的。
需要在物理磁盘上划定一个空间来建立一个统一的虚拟磁盘,用统一的方式来访问。
这个方式是高层应用程序支持的。
3、在不同系统上建立统一的环境变量体系。
需要虚拟机搭建一层翻译架构,在虚拟磁盘和内存里维护一个环境变量。