VirtualBox介绍

概述:

VirtualBox是一个功能强大的基于x86平台的虚拟化产品,VirtualBox可以运行在Windows,linux,mac和OpenSolaris系统上,并且支持大量的客户操作系统,包括windows,Linux,Solaris和OpenSolaris还有FreeBSD。 VirtualBox采用全虚拟化技术,就是模拟操作系统所需的所有硬件,这样操作系统可以不经修改运行于硬件平台之上。这种方法也常常叫做“本地虚拟化”,它是不同于仅仅模仿的。这种方法中,客户代码是不允许直接运行与宿主计算机上的。相反的,每一条机器指令都被翻译(“模拟”)。 VirtualBox是一个开源源码软件,发布在GNU GPL下。

特点:

模块化:VirtualBox有非常好的模块化设计,以及定义好的编程接口、C/S设计。这使得控制VirtualBox变得很容易:例如,你可以启动在一个虚拟机的GUI环境下启动一个虚拟机,然后通过命令行来控制它;或者远程地控制。VirtualBox还有一套完成的SDK。 XML描述虚拟机:虚拟机的配置完全通过XML文件完成,虚拟机的定义可以很容易的在不同计算机之间移植。 对于Windows和Linux的客户附件:VirtualBox有提供特殊的软件套件可以安装在Windows和Linux下来改善其性能以及集成。 VirtualBox进程: 当启动VirtualBoxGUI时,一个额外进程VBoxSVC开始启动。一旦从GUI启动一个虚拟机(VM),这时将会有两个window(一个主窗口,一个虚拟机窗口),有三个进程在运行。一个是对应主窗口,一个对应于所启动的VM,一个是一个服务Daemon进程。对于host操作系统,所启动的VM就是一个进程。 有两种封装对于VirtualBox的文件和进程:

1. Client/Server 架构。正在运行的VirtualBox和VM的各个方面可以通过一个简单而且功能强大的COM/XPCOM API来控制。例如,有一个叫做VboxManage的命令行工具,可以想GUI一样控制所有的VM

2. 前台/后台 架构。在Linux上的VBoxVMM.so是VirtualBox的核心部件。

虚拟机内部:

从宿主操作系统的角度看,一个虚拟机只是一个进程。宿主操作系统不需要太多的特殊支持针对虚拟化。VirtualBox会有一个Ring0级别的驱动需要装载在host OS中,来支持VirtualBox的工作,它只是负责给VM分配物理内存;处理CPU寄存器等。 在虚拟机启动之后,宿主计算机可以运行在几个不同的状态下:

1. CPU在执行host Ring-3代码,或者host Ring-0代码(就像在没有运行VirtualBox的状态下)

2. CPU模拟客户代码(Ring-3的宿主VM进程)。基本上,VirtualBox尽量以本地的方式运行guest code。VirtualBox的虚拟器(src/emulator)是基于QEMU项目的。

3. CPU本地运行客户Ring-3代码。

4. 本地运行客户Ring-0代码。

猜你喜欢

转载自kungstriving.iteye.com/blog/614183