第5章 总体设计方案
2010-11-29 09:26
232 查看
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.
文件系统
相关文章推荐
- 第5章 总体设计方案
- 中小型企业计算机局域网总体方案设计
- 【2】基于STM32微处理器的智能红外插座设计——【1、总体方案设计】
- 施工导截流方案辅助设计软件的总体功能(首次公开)
- 【1】基于ATmega 8A -PU 的蓝牙遥控电源插座设计——【1、总体方案设计】
- fans-rt 内存管理设计方案(2)总体设计
- 校园数字化建设--注册中心投标文件研究(2)--设计方案总体技术框架
- 校园数字化建设--注册中心投标文件研究(3)--设计方案总体技术框架技术细节
- 【安富莱二代示波器教程】第5章 示波器设计—波形快速刷新方案
- 【1】基于TQ2440的MP3设计——【1、总体方案设计】
- 校园数字化建设--注册中心投标文件研究(4)--设计方案总体技术框架技术细节
- 二维条码汽车销售管理系统总体方案设计
- 笔试Java实现单例设计模式(最优方案)
- 多核软件设计方案
- 关于系统集成的设计方案(一)
- 常规功能和模块自定义系统 (cfcmms)—041模块附加字段和新的Grid方案设计器
- 架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇
- 跟我一起学extjs5(12--模块界面的总体设计)
- 一篇文读懂开源数据库的现状:方案、设计思想及适用场景
- 前端通信:ajax设计方案(六)--- 全局配置、请求格式拓展和优化、请求二进制类型、浏览器错误搜集以及npm打包发布