(计算机应用技术专业论文)基于ucosⅡ的虚拟化技术研究与实现.pdf_第1页
(计算机应用技术专业论文)基于ucosⅡ的虚拟化技术研究与实现.pdf_第2页
(计算机应用技术专业论文)基于ucosⅡ的虚拟化技术研究与实现.pdf_第3页
(计算机应用技术专业论文)基于ucosⅡ的虚拟化技术研究与实现.pdf_第4页
(计算机应用技术专业论文)基于ucosⅡ的虚拟化技术研究与实现.pdf_第5页
已阅读5页,还剩74页未读, 继续免费阅读

(计算机应用技术专业论文)基于ucosⅡ的虚拟化技术研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学硕士研究生学位论文第l 页 摘要 长久以来,企业界一直在信息化建设和资金投入间艰难的寻找平衡点。 近几年来,随着x 8 6 体系结构计算机性能的飞速提升,软件人员开始将过去 应用在大中型计算机上的虚拟化技术带到x 8 6 架构上。在目前虚拟化浪潮席 卷了整个i t 业界的大背景下,兼之嵌入式芯片的计算能力不断提高,嵌入式 领域同样地面对投入产出比最大化的问题。本论文的目的就是设计实现一个 虚拟化的硬件抽象层,让实时嵌入式操作系统u c o s ii 能够稳定地运行在目 前最热门的采用准虚拟化技术的虚拟机监视器x e n 上。 本文简单的介绍了虚拟化技术的基本概念,并对u c o s i i 的系统组成进行 了研究分析,指出了构建u c o s - i i 硬件抽象层的关键。与全虚拟化技术不同, 虚拟机监视器x e n 使用的准虚拟化技术提供给用户的是不完全等同于硬件结 构的编程界面。虚拟0 s 作为运行域,它的整个生命周期和操控比之真实的机 器有所不同。首先它对硬件配置的获取就不能靠通常的与b i o s 进行数据交换 来获得,取而代之的是硬件配置文件;当域进入运行态后,客户0 s 域与虚拟 机监视器的互操作显得至关重要,所以论文着重讨论了虚拟机监视器x e n 和 其上客户o s 间的通信机制和用于交换数据的相关重要数据结构;同时对用于 取代c p u 中断机制的轻量级事件机制进行了详细介绍并举出了设计实例,应 该指出的是这之前的内容对其他打算运行在x e n 之上的0 s 同样是适用的;在 虚拟化u c o s i i 的过程中,u c o s - i i 的调度机制无疑是重中之重,利用硬件抽 象层,将二者很好地融合。最后给出了一个虚拟u c o s i i 的运行实例。论文 按照将一个客户0 s 运行起来的操作步骤组织全文,在这个过程中,对涉及到 的硬件抽象层建立技术、客户0 s 相关机制虚拟化逐步展开讨论。 关键字准虚拟化;x e n ;u c o s - ii ;嵌入式操作系统 西南交通大学硕士研究生学位论文第t 1 页 a bs t r a c t f o ral o n gt i m e ,e n t e r p r i s e sh a v es t r u g g l e df o rt h eb a l a n c eo ff u n da n d i n f o r m a t i z e dp r o g r e s s i nr e c e n ty e a r s ,w i t ht h es i g n i f i c a n ti n c r e a s ei nc a p a b i l i t y o fx 8 6 ,s o f t w a r ee n g i n e e r sh a v es u c c e s s f u l l ym o v e dv i r t u a l i z a t i o nt e c h n i q u ef r o m m a i n f r a m et ox 8 6 v i r t u a l i z a t i o nc o m e st os t i rt h ei ti n d u s t r yu pa n do nt h i s b a c k g r o u n de m b e d d e dc h i p sa l s of a c e st h ep r o b l e mt h a tm a x i m i z i n gp r o f i ta n d b e i l l gc o s t - e f f e c t i v e t h em a i nf o c u so ft h i st h e s i si st oi m p l e m e n tah a r d w a r e a b s t r a c t i o nl a y e r ( h a l ) ,m a k i n gu c o s i ir u n n i n go nt h eh o r e s tv i r t u a lm a c h i n e m o n i t o rx e n a f t e ri n t r o d u c i n gs o m ev i t r u a l i z a t i o nc o n c e p t sa n da n a l y z i n gt h es t r u c t u r eo f u c o s i i ,t h i st h e s i sp o i n t so u tt h ec r i t i c a l n e s so ft h eg o a l x e nu s e st h e p a r a v i r t u a l i z a t i o nt e c h n i q u ew h i c hp r e s e n t sas o f t w a r ei n t e r f a c et ov i r t u a l m a c h i n e st h a ts i m i l a rb u tn o ti d e n t i c a lt ot h a to ft h eu n d e r l y i n gh a r d w a r e t h e i n i t i a l i z a t i o no fo sa sad o m a i nh a sad i f f e r e n tl i f ec y c l ew i t ht h er e a l i tg e t st h e e n v i r o n m e n ti n f o r m a t i o nn ol o n g e rf r o mt h eb i o sb u tc o n f i g u r a t i o nf i l e m e l l c o m e st or u n n i n gs t a t e ,h o wt h ev i r t u a lm a c h i n em o n i t o ri n t e r a c t sw i t ht h eg u e s t 0 si s v e r yi m p o r t a n t s o t h et h e s i s g i v e s t h ed e t a i l e di n f o r m a t i o no f c o m m u n i c a t i o nm e c h a n i s ma n dd a t as t r u c t u r ee x c h a n g e db e t w e e nt h ex e na n d g u e s to s a n da l s o ,g i v e sae x m a p l eo fe v e n ts y s t e ms u b s t i t u t i n gt h ei n t e r r u p t u s e db yar e a lc p u m a td i s c u s s e ss of a ri ss u i t a b l ef o rt h eo t h e r0 sp l a n n i n gt o p o r tt ox e n 、e ni tc o m e st ov i r t u a l i z et h eu c o s i i i ti sc r i t i c a lf o ri t sd i s p a t c h m e c h a n i s m m a k i n gu s eo ft h eh a l i tw o r k sf i n e 1 a s t l yav i r t u a l i z e du c o s i i r u n n i n ge x a m p l ei sg i v e n n l i st h e s i si so r g a n i z e di nt h ep r o c e d u r eo fm a k i n ga g u e s to st or u n n i n go nx e n d u r i n gt h ep r o g r e s sr e l e v a n tt e c h n i q u eo fh o wt o i m p l e m e n tah a la n dg u e s to sv i r t u a l i z a t i o na r ed i s c u s s e de x t e n s i v e l y k e yw o r d s :p a r a v i r t u a l i z a t i o n ,x e n ,u c o s - i i ,e m b e d d e do p e r a t i n gs y s t e m 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作 所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。 本学位论文的主要创新点如下: 以目前最流行的开源项目x e n 2 0 为宿主,设计并实现了基于u c o s i i 的 虚拟化硬件抽象层。硬件抽象层初始化虚拟机硬件环境,通过和宿主x e n 的 进程间通信,获取虚拟机硬件状态;完成中断到事件的虚拟化映射,提供给 客户0 s 自定义中断处理函数的功能,完成异常事件的处理,并具有一定的健 壮性。还提出了可行的调试手段,帮助客户0 s 查找可能出现的问题。此外, 硬件抽象层为u c o s - i i 提供了硬件操作的软件界面,通过自定义时钟中断, 完成了u c o s - i i 的任务级中断调度机制和时钟中断调度机制;并初始化运行 u c o s i i 。 西南交通大学曲南叉遗大罕 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位 论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密彩使用本授权书。 ( 请在以上方框内打“”) 学位论文作者签名: , l2 心 指导老师签名: 乒 勿艺 刀 日期:矿护占,f z7 日期:加8 、交 西南交通大学硕士研究生学位论文第l 页 1 1 引言 第1 章绪论 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基 础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件 的重新配置过程。c p u 的虚拟化技术可以让单c p u 模拟多c p u 并行,允许一个 平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行 而互不影响,从而显著提高计算机的工作效率。 随着x 8 6 架构的性能飞速提升,同时企业对提高自身产出与投资比的强 烈期望推动软件开发人员将虚拟化技术带到了x 8 6 架构上。通过虚拟化技术 能够使企业投入更少的资金、整合服务器,将已有的基础架构发挥到最大化。 开源项目x e n 采用了准虚拟化技术。通过准虚拟化技术,x e n 在宿主机上 获得了高性能,但是在其上运行的操作系统必须进行显式地修改( 提供对用 户应用的兼容性) 。x e n 自推出后就受到多个软件巨头的热烈追捧,n o v e l l 和 r e dh a t 分别在其的s l e s1 0 、r h e l5 中加入了对x e n 的支持。两大巨头甚至 为该技术在其发行版中的推出时间打开了口水战,x e n 的热度由此可见一斑。 可以预见的是,随着嵌入式芯片的性能提升,虚拟化技术也必将进入到 嵌入式领域。在给用户带来更大产出的同时,虚拟化技术通过隔离各个客户 0 s 还能给用户带来更多的安全性。 本文的主要工作就是搭建一个虚拟化o s 的软件开发平台,设计实现一个 虚拟化硬件抽象层,使嵌入式实时操作系统u c o s - i i 能够作为客户0 s 运行在 x e n 上。硬件抽象层负责与宿主x e n 通信,初始化虚拟机硬件环境,完成中断 到事件的虚拟化映射,提供给客户0 s 自定义中断处理函数的功能,完成异常 事件的处理,并具有一定的健壮性。硬件抽象层还提供了调试的手段,帮助 客户0 s 查找可能出现的问题。此外,硬件抽象层为u c o s - i i 提供了硬件操作 的软件界面,通过自定义时钟中断,完成了u c o s i i 的任务级中断调度机制 和时钟中断调度机制;并初始化运行u c o s - i i 。 1 2 国内外研究现状 1 9 5 9 年克里斯托弗( c h r i s t o p h e rs t r a c h e y ) 发表了一篇学术报告,名为 “大型高速计算机中的时间共享”( t i m es h a r i n g i n l a r g ef a s t c o m p u t e r s ) 1 3 8 j ,他在文中提出了虚拟化的基本概念,这篇文章也被认为是虚 西南交通大学硕士研究生学位论文第2 页 拟化技术的最早论述。很快这项新技术被应用到了大型的主机上。 也是在上个世纪的6 0 年代,i b m 公司就发明了一种操作系统虚拟机技术, 允许用户在一台主机上运行多个操作系统,让用户尽可能地充分利用昂贵的 大型机资源。由于虚拟化技术在商业应用上的优势,r i s c 服务器与小型机成 为了虚拟化技术第二代受益者。1 9 9 9 年,i b m 公司在a s 4 0 0 上提出了“逻 辑分区( l p a r ) 技术和新的高可用性集群解决方案 4 6 i 。惠普、s u n 公司也跟 随i b m 在自己的r i s c 服务器上提供了虚拟化技术【4 7 j 。 在虚拟技术运用于大型第三代计算机上之后,人们能够凭借经验来判断某 些计算机系统是否能支持虚拟机技术,但标准并不统一 3j - 3 5 ,如d e cp d p 一1 0 , 就不能支持虚拟化系统f 3 引,同时在构建可虚拟化系统方面也有很多提议 3 2 , 3 6 a 0 - 4 2 。1 9 7 4 年,在p o p e k 和g o l d b e r g 的论文f o r m a lr e q u i r e m e n t sf o r v i r t u a l i z a b l et h i r dg e n e r a t i o na r c h i t e c t u r e s 网中,二人建立了第三代 计算机系统模型 4 3 , 4 4 ,并利用正则技术提出了某种计算机系统是否支持虚拟 化技术的精确条件。二人认为虚拟机环境应该满足三个特性: 资源控制 虚拟机监视器( v m m ) 对虚拟化资源有完全的控制。 一效率 绝大部分的指令应该在无v m m 的介入下完成。 - 等价性 程序运行于v m m 下时应该与运行在实际的物理机下表现出相同的特陛。 为了实现如上所述的特性,p o p e k 和g o l d b e r g 提出了指令体系结构 ( i n s t r u c t i o ns e ta r c h i t e c t u r e ) 的分类方法,他们将i s a 分为3 组: 特权指令( p r i v il e g e di n s t r u c t i o n s ) 在特权模式下能正常执行,而在其他模式下会自陷的指令。 控制敏感指令( c o n t r o ls e n s i r i v ei n s t r u c t i o n s ) 引起系统资源改变的指令。 行为敏感指令( b e h a v i o rs e n s i t i v ei n s t r u c t i o n s ) 指令的行为结果依赖于资源配置。 通过研究他们提出以下法则:对常规的第三代计算机系统来说,如果敏感 指令是特权指令的一个子集,那么可以构建v m m 。换句话说,对影响v m m 工作 的敏感指令总是自陷,并将控制权交到v m m ,这样就保证了v m m 对资源的控制。 另一方面,非敏感指令的执行无需v m m 的介入,这样就保证了系统的效率, 实现了等价性。 另外一个有意思的问题是递归虚拟化的问题,即v m m 能否运行在它自身的 西南交通大学硕士研究生学位论文第3 页 的环境下。二人提出了如下法则:递归虚拟化应满足上述虚拟化条件,且无 时间依赖i 卫3 。 随着个人计算机的普及,国际知名的信息技术咨询顾问公司1 1 ) c 认为基于 软件的虚拟化技术已经在过去几年成为了i a 架构服务器上实现资源共享的重 要解决方案“,。 目前基于软件的虚拟化解决方案的主流软件制造商有v m w a r e 、m i c r o s o f t 和来自开源社区的x e n 。在软件实现中,通过在操作系统( w i n d o w s ,l i n u x ) 和实际的物理硬件间构造一个抽象层,使得抽象层上的0 s 如同获得了对下层 硬件设备的完全控制。这里值得一提的是,x e n 使用的是与传统的完全虚拟化 方式不同的准虚拟化技术,如图卜1 所示。 善 e 喜 差i # 舞 董 彗子 童菩 重量 子羞 v 删i i a l i o n c t b n o p 训n g s y s k m t r a d i t i o n a la r * p r o a c h x 曲a p p r 雌c h 图卜lx e n 与传统的虚拟化方式f 3 l 传统的虚拟化方式,如v g w a r e 等,作为已经运行了的0 s 的一个应用程序 运行,然后再在应用程序内部完全模拟硬件环境来运行客户o s 。 v it t u l z a tb o m c h n oj a a y o j t 。v t 曩曩“e曩。曩s 图卜2i n t e l 虚拟化技术v t 前后f 2 】 软件虚拟化最大的问题就在于虚拟化的开销过大,影响系统性能和对软硬 西南交通大学硕士研究生学位论文第4 页 件系统的可支持性口j 。正是基于此,硬件虚拟化支持日益重要起来。i n t e l 提 出的v t 技术在传统的4 级r i n g 之下再加入v m xr o o t 层,如图卜2 所示。这 样就保存了对传统操作系统的兼容性,降低了系统虚拟化的消耗和复杂度, 同时也增加了系统的可靠性和伸缩性。 根据英特尔的蓝图,在处理器当中集成硬件辅助虚拟化指令只是i a 平台 上的第一步,而在第二步则要实现z o 方面的虚拟化,直到最后实现整个i a 平台的虚拟化,如图卜3 所示。也就是说,目前的x 8 6 平台上,仅仅能够实 现在处理器级别的虚拟化,在i o 以及其他方面的虚拟化还需要进一步的发 展。不仅如此,x 8 6 架构上的虚拟化技术还无法完美实现虚拟分区之间动态迁 移,而这些在u n i x 平台、大型主机上早已不是问题。目前,x 8 6 架构上的虚 拟化技术的最高规划是支持8 路s m p 系统。 v n u i 硅a c h i n m l l o r1 匕口口口 誉鋈5 。警。笪。翟 点型秽囊 1 3 本文组织结构 芒尹 芒当芦 圈13i n t e l 虚拟化路线 本文在研究分析目前最流行的准虚拟化监视器x e n 与客户o s 数据通信的 基础上设计实现虚拟化硬件抽象层,并提供对客户u c o s i i 的硬件服务, 使u c o s i i 能够运行在宿主x s n 上。在讨论过程中,特别对构建x e n 上的硬 件抽象层进行了详细讨论,这部分内容不光对虚拟化u c o s i i 有用,对虚拟 化其他o s 到x e n 上同样适用。 第2 章内容对目前流行的今准虚拟化技术进行了概述。分别对x e n 所采 西南交通大学硕士研究生学位论文第5 页 用的准虚拟化方式的思想和嵌入式实时操作系统u c o s - i i 进行阐述,介绍了 它们的一些基本特征。 第3 章是构造虚拟化0 s 的硬件抽象层。详细分析了x e n 与虚拟0 s 之间数 据通信的具体方式和采用的重要数据结构;设计实现了虚拟化方式下客户o s 新的硬件抽象层。 第4 章实现了针对u c o s - i i 的虚拟化硬件接口。做为虚拟化0 s 的一个实 例,对u c o s i i 的运行调度机制进行了相关的虚拟化,最后给出了运行的示 例。 最后是对本文的一个总结,指明了以后尚需进一步完善的工作。 西南交通大学硕士研究生学位论文第6 页 第2 章基于x e n 的嵌入式实时操作系统 u c o s - i i 概述 2 1 虚拟化技术 虚拟化技术广泛应用于计算机领域,其核心思想实际就是对计算机资源 的一种抽象。按虚拟层次的不同,又可以分为应用虚拟化、资源虚拟化、平 台虚拟化。 - 应用虚拟化f 5 0 , 5 h 如模拟器、跨平台的虚拟化等,指在异类的软硬件上运行独立的应用 程序。 资源虚拟化 使用者最常见的,如采用虚拟内存、存储虚拟化、网络虚拟化、封装 技术等,指对特定的系统资源进行虚拟化。 _ 平台虚拟化 4 8 4 9 】 指将操作系统与底层硬件分离。本文研究的x e n 虚拟机监视器就属于 这种平台虚拟化。 目前,平台虚拟化方面从软件上多采用的是全虚拟化技术和准虚拟化技 术,而从硬件方面来看,最近x 8 6 体系推出的v t 技术则是硬件辅助虚拟化技 术。 。 2 1 1 全虚拟化技术( f ui | vir t u a | z a tio n ) 传统的虚拟机监视器提供的是一个与下层硬件功能相等的虚拟机接口 f 6 】。完全虚拟化的技术挑战在于特权指令的截获和模拟,如i 0 指令。单个 虚拟机内的指令操作效果不能影响其他虚拟机,控制程序或硬件设备。那些 指令运行效果可控的指令可以被直接执行,如内存访问和算术寄存器操作。 但是其他危害虚拟机安全的指令应该被自陷或者模拟,这些有危害的指令通 常会改变或访问虚拟机以外的敏感信息。 全虚拟化的原型实例是i b m 的c p c m s 操作系统的控制程序,最初于1 9 6 7 年实现在i b m 的c p - 4 0 研究系统上f 45 | 。在1 9 6 7 - 1 9 7 2 年c p c m s 通过开源发 西南交通大学硕士研究生学位论文第7 页 行。1 9 7 2 年后至今实现在i b m 的系列机上。通过全虚拟化,每个c p c m s 的用户获得了一个与底层计算机完全兼容的独立的虚拟机器。这种虚拟是全 面的,包含了指令集、内存、中断、异常和设备访问。这样就使得单个物理 机可以被多个用户复用。 在x 8 6 体系结构推出v t 技术前,它并非是一个可以全虚拟化的平台,换 句话说,它不符合本文前面提到的p o p e k 和g o l d b e r g 的可虚拟化法则。但是 x 8 6 平台巨大的市场占有率刺激着人们去实现其上的虚拟化。1 9 9 9 年2 月 v m w a r e 推出了第一个x 8 6 虚拟化产品,该产品来自于v m w a r e 的创立者们在斯 坦福大学的研究工作。通过采用一种称为二进制转译( b i n a r yt r a n s l a t i o n ) 的技术,v m w a r e 运行时动态地将那些危害虚拟机安全的指令替换为安全的指 令序列,这样就提供了一个表面上的全虚拟化f 刀。他们的这项技术于2 0 0 2 年 5 月获得了美国专利u s p a t e n t6 ,3 9 7 ,2 4 2 3 0 】。二进制转译又可以分为静态 转译和动态转译两种。 一静态转译 将整个执行文件直接转译到目标结构。但是这种方式很难保证结果的 正确性,因为不是所有的代码都可以被转译器识别出来。如转移结构 中( 例如:i m p e a x ) ,转移地址是动态决定的就很难在静态时确定。 动态转译 采取折中的方法,仅转译代码短序列。通过预先扫描代码,将代码划 分为只有一个入口、出口、内部无跳转指令的基本块( b a s i cb l o c k ) 。 转译时以基本块为单位并缓存结果。当需要转译时才才进行转译工作, 并将分支指令指向到转译后的代码。动态转译消除了简单模拟那种边 解码一边执行的性能瓶颈,使得转译后的代码可以多次执行,降低了性 能耗费。 更高级的动态转译 采用了来自j i t 编译器的思想,使用动态重编译( d y n a m i c r e c o m p i l a t i o n ) 技术。转译器发现频繁执行的代码片断,主动将其优 化,进一步提高了系统性能。 需要指出的是对不符合p o p e k 和g o l d b e r g 的可虚拟化法则的平台进行的 虚拟化是以牺牲系统性能为代价的。 西南交通大学硕士研究生学位论文第8 页 2 1 2 准虚拟化技术( p a r a v lr t u aiiz a tio n ) 准虚拟化技术这个术语最先出现在d e n a l i 虚拟机监视器的研究文献中p j 。 它是一种为虚拟机提供了与底层硬件类似但又不完全相同的软件接口的虚拟 技术。 d e n a l i 计划泌j 是美国华盛顿大学的一个虚拟机监视器项目。它主要针对的 是运行网络服务的虚拟机,而且网络服务中绝大部分都是小规模,非流行的 应用。这就决定了它与x e n 的设计将支持业界标准应用和服务的虚拟机有着 极大的区别。这里列出了d e n a l i 与x e n 在设计理念上的不同之处1 9 j : d e n a l i 没有考虑兼容现有的应用程序二进制接口( a p p l i c a t i o n b i n a r yi n t e r f a c e ,a b i ) ,它的接口没有相关的架构特征。如d e n a l i 不完全支持x 8 6 的分段机制。但是这个机制已经在n e t b s d 、l i n u x 和 w i n d o w s 上得到广泛的支持。 d e n a l i 不支持单个客户o s 上的多个应用,也没有解决多地址空间的 问题。应用程序与客户操作系统i l w a c o 显式连接到一起,有点像之前 的e x o k e r n e l 中的1i b 0 s t l 0 】。每个虚拟机只能操控一个单用户单应用 的没有保护措施的所谓“操作系统。在x e n 中,每个虚拟机上都能运 行一个真正的操作系统。而在操作系统上能够安全地执行数以千计的 不经改动的用户级进程。虽然d e n a li 称开发了一个虚拟m m u 原型能够 对其所在领域有所帮助1 1 1 l ,但是目前没有公开的技术细节和评估报告。 一d e n a l i 体系结构中,虚拟机监视器负责内存与磁盘问的页面调度。这 可能是缺乏虚拟的存储管理层有关。由虚拟机监视器来完成页面调度 是与x e n 的性能隔离目标相违背的。这会造成“有恶意”的虚拟机故 意产生抖动行为,导致其他虚拟机的c p u 时间和磁盘带宽被不公平的 剥夺。x e n 中,客户0 s 在自己分配到的内存空间和磁盘区域内执行它 的页面调度( 此前已经有s e l f p a g i n g 方法h 2 j ) 。 d e n a l i 为机器的全部资源虚拟了“名字空间”。这样的话,如果一个 虚拟机不知道另一个虚拟机所拥有资源的名字,它就不能访问该资源 ( 例如,d e n a l i 中的虚拟机并不知道硬件地址,它们只能看到d e n a l i 创建的虚拟地址) 。x e n 则通过加强h y p e r v i s o r 的安全性访问控制保 证资源的安全。此外,在客户0 s 是否应该直接看到物理资源这一点上 还存在热烈的关于正确性和性能的争论。 采用准虚拟化技术能够让虚拟机监视器变得更简单,同时在其上运行的客 西南交通大学硕士研究生学位论文第9 页 户操作系统也能够获取接近非虚拟化的性能。但是操作系统必须显式的移植 到准虚拟化监视器上。这使得操作系统的所有者可能因为自身策略的原因拒 绝准虚拟化。 2 2 基于准虚拟化技术的x e n 介绍 2 2 1x e n 的准虚拟化方式 x e n 作为一个高性能资源管理虚拟机监视器,提供了整合服务器( s e l v e r c o n s o l i d a t i o n ) 【2 2 2 扪,主机代管工具( c o 1 0 c a t e dh o s t i n gf a c i l i t y ) f 2 4 1 ,分布式 w e b 服务( d i s t r i b u t e dw e bs e r v i c e ) 川,安全计算平台( s e c u r ec o m p u t i n gp l a t f o r m ) 2 5 2 6 和应用迁移( a p p l i c a t i o nm o b i l i t y ) 1 2 7 2 8 等诸多应用。 与全虚拟化的通过软件完全模拟真实的设备而不修改操作系统的方式不 同,x e n 采用的准虚拟化显式修改了其上的客户o s ,但是对用户空间应用程 序提供了兼容性。这种处理方法带来的巨大好处是虚拟系统性能得到了极大 提升,用户可以获得接近本地机( c l o s e t o - n a t i v e ) 的性能p j | 泊j 。 x e n 虚拟机监视器准虚拟化了x 8 6 平台体系结构。总体看来,影响客户 o s 接口有以下三个大的方面:内存管理、c p u 和设备i 0 。具体的变化参见 表2 1 。 表2 1 虚拟化汇总表 内存管理 分段不能装入最高特权级描述符。 不能覆盖线性空间的高端。 分页客户o s 可以直接读取硬件页表,但是更新应该批量进行且 要通过h y p e r v i s o r 的安全验证。 域可能分配到非连续的机器页面。 c p u 保护客户o s 运行级应该低于x e n 。 异常客户o s 必须自己向x e n 注册异常处理程序。除了页面失效 异常外,其他的处理程序可以保持不变。 系统调用客户o s 可以安装“快速”的系统调用旬柄,允许应用程序 直接调用它的o s ,而不必通过x e n 完成每次调用。 中断使用轻量级的事件系统取代了硬件中断。 西南交通大学硕士研究生学位论文第1 0 页 时钟每个客户o s 都有定时器接口,可以得到“真实”和“虚拟” 时间。 设备i o 网络、磁盘等虚拟设备充分考虑了易访问性。数据传输采用异步i o 环机 制。数据到达通知使用事件机制代替硬件中断。 2 2 2 内存管理 在虚拟化平台结构的过程中,内存虚拟化无疑是最难的一部分。既要满足 h y p e r v i s o r 的管理审核机制,还要满足多种客户o s 移植需要。如果平台结构 提供了软件管理的t l b ,那么可以采用简单的方式来虚拟化【l3 | 。许多服务器 级的r i s c 体系结构,如a l p h a ,m i p s 和s p a r c ,提供了非常有用的带标记 的t l b 。将地址空间标识符标记到相关的t l b 条目使得h y p e r v i s o r 和客户 o s 在不同的地址空间有效共存,这样在切换进程空间时就不用刷新( f l u s h ) 整个t l b 。 不幸的是,x 8 6 没有软件管理的t l b ,代之以硬件自动遍历页表结构来 使t l b 失效。换言之,为了得到最好的性能,当前地址空间的页面传输都要 在硬件可访问的页表中给出。此外,因为t l b 没有标记,所以地址空间切换 时会引起t l b 全部刷新。考虑到这限制,x e n 采用了下面的设计:( i ) 客户o s 负责管理及分配页表,这样x e n 保证了安全性和隔离性:( i i ) x e n 占据每个地 址空间的高6 4 m 内存,这样在进入和离开h y p e r v i s o r 的时候避免了t l b 的刷 新。 每次客户o s 请求一个新页表,如创建一个新进程,它会在自己的保留内 存空间分配和初始化一个页面,并将其注册到x e n 。与以前不同的是,这时 o s 不能直接写页表存储空间:所有的后续更新操作都必须通过x e n 的验证。 其它的更新限制还有,o s 只能映射属于它自己的页面,不允许页表的写使能 映射。客户o s 可以通过批量化更新操作来降低进出h y p e r v i s o r 的成本。每个 地址空间的最高6 4 m 空间留做x e n 使用,客户o s 不能访问和重映射。这个 地址空间本身也不被通常的x 8 6a b i 使用,所以这个限制并没有破坏应用程 序级的兼容性。 分段机制也通过类似方式虚拟化,由x e n 来验证更新的硬件描述符表。 对x 8 6 段描述符的限制只有:( i ) 特权级必须低于x e m ( i i ) 不能访问x e n 保留 的地自e 空间。 西南交通大学硕士研究生学位论文第1l 页 2 2 3c p u 虚拟化c p u 必然牵扯到客户o s 。首先,将h y p e r y i s o r 插入到操作系统的 下层破坏了通常操作系统运行于最高特权级的假设。为了保护h y p e r v i s o r 不 受客户0 s 错误行为的影响( 同时隔离域间误操作) ,所以客户o s 必须经过修 改运行在较低的特权级。 许多处理器结构只提供2 个特权级。这样客户o s 就和应用程序共享较低 的特权级。客户o s 运行在单独的地址空间来保护自己不受应用程序的影响, 通过h y p e r v i s o r 设置的虚拟特权级和改变当前地址空间,客户o s 来和自己 的应用程序传递控制权。还有就是如果处理器t l b 带地址空间标记,那么可 以避免刷新t l b 的昂贵代价。 在x 8 6 体系结构中,定义的4 个特权级使有效虚拟化成为可能。x 8 6 上的 特权级通常称为r i n g 。从0 ( 最高级) 到3 ( 最低级) 。操作系统因为要执行 特权指令,所以通常运行在r i n g0 ,同时r i n g3 用做应用程序运行级。就目 前了解,在x 8 6 上自0 s 2 以后的知名操作系统都没有使用r i n g1 和2 。任何 遵循以上安排的操作系统都可以通过将运行级放到r i n g1 来移植到x e n 上。 这样虽然限制了客户o s 直接执行特权指令,但是仍然保证了操作系统和r i n g 3 上应用程序之间的隔离,如图2 1 所示。 图2 - 1 虚拟环境下的特权级 通过由x e n 来完成特权指令的验证和执行来实现了准虚拟化一应用到诸如 安装新的页表,空闲时让出c p u 资源( 而不是去h l t 它) 。任何客户0 s 尝试执 行特权指令都将会失败,要么是c p u 悄然忽略,要么是引起异常失败 :引。因 为现在只有x e n 才有足够的特权执行特权指令。 异常,包括内存失效和软件自陷都可以在x 8 6 的基础上直接虚拟化。操作 系统将异常的处理程序描述表注册到x e n ,由x e n 完成验证。描述表里出现的 西南交通大学硕士研究生学位论文第1 2 页 异常处理程序通常是和运行在真实的x 8 6 平台上的是相同的;这是因为x e n 在准虚拟化时没有修改异常发生时形成的堆栈结构。值得一提的是,唯一的 修改就是页面失效异常处理程序,因为它要访问处理器的寄存器( c r 2 ) 来得到 失效的地址,这是需要特权指令级别的。所以x e n 将该值写入一个扩展的堆 栈框架中。当页面失效异常出现在r i n g0 以外时,x e n 的异常处理程序将现 有的异常堆栈框架复制到客户o s 的堆栈,然后将控制权转交到已经注册的客 户o s 的页面失效处理程序。 典型的,只有两类异常会经常发生而影响到系统的性能:系统调用( 通常 是通过软件异常实现) 和页面失效。为了提高系统性能,x e n 允许客户0 s 注 册一个“快速 异常处理程序而不必通过r i n g0 调用;这个特殊的异常处理 程序在注册到硬件异常描述表时要通过x e n 的验证。不幸的是,这个技术无 法应用到页面失效处理程序上,因为只有运行在r i n g0 级才能访问到c r 2 : 页面失效只能通过x e n 来转递,这样k e n 将寄存器的值先保存,r i n g1 上才 能够访问。 异常处理程序在提交注册时要通过x e n 的验证来保证整个虚拟系统的安 全性。唯一的检查就是异常处理程序的代码段不能在r i n g0 上执行。既然没 有客户o s 可以创建一个这样的段,就可以只将指定的段选择子和x e n 保留的 少量静态值比较即可。除此之外,其他的处理程序问题都可以在异常传播的 过程中得到修正。如,处理程序的代码段不存在或者处理程序没有获取到内 存分页,那么x e n 在执行i r e t 后将控制权转交到注册的处理程序前会再次引 发一个异常。x e n 通过检查失效程序计数器来检测这种“双重失效”,如果发 生地址是在异常虚拟化代码中,那么引起失效的客户0 s 将被终止。 对系统调用的直接访问来说,这种“懒惰的检查也是安全的。当c p u 企图直接跳转到客户0 s 的处理程序时就会出现访问失败。这种情况下,失败 的地址是在x e n 地址空间以外的( 因为x e n 不会执行系统调用) ,所以这种失 效以通常的方式虚拟化即可。如果客户o s 因为失效传播造成“多重失效”就 会被终止,如上文所述那样。 2 2 4d e vlc ei o 不同于以往的完全虚拟化环境下的模拟硬件设备行为,x e n 展示给了客户 0 s 清晰、简洁的设备抽象。这样用户就可以设计既高效又能满足隔离性及保 护性的接口。为达到这个目的,域与域之间的通信利用了共享内存 ( s h a r e d - m e m o r y ) 和异步缓存描述环( a s y n c h r o n o u sb u f f e r d e s c r i p t o rr i n g ) 经x e n 的间接传输。这种方式既提供了信息在系统上下传递的高效机制,又 西南交通大学硕士研究生学位论文第1 3 页 保证了k e n 的有效验证检查( 如,检查相关通信域是否是缓存空间的合法所 有者) 。 类似于硬件中断,k e n 用了轻量级的事件通知机制来发送到域的通知。通 过更新位图二进制位,x e n 将不同事件通知到客户0 s ,再由客户o s 注册的事 件处理程序处理。这种回调可以由客户o s 来判断是否要“延迟”处理,如, 避免频繁的唤醒通知带来的额外开销。 x e n 在设备虚拟化中采用了分离式驱动( s p l i td e v i c ed r i v e r ) 的设计1 4 j 。 在可以直接访问物理设备的特权域中运行的驱动称之为后端( b a c k e n d ) 驱动, 它响应其他域对设备的请求。而其他的非特权域中运行的则是前端( f r o n t e n d ) 驱动,它负责和后端驱动通讯。 2 3 嵌入式实时操作系统u c o s - | i 2 3 1u c o s - i i 简介 u c o s i i 是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实 时操作系统。最早出自于1 9 9 2 年美国嵌入式系统专家j e a nj l a b r o s s e 在嵌 入式系统编程杂志的5 月和6 月刊上刊登的文章连载,并把u c o s 的源码发 布在该杂志的b b s 上。u c o s - i i 是目前最新的版本。 u c o s - i i 是专门为计算机的嵌入式应用设计的,绝大部分代码是用c 语言 编写的。c p u 硬件相关部分是用汇编语言编写的、总量约2 0 0 行的汇编语言部 分被压缩到最低限度,为的是便于移植到任何一种其它的c p u 上。用户只要 有标准的a n s i 的c 交叉编译器,有汇编器、连接器等软件工具,就可以将 u c o s - i i 嵌人到开发的产品中。u c o s - i i 具有执行效率高、占用空间小、实时 性能优良和可扩展性强等特点,最小内核可编译至2 k b 。u c o s i i 已经移植到 了几乎所有知名的c p u 上。 2 3 2u c o s - i i 的组成 严格地说u c o s - 1 1 只是一个实时操作系统内核,它仅仅包含了任务调度, 任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提 供输入输出管理,文件系统,网络等额外的服务。但由于u c o s i i 良好的可 扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实 现。 西南交通大学硕士研究生学位论文第1 4 页 u c o s - i i 可以大致分成核心、任务处理、时间处理、任务同步与通信,c p u 的移植等5 个部分。 核心部分( o s c o r e c ) 是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断 进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系 统基本工作的部分都在这里。 任务处理部分( o s t a s k c ) 任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建 立、删除、挂起、恢复等等。因为u c o s - i i 是以任务为基本单位调度 的,所以这部分内容也相当重要。 时钟部分( o s t i m e c ) u c o s - i i 中的最小时钟单位是t i m e t i c k ( 时钟节拍) 。任务延时等操 作是在这里完成的。 一任务同步和通信部分 为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分; 主要用于任务间的互相联系和对临界资源的访问。 与c p u 的接口部分 这里是指u c o s - ii 针对所使用的c p u 需要虚拟化的部分。由于u c o s i i 是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根 据具体c p u 的具体内容和要求作相应的修改,这也恰恰是需要和虚拟 化硬件抽象层相吻合的地方。这部分内容由于牵涉到s p 等系统指针, 所以通常用汇编语言

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论