最后更新:2021/07/04
虚拟化技术将资源抽象化,但它只能在某个层次实现,而不是同时跨越几个层次。通常,虚拟层以下的所有产品和技术都任由虚拟化技术的实现者摆布,采用自己的标准,并且不需要对外(最终用户、上一层)公开,因此其实现方案很可能不断变化,唯有虚拟化最终留给用户的接口层不会改变,这也是计算机系统为什么一直在谈层次的原因,可以说,没有分层,也就不可能存在兼容。虚拟化技术使用者研究的最中心问题就是如何将虚拟化技术简便地嵌入到全系统之中。
虚拟机。采用代码仿真的方式执行虚拟系统,也就是虚拟了全部的计算环境,所有与硬件相关的资源都是通过虚拟接口才提供给运行程序的。JAVA虚拟机就是仿真出一种虚拟的计算机系统,执行JAVA代码,JAVA的最终目标是无论底层是什么硬件设备或者操作系统,都能同样执行JAVA程序,得到同样的结果。如果两种CPU不能执行相同的二进制代码,则只能采用这种方式实现虚拟。
- API虚拟化。使用替代的API,并部分解码执行(或仿真)代码。由于API可以比虚拟执行拥有更高的执行效率,而通过部分解码又能仿真完全不同的CPU,这是经常被业界采用的虚拟化技术,特别是进行CPU设计、单板机开发时,通常采用此技术。(注:API虚拟化的基础是需要相同的CPU指令集,如果CPU指令集不同,则API虚拟化还需要配合指令虚拟化)在1986年,曾经有AIX版本的Soft Windows软件可以仿真Windows 3.1/95/98系统[ 最早开发此软件(包括SoftPC和SoftWindows)的公司是Insignia,没多久此业务就被卖给了FWB software,再以后在面对Ctrix竞争和Win