
VirtualBox原本是由德国Innotek公司开发的跨平台虚拟机软件, 2008年2月,Sun公司收购了Innotek,将VirtualBox作为其xVM虚拟化平台的一部分继续研发。
Sun虚拟化技术比较
表1 是Sun几种虚拟化技术比较

2 Sun xVM hypervisor的基础Xen
Xen起源
Xen VMM(Virtual Machine Monitor)是由剑桥大学计算机实验室开发的一个Open Source项目,目前稳定版本为Xen 3.0,主要目的是为了建立更多的虚拟机。VMware和Xen之间的差异点在于前者完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen则使用了称为“paravirtualization(泛虚拟化)”的技术,其效能更快,但需要对操作系统进行适当修改。图1所示为Xen 3.0的架构。

图1 Xen 3.0架构
3 Sun xVM hypervisor架构
Sun xVM hypervisor架构如图2。

图2 Sun xVM hypervisor架构
基本架构
xVM 是在 Xen 社区工作的基础上开发的。系统运行时,Xen 的作用是在硬件和操作系统之间进行协调。 xVM 同时支持多个操作系统实例。每个实例被称作一个“域(domain)”。有两种不同的域:控制域(通常称作 "dom0")和用户域(称作 "domU")。与 Solaris Zones 有所不同,xVM 的每个域都运行操作系统的一个完整实例。xVM 管理程序虚拟系统硬件。这显然意味着xVM 管理程序在用户域之间共享并分割系统资源 ( CPU、 memory、 NIC 等等)。 管理程序执行向操作系统提供虚拟平台的低级管道,对于其他方面却严重依赖于控制域。控制域决定创建哪些用户域,访问哪些资源,拥有多少内存等等。此外,xVM 不包含任何设备驱动程序,所以控制域执行所有的设备访问。
有两种基本的虚拟化技术:全虚拟化(full virtualization)和泛虚拟化(paravirtualization)。xVM 支持两种模式。由于操作系统必须和管理程序层面密切协作,控制域始终被泛虚拟化。用户域既可泛虚拟化,又可全虚拟化,而且系统可以同时运行在两种模式下。
全虚拟化要求管理程序显式的截取操作系统直接在硬件上执行的许多特定操作。这种截取使管理程序保证一个域不能读取或修改另一个域的内存,不干扰设备访问, 且不能关掉该域正在使用的 CPU。xVM 要求专用设备支持来实现全虚拟化。具体讲,必须使用 VT 支持的 Intel CPU (例如Intel 酷睿双核心处理器),或者带有 AMD-v 技术的 AMD CPU。全虚拟化允许包括 Solaris、 Linux 以及 Windows 操作系统在内的任何一个 x86 操作系统在访客域中运行。
泛虚拟化建立在同步调用(hypercall)接口之上。由于没有截取请求,泛虚拟化并不需要专用设备支持,而且可在任 意 CPU 上运行。由于泛虚拟化要求对操作系统进行改动,所以在泛虚拟化用户域中只有特定操作系统才能被操控。目前这些操作系统仅限于 Solaris、Linux 和 FreeBSD。
资源虚拟化
1中央处理器
xVM 分配给每个域一个或多个虚拟 CPU(vcpu)。每一个虚拟 CPU 包含与典型物理 CPU 相关的所有状态:缓存器、标志、时间戳记等等。xVM 中的虚拟 CPU 就像 Solaris中的一个线程,是可以预订的实体。当轮到一个域在 CPU 上运行时,xVM 把在 vcpu 中捕获的状态数据载入到物理 CPU 中并运行。Solaris将每一个虚拟 CPU 视为一个物理 CPU。当 xVM 选择一个虚拟 CPU 运行时,xVM 将运行 Solaris 在虚拟 CPU 上加载的线程。
2 内存
Solaris 以页的形式管理内存。当 Solaris 直接在硬件上运行时,使用系统 BIOS 或固件所提供的物理页桢号。当系统在 xVM 下运行时,管理程序提供可用的物理页面列表。为了将子操作程序(guest OS)从硬件中分离出来,为了启用像动态迁移这样的特性,由 xVM 提供的页桢号并不反应被硬件识别的物理页。而这些页面反映系统内存的优化视图。xVM 将访客操作系统的“物理”页号变换成硬件可识别的“机器桢号(MFN)”。
© 1999-2026 西安瑞友信息技术资讯有限公司版权所有 | 法律声明 | 正版验证 | 联系我们 | 陕ICP备06007935号-1