虚拟机的三个级别
虚拟机有三个级别,分别从硬件层到应用层硬件虚拟机:一般也被称为抽象机,是在硬件层面抽象出一个主机,可以安装各类型的操作系统,等于虚拟出一套硬件系统。典型代表:VMware,virtualbox操作系统虚拟机:在操作系统层面重新构写其他操作系统的api,实现操作系统之间的兼容。典型代表:wine代码运行环境虚拟机:提供一个程序运行时的环境,如java,python,l...
虚拟机有三个级别,分别从硬件层到应用层
-
硬件虚拟机:一般也被称为抽象机,是在硬件层面抽象出一个主机,可以安装各类型的操作系统,等于虚拟出一套硬件系统。典型代表:VMware,virtualbox
-
操作系统虚拟机:在操作系统层面重新构写其他操作系统的api,实现操作系统之间的兼容。典型代表:wine
-
代码运行环境虚拟机:提供一个程序运行时的环境,如java,python,lua等语言的运行环境
如果需要不同的操作系统平台,一般用硬件虚拟机,如部署hadoop。如果需要不同的编译解释环境,一般用运行环境虚拟机,如安装spark和zepplin等。操作系统级别用的较少。
以下是我看到得另一种分类方法,分为四层
-
模拟硬件的虚拟机
此类虚拟机的用户是操作系统,也就是硬件层虚拟机抽象出了一个计算机硬件体系,此类虚拟机模拟的是cpu指令集。
典型有kvm,vmware等。
-
模拟操作系统的虚拟机
此类虚拟机模拟的是操作系统,准确来说是操作系统的系统调用接口。此类虚拟机(多是基于宿主操作系统提供的功能)能创建多个虚拟运行容器。对于运行在每个容器之中的程序而言,此类虚拟机均提供了一个完整的操作系统,为其中的软件提供了完善的系统调用接口,也就是说模拟的是系统调用。比如docker,docker基于linux的cgroup,否则docker也无法实现虚拟操作系统环境。
-
API层的虚拟机
此类虚拟机模拟的是该操作系统的各类用户态API,通常是运行库的函数接口(也就是说模拟的是用户态中各种库的接口函数),总之不是对处理器指令的仿真(绝不是一个层面 )。
-
编程语言的虚拟机
此类虚拟机也称为语言的运行时,运行时环境,即runtime。通过解释或即时编译技术(Just-In-Time,JIT)来运行语言虚拟机指令,从而实现软件的跨平台特性。如java,lua,python等
更多推荐
所有评论(0)