基于Intel-VT技术的Smart-VM 第5章 总体设计方案

1.1 需求分析

目前的虚拟机监控器,大多都是直接运行在操作系统之上的,例如 VMware workstation, KVM, Virtual PC 等。只有 Xen 和 VMware ESX 提供运行在硬件上的机制。

但是, Xen 虚拟机监控器使用的是 Linux 内核,因此代码量过于庞大,维护起来非常的困难,而且由于代码量过大,其安全性也相对地较难得到保障。 VMware ESX 虽然提供了它自己设计和实现的一个精简的操作系统内核,可以说,它是目前市面上最为优秀的虚拟机监控器,但是它是闭源的,无法获取源码,而且需要昂贵的授权费用。

基于以上原因,我们提出了设计一个轻量级的虚拟机监控器的方案,即 Smart-VM. 。 Smart-VM 将采用开源的形式,且它提供了一个精简的操作系统内核作为虚拟机监控器的核心。

1.1.1 目标功能

Smart-VM 是一个轻量级的虚拟机,提供了一个专用的操作系统内核。它的主要目标功能包括:

a)        简单的用户交互:即命令行控制台;

b)        虚拟硬件平台:针对每个客户操作系统,虚拟出一套硬件设备;

c)        管理虚拟机:当同时运行多个虚拟机的时候,需要协调多个虚拟机之间的运行;

d)       管理硬件资源:由于 Smart-VM 是直接运行在硬件上的,因此需要管理硬件资源。

1.2 Smart-VM 总体结构

Smart-VM 是在 PC 机上运行的虚拟化技术平台,它提供了同时运行多个客户操作系统的机制。对于每个虚拟计算机, Smart-VM 都会虚拟出一套硬件设备,同时, Smart-VM 又要管理真实的硬件设备,协调各个客户操作系统对硬件设备资源的访问。如图 5.1 。

5 . 1 Smart-VM 总体结构

Smart-VM 虚拟化层:为客户操作系统虚拟出一套硬件平台供其使用;

Smart-VM 操作系统:负责管理硬件资源,同时还要协调好客户操作系统对硬件资源的访问;

1.3 客户操作系统

相对于半虚拟化来说, Intel-VT 技术的优点就是不需要修改客户操作系统的内核,因此,客户操作系统在虚拟平台上的运作模型也没有改变 ( 客户操作系统的运作模型如图 5.2 ,正常操作系统的运作模型是图 5.3) ,极大地降低了开发虚拟机监控器的难度。因此,对于客户操作系统来说,它是感觉不到虚拟机监控器的存在的。

5 . 2 Smart-VM 客户操作系统运作模型

5 . 3 操作系统运作模型

1.4 Smart-VM 监控器

中间着色的部分就是 Smart-VM 虚拟机监控器。它也是我们的工作。

Smart-VM 虚拟机监控器的功能包括:

a)        为每个客户操作系统虚拟出一套虚拟平台;

b)        管理真实的硬件资源;

基于以上的需求,我们将 Smart-VM 分为两个大模块,一个是 Smart-VM 虚拟化层,另外一个是 Smart-VM 操作系统。

1.4.1 Smart-VM 虚拟化层

Smart-VM 虚拟化层的主要功能是为上层客户操作系统虚拟出一套硬件平台:

a)        处理器虚拟化:包括实模式虚拟化和保护模式虚拟化;

b)        中断虚拟化:能够处理异常,软件中断和外部中断;

c)        内存虚拟化:现在,我们是通过虚拟内存的形式实现的;

d)       I/O 虚拟化:能够与外围设备进行通信;

Smart-VM 虚拟化层的架构图如下(如图 5.5 ):

5 . 4 Smart-VM 虚拟化层

虚拟服务分发器:虚拟服务分发器根据客户操作系统退出时得到的信息,将服务请求分发到虚拟化层的各个模块,然后收集各个模块执行完请求后的反馈信息,交给客户操作系统处理。

实模式虚拟化: Smart-VM 的实模式虚拟化,是利用虚拟 8086 模式实现的。主要还是要处理好 BIOS 虚拟化和特权级虚拟化。

保护模式虚拟化:能够运行 32 位客户操作系统的内核,包含三个子模块:

a)        中断虚拟化:主要是处理好保护模式下的中断;

b)        内存虚拟化:使用的是影子页表;

c)        I/O 虚拟化:能够与外围设备进行交互;

1.4.1.1 处理器虚拟化

处理器虚拟化包括实模式虚拟化和保护模式虚拟化两个主要的模块。在处理器运行的过程中,由于各种各样的原因,需要不断地进行 VMX 根操作模式和 VMX 非根操作模式的切换。

5 . 5 Smart-VM 状态转换图

图 5.5 显示了 Smart-VM 的状态转换关系:

1.      计算机刚启动的时候,处理器处于实模式;

2.      当处理器处于实模式的时候,初始化保护模式所需要的环境之后,就可以进入保护模式;

3.      当处理器处于保护模式的时候,可以通过执行 VMXON 指令进入 VMX 的根模式,当处理器处于 VMX 根操作模式的时候,可以通过执行 VMXOFF ,退出到保护模式;

4.      当处理器激活 VMX 模式是,需要处理好三种子模式之间的转换:

a)        VMX 根模式:在 VMX 的根操作模式下运行的是 Smart-VM 虚拟机监控器。通过执行 VMLAUNCH 或者 VMRESUME 指令,处理器可以进入 VMX 非根操作模式;

b)        VMX 非根操作模式下的保护模式:实际上,处理器进入非根模式的时候,只能进入 VMX 非根模式下的保护模式, VMX 非根操作模式下的虚拟 8086 模式,只是 VMX 非根操作模式下的保护模式的一个子模式。

                                      i.              当 eflages 寄存器的 VM 位置 1 是,处理器就处于虚拟 86 模式,从保护模式进入虚拟 86 模式,可以通过执行 iret 指令或者任务切换来完成;

                                    ii.              从 VMX 非根模式下的保护模式退出到 VMX 根模式,有很多种情况,主要分为条件退出和无条件退出两大类;

c)        VMX 非根模式下的虚拟 86 模式:到处理器处于 VMX 非根模式下的虚拟 86 模式,执行的是 16 位的程序;

                                      i.              从 VMX 非根模式下的虚拟 86 模式退出到 VMX 根模式,同样分为条件退出和无条件退出两大类;

                                    ii.              从 VMX 非根模式下的虚拟 86 模式退出到 VMX 非根模式下的保护模式,一般通过异常 / 中断,或者任务切换;

5 . 6 Smart-VM 操作系统的整体结构

1.4.2 Smart-VM 操作系统

Smart-VM 虚拟机监控器设计的目标就是尽可能保持最精简的代码,但是又考虑到性能的原因,因此, Smart-VM 的内核采用了宏内核和微内核的折中处理方法(如图 5.6[15] ),即将一部分与性能密切相关的功能放在内核,其他的功能放在内核之外,作为服务进程来运行。

1.4.2.1 进程管理

进程管理的功能包括:

a)        进程通讯:实现两个进程之间的本地通讯;

b)        进程调度:能够公平合理地为每个进程分配处理器资源;

c)        内存管理:实现内存的动态分配;

1.4.2.2 内存管理

内存管理需要高效的处理两种情况:

a)        小块的内存管理:比如说几个字节的内存申请;

b)        大块的内存管理:比如说一次性申请几十兆,甚至上百兆的内存块;

1.4.2.3 设备驱动

设备驱动程序用于控制硬件。所有针对设备的访问,都是通过设备驱动程序来完成了。

设备驱动程序主要分为两大类:

a)        字符设备驱动程序:这类设备访问速度较慢,例如键盘等;

b)        块设备驱动程序:这类设备的访问速度较快,例如硬盘,显卡等;

1.4.2.4 文件系统

与 Linux 类似,采用所有的设备皆文件的方法。

该文件文件系统主要支持的功能包括:

a)        虚拟机监控器的日志;

b)        各个虚拟机的相关资料,包括虚拟机的配置文件,虚拟机的硬件资源 ( 比如说划分给虚拟机的硬盘也当作一个文件来管理 ) 等;

c)        外部设备;

1.5 本章小结

本章介绍了 Smart-VM 的总体设计方案。

从逻辑上, Smart-VM 分为两层:

a)        Smart-VM 虚拟化层,主要是通过虚拟服务分发器分发客户操作系统的服务请求。

b)        Smart-VM 操作系统,用于硬件资源管理,功能包括:

                        i.              进程管理

                      ii.              内存管理

                    iii.              设备驱动

                    iv.              文件系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值