(计算机软件与理论专业论文)xtratum共享内存域间通信组件研究与实现.pdf_第1页
(计算机软件与理论专业论文)xtratum共享内存域间通信组件研究与实现.pdf_第2页
(计算机软件与理论专业论文)xtratum共享内存域间通信组件研究与实现.pdf_第3页
(计算机软件与理论专业论文)xtratum共享内存域间通信组件研究与实现.pdf_第4页
(计算机软件与理论专业论文)xtratum共享内存域间通信组件研究与实现.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)xtratum共享内存域间通信组件研究与实现.pdf.pdf 免费下载

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

文档简介

攘要 摘要 x t r a t u m 是一个针对嵌入式实时系统领域应用的h y p e r v i s o r ,x t r a t u m 采用 超微内核( n a n o - k e r n e l ) 结构和准虚拟化( p a r a - v i r t u a l i z a t i o n ) 技术,实现了一个介 于物理硬件和操作系统之间的硬件抽象层( h a l ) ,x 仃a t u mh a l 提供统一的中断、 定时器接口,系统性能开销小、可移植性强,上层的嵌入式操作系统或通用操作 系统内核只需经过少量的修改就能够运行在x t r a t u m 之上。 运行在x t r a t u mh y p e r v i s o r 之上的客户操作系统( g u e s to s ) 称为一个域 ( d o m a i n ) ,多个域可以并发运行,提高了硬件资源的利用率,并且各个域使用独 立的地址空间,多个域并发运行时彼此互不干扰,相对隔离,提高了系统的安全 性和稳定性。基于x t r a t u m 的设计架构,域间的信息交换,需要通过一种特殊的 域间通信( i n t e rd o m a i nc o m m u n i c a t i o n i d e ) 机制才能实现,i d c 在x t r a t u m h y p e r v i s o r 中对域间任务的同步和数据交换都起着重要的作用,论文的主要工作 是对嵌入式系统虚拟层的域间通信机制研究和探讨,在x t r a t u mh y p e r v i s o r 整体 框架下,针对嵌入式系统资源受限和高实时性需求的特点,使用共享内存技术实 现x t r a t u m 域间通信组件,并对x t r a t u m 共享内存域间通信组件自身以及x t r a t u m 共享内存域间通信组件对x t r a t u m 的系统性能影响进行了初步的测评。 关键字:虚拟化、x t r a t u m 、共享内存、域间通信 a b s t r a c t a b s t r a c t x t r a t u mi sah y p e r v i s o r ( a l s ok n o w na sv i r t u a lm a c h i n em o n i t o r v m m ) d e s i g n e df o rr e a l t i m ee m b e d d e ds y s t e m x t r a t u ma d o p tn a n o k e r n e la r c h i t e c t u r e ,a n d t a k ea d v a n t a g eo fs oc a l l e dp a r a - v i r t u a l i z a t i o nt e c h n o l o g y ,x t r a t u md e f i n e da n d i m p l e m e n t e dah a r d w a r ea b s t r a c tl a y e r ( h a l ) b e t w e e nt h ep h y s i c a lh a r d w a r ea n d t h eo p e r a t i n gs y s t e m p r o v i d eu n i f o r ma p it ou s ei n t e r r u p ta n dt i m e r sr e g a r d l e s st h e r e a lp h y s i c a lh a r d w a r ed e v i c e sw i t hl o wo v e r h e a d a ne m b e d d e do p e r a t i n gs y s t e m c a nb ep o r t e dt or u no n t ot h ex t r a t u mh y p e r v i s o rw i t hm i n o rm o d i f i c a t i o ne f f o r t t h eg u e s to p e r a t i n gs y s t e mr u n n i n gu p p e ro nt h ex t r a t u mh y p e r v i s o rw a s c a l l e dad o m a i n d o m a i n sa r ei s o l a t e db ye a c ho t h e rb e c a u s ei n d e p e n d e n ta d d r e s s s p a c ei su s e db ye a c hd o m a i n s oo n ed o m a i nw i l ln o ti n t e r v e n ea n o t h e rd o m a i nw h i c h r u n n i n go n t ot h ex t r a t u mh y p e r v i s o rs i m u l t a n e o u s l y ,t h i sa r c h i t e c t u r ec a na c h i e v e e x c e l l e n ts t a b i l i t ya n ds e c u r i t y as p e c i f i ci d c ( i n t e rd o m a i nc o m m u n i c a t i o n ) m e c h a n i s mw a sd e s i r e dt oi m p l e m e n tt h ed a t ae x c h a n g eb e t w e e nd o m a i n s i d ci s q u i t ec r i t i c a lf o rs y n c h r o n i z a t i o na n dd a t ae x c h a n g eb e t w e e nd o m a i n so fx t m t u m h y p e r v i s o r t h em a j o rc o n t r i b u t i o no ft h i st h e s i si st h er e s e a r c he f f o r tf o c u so nt h e e m b e d d e ds y s t e mv i r t u a l i z a t i o nf i e l d d e s i g na n di m p l e m e n t e dt h ex t r a t u ms h a r e d m e m o r yi n t e r - d o m a i nc o m m u n i c a t i o nc o m p o n e n t ,a n dap r e l i m i n a r ys y s t e mt e s t i n g a n db e n c h m a r ke f f o r tw a sa l s oi n v o l v e di nt h et h e s i s k e y w o r d s : v i r t u a l i z a t i o n ,x t r a t u m , s h a r e d m e m o r y ,i n t e r - d o m a i n c o m m u n i c a t i o n 缩略语 缩略语 v m mv i r t u a lm a c h i n em o n i t o r , v m m 通常也被称为h y p e r v i s o r h a lh a r d w a r ea b s t r a c t i o nl a y e r ( 硬件抽象层) i _ p c i n t e r - p r o c e s sc o m m u n i c a t i o n ( 进程间通信) t l s ft w o l e v e ls e g r e g a t ef i t ( 两级分离适配) k v mk e m e l - b a s e dv i r t u a lm a c h i n e 4 7 兰州大学硕士学位论文 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下 独立进行研究所取得的成果。学位论文中凡引用他人已经发表或未发表 的成果、数据、观点等,均己明确注明出处。除文中已经注明引用的内 容外,不包含任何其他个人或集体已经发表或撰写过的科研成 果。对本文的研究成果做出重要贡献的个人和集体,均己在文中 以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:盆萄描,日 边。i 兰州大学硕上学位论文 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权 归属兰州大学。本人完全了解兰州大学有关保存、使用学位论文的 规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和 电子版,允许论文被查阅和借阅;本人授权兰州大学可以将本学位 论文的全部或部分内容编入有关数据库进行检索,可以采用任何复 制手段保存和汇编本学位论文。本人离校后发表、使用学位论文或 与该论文直接相关的学术论文或成果时,第一署名单位仍然为兰州 大学。 保密论文在解密后应遵守此规定。 论文作者签名:刍:盔垒镊师签名:幽期:7 汐f f f , 2 一 绪论 1 1 研究背景 第一章绪论 虚拟化技术在过去的十年中,取得了飞速的发展,尤其是虚拟化技术在x 8 6 平台上的实现,展示了系统虚拟化技术广阔的应用前景,虚拟化技术从最初的大 型主机系统应用走向普通服务器系统,许多厂商都将虚拟化技术整合到服务器系 统中,获得了良好的市场效益,随着硬件厂商在处理器核心加入对虚拟化的支持, 使虚拟化不单依靠软件实现,也得到了底层硬件的有力支持。当前虚拟化技术已 经广泛应用于服务器领域和桌面领域,不但提高了资源利用率,减少了能源消耗, 还降低了系统运营维护成本,改善了系统的安全性、可靠性。虚拟机实现版本众 多,例如知名的v m w a r e ,v i r t u a lp c 等,其中也不乏源代码开放的虚拟化技术 实现,尤其是开源的h y p e r v i s o r ( v i r t u a lm a c h i n em o n i t o r v m m ) i 的出现,如 x e n ,k v m ,l g u e s t 等,不仅使人们对h y p e r v i s o r 有了更多的选择,由于其源代码 开放的特点,许多爱好者和社区的开发工作在很大程度上也推动了虚拟化技术的 发展。随着计算机处理能力的不断提高和虚拟化技术的快速发展,虚拟化技术的 应用也开始拓展到嵌入式系统领域,在服务器和桌面领域虚拟化取得成功的 v m w a r e 和k v m 都已经或计划推出嵌入式平台的虚拟机。 嵌入式系统已经广泛出现在我们日常生活的方方面面,如常用的手机、游 戏机、可穿戴的媒体播放器、车载控制、影音系统等。虚拟化技术在嵌入式实时 系统应用中不但能提高系统利用率,降低成本,提高安全性、系统的容错能力。 除此之外,还有许多嵌入式系统还有一些特殊的需求,例如高实时性、高可靠性 等,尤其是在自动化、工业控制、医疗、空间领域等。随着虚拟化技术和嵌入式 实时系统的发展,研究人员已经将虚拟化技术应用到需要满足这些特殊需求的嵌 入式实时系统领域b 例如r t sr e a l t i m eh y p e r v i s o r 2 ,p a d d e dc e l ls e c u r e h y p e r v i s o r 3 】,x t r a t u m 4 等。它们的实现与服务器领域的虚拟化实现有许多不 同之处,服务器和桌面环境运行的是通用操作系统( g p o s ) ,例如l i n u x ,w i n d o w s , 针对服务器领域或者桌面领域的h y p e r v i s o r 通常都运行在具有强大处理能力 和储存空间的硬件平台上,而嵌入式系统的资源十分有限,处理能力也远不及服 兰州大学硕上学位论文 务器和p c 机,如何以非常低的性能开销将虚拟化能力应用到嵌入式系统中是嵌 入式系统领域虚拟化的一个特点,并且一些嵌入式系统还具有较高的稳定性、实 时性、安全性需求,由于g p o s 并不是为这类嵌入式系统而设计的,更不能满足 硬实时系统的需求,如何保证虚拟化的嵌入式系统的高稳定性、实时性、安全性 则是嵌入式系统领域虚拟化的另个特点。 本文的研究工作主要基于开源的嵌入式实时h y p e r v i s o rx t r a t u m 进行, x t r a t u m 是一个针对嵌入式实时系统的h y p e r v i s o r 系统,能够满足嵌入式系统资 源有限、实时性能要求较高的需求。x t r a t u m 使用g p l 协议发布,目前已经发布 了多个版本,已经支持x 8 6 ,p o w e r p c ,m i p s ,l e o n 2 等多种硬件平台,支持 l i n u x ,r t l i n u x ,p a r t i k i e ,r t e m s 等多种客户操作系统。 x 8 6 架构在服务器和桌面领域占据了绝大多数市场份额,而在嵌入式系统领 域,没有一种处理器架构能像桌面市场的x 8 6 处理器一样占据绝对的统治地位, 针对嵌入式系统不同的具体应用场景,多种架构的处理器都有广泛的应用。许多 嵌入式应用通常依赖于特定的嵌入式操作系统平台,不同操作系统之间兼容性和 可移植性较差,为了将一个应用部署到新的平台,需要为移植嵌入式操作系统到 新的平台做出大量努力。嵌入式系统的虚拟化技术通过硬件抽象,简化了嵌入式 操作系统的移植工作,x t r a t u m 使用准虚拟化技术给上层操作系统提供一个统一 的硬件抽象层( h a l ) ,为上层操作系统提供了虚拟的物理设备,运行在虚拟机中 的上层操作系统不必理会特定平台的硬件实现细节,为了能让嵌入式操作系统运 行在x t r a t u m 提供的虚拟机中,需要根据x t r a t u mh y p e r v i s o r 提供的接1 2 1 作少量 的修改,然后就可以支持x t r a t u m 所支持的各种硬件平台了,而x t r a t u m 自身具 有良好的移植性,这种架构简化了嵌入式操作系统移植的工作量。运行在x t r a t u m h y p e r v i s o r 之上的客户操作系统( g u e s to s ) 称为一个域( d o m a i n ) ,x t r a t u m h y p e r v i s o r 中的各个域使用彼此独立的地址空间,运行时相对隔离,一个域的崩 溃不会影响到其它域或x t r a t u m 核心,提供了很高的安全性和隔离性。 虽然x t r a t u m 目前已经发布了多个版本,但自身仍在不断改进和完善,以 域间通信组件为例,目前仅有命名管道( f i f o ) 一种域间通信手段,而在多个域并 发运行的实际应用场合,常常需要高效和可靠的通信方式,例如要将原有 r t l i n u x 使用共享内存与l i n u x 进行通信的应用迁移到现有的x t r a t u m 平台时, 就需要底层对共享内存的支持。在实时系统中最常用的域间通讯手段包括名管道 4 绪论 ( f i f o ) 和共享内存( s h a r e dm e m o r y ) ,本文的研究内容是在x t r a t u m 的基本架构下, 设计并实现x t r a t u mh y p e r v i s o r 中多个域之间使用共享内存进行通信的域间通信 组件。 1 2 论文组织结构 论文主要研究内容是对嵌入式系统虚拟层的域间通信机制研究,在x t r a t u m h y p e r v i s o r 整体框架下,针对嵌入式系统资源受限和高实时性需求的特点,设计 实现x t r a t u m 共享内存域间通信组件。x t r a t u m 共享内存域间通信组件支持多种 类型的客户操作系统,并且易于扩展,支持新的客户操作系统。研究重点是在 x t r a t u m 1 0 平台下如何使用共享内存,以较小的性能开销和对x t r a t u m 及客户 操作系统尽量少的改动实现域间通信,论文还对x t r a t u m 共享内存域间通信组件 作了初步的测试和测评。论文结构安排如下: 第一章绪论,介绍本课题的研究背景和组织形式。 第二章虚拟化技术,讲解虚拟化技术的发展历程和关键技术特点与实现方式。 第三章x t r a t u m ,分析x t r a t u m 的系统设计、特点和实现细节。 第四章共享内存的设计和实现,详细说明x t r a t u m 中共享内存的设计原理,模 块划分与具体实现。 第五章系统测试,对x t r a t u m 共享内存域间通信组件的功能测试和初步性能评 测。 第六章总结与展望,整个研究工作的一个总体结论和未来需要进一步研究的内 容探讨。 5 虚拟化技术 第二章虚拟化技术 2 1 虚拟化技术发展历程 虚拟化( v i 咖a l i z a t i o n ) 是一种创建某种事物的虚拟( 非真实) 版本的方法和过 程【5 】,在计算机领域中,虚拟化是一个含义广泛的词汇,广义的讲虚拟化指的 是对计算机资源的抽象化【6 】,而提供这种虚拟的软件层被称为h y p e r v i s o r 或 v i r t u a lm a c h i n em o n i t o r ( 、伦n 厦) 。虚拟化技术主要可分为进程虚拟化和系统虚 拟化,进程虚拟化提供一个进程执行环境,例如高级语言中的j a v a 虚拟机,系 统虚拟化则提供一个操作系统环境。如无特别说明,论文以下部分所讨论的虚拟 化均指系统虚拟化。 虚拟化技术的蓬勃发展给计算机世界带来了深刻的影响,虚拟化技术可以 追溯到上世纪六十年代,早在上世纪六十年代,美国计算机科学家就开始了对虚 拟化技术的研究,虚拟化【7 】及虚拟机( v i r t u a lm a c h i n e ) 的概念最早由s t r a c h e y 在 1 9 5 9 年的信息处理国际会议上的一篇论文中提出,该论文被公认为是对虚拟化 技术的最早论述。上世纪六十年代中期,i b m 公司的m 4 4 4 4 x 8 实验项目实现 了虚拟内存管理机制,其中m 4 4 指的是i b m7 0 4 4 硬件物理主机,4 4 x 就是物理 主机的映像,也就是虚拟机。之后i b m 推出了基于虚拟化技术的一系列大型主 机系统,例如i b m 3 6 0 6 7 以及著名的v m 3 7 0 ,该机型通过h y p e r v i s o r ( v m m ) 实 现了在同一个物理主机上同时独立运行多个操作系统的虚拟机。一直以来,商业 u n i x 厂商都在其企业级产品中加入了虚拟化功能,但是当时虚拟机的实现主要 局限在大型主机,并且虚拟化实现依赖特定硬件支持,所以虚拟化技术始终没有 推广开来。到上世纪8 0 年代个人电脑出现之后,现代多任务操作系统的流行使 虚拟化技术渐渐从人们的视野中淡出。 随着互联网的飞速发展,需要部署大量的互联网应用,对服务器的需求也 随之大量增加,但是大多互联网应用对服务器的利用率都不高,服务器数量的泛 滥导致了大量服务器资源被闲置,由于服务器的虚拟化能显著提高服务器的利用 率,降低运营成本,操作系统厂商和服务器厂商越来越重视虚拟化解决方案, v m w a r e 在x 8 6 平台服务器虚拟化的实现使人们看到了虚拟化技术的广阔前景, 6 虚拟化技术 硬件厂商也在新推出的处理器核心也加入了对虚拟化的支持,例如i n t e l 的 v t ( v i r t u a l i z a t i o nt e c h n o l o g y ) 技术和a m d 的s v m ( s e c u r ev i r t u a lm a c h i n e ) 技术, 伴随各种h y p e r v i s o r 系统的不断涌现,虚拟化技术也逐渐从服务器领域扩展到桌 面领域和嵌入式系统领域。 2 2 虚拟化的优点 同时运行多个操作系统,由于许多不能跨平台的应用必须在特定的某个操作 系统中运行,通过系统虚拟化,使同时运行多个操作系统变得十分容易,尤 其是可以同时运行多个不同类型的操作系统,例如可以在一台物理主机上同 时运行g m ,i ,i n u x 和m i c r o s o f tw i n d o w s 系统。 提高硬件资源利用率,随着计算机性能不断提高,虽然硬件具备了日益强大 的处理能力,但是资源却难以被充分利用,资源利用率低却又难以将多个应 用整合或移植到统一的平台上,这给用户带来了不少烦恼,使用虚拟化技术 可以在同一个硬件平台上部署多个虚拟机,使各个上层应用都能得到很好的 支持,不仪轻松的将服务进行了整合,还提高了硬件资源的利用率。 软件的迁移变得更加容易,c p u 等硬件发展日新月异,而操作系统的发展则 相对比较缓慢,二些特定的应用更新就更加滞后了。新的硬件平台具备了处 理能力更强的c p u ,更大的内存空间等优势,而一些运行环境依赖于早期操 作系统或者操作系统版本较低的应用,由于操作系统发行商停止了系统的维 护或者更新缓慢,不支持新的硬件,而重写这些应用通常不大现实,这使得 用户购买了新的硬件平台却无法进行有效的整合。借助虚拟化技术可以将原 有系统直接迁移到一个虚拟机上作为一个客户操作系统运行在虚拟出来的 老版本硬件上,从而实现将一些老的应用迁移到新的硬件平台上。 动态分配资源,通过虚拟化技术,可以根据物理主机上的各个虚拟机的具体 负载状况,有效地进行资源的动态配置,实现负载均衡。 降低系统维护成本,通过提高资源利用率,减少了物理主机的数量,不但节 约了购买硬件的成本,而且也减少了计算机的一些运行开销,诸如空间、能 源等,在升级软件和系统调试的时候也可以在相同配置的虚拟机中进行,而 不会影响到原有的服务。 7 兰州大学硕士学位论文 提高系统的安全性、容错( f a u l tt o l e r a n 能力虚拟机虽然共享同一个物理 主机,但各虚拟机是相互独立运行的,虚拟机之间相对隔离,互不干扰,一 个虚拟机受到攻击破坏,系统崩溃或者重新启动,不会影响到系统中的其它 虚拟机并且还可以很方便的对虚拟机进行备份。 2 3 虚拟化技术实现 2 3 1h y p e r v i s o r 槊构 h y p e r v i s o r ( v i r t u a lm a c h i n em o n i t o r - v m m ) 是虚拟化技术实现的核心- h y p e r v i s o r 负责硬件抽象并给上层客户操作系, 统( g u e s to s ) 提供一个类似真实物 理硬件的接口,包括c p u ,内存,i o 设备等,如图2 1 所示。 图2 - 1 h y p e r v i s o r ( v m m ) 示例 h y p e r v i s o r 的实现可分为三种不同的架构【6 : 1 型h y p e r v i s o r ,或称为n a t i v eh y p e r v i s o r ( b a r e - m e t a lh y p e r v i s o r ) ,这类 h y p e r v i s o r 可以直接运行在硬件之上,系统结构如图2 - 2 所示,例如l 4 微内 核,x e n 就是这种类型的虚拟机。 2 型h y p e r v i s o r ,或称为h o s t e dh y p e r v i s o r ,这类h y p e r v i s o r 需要运行在一个 宿主操作系统之上,例如v m w a l _ e s e r v e r ,v m w a l _ e w o r k s t a t i o n ,k v m 等。 2 型h y p e r v i s o r 的最大特点是h y p e r v i s o r 自身需要运行在一个已有的操作系 统之上,这个操作系统称为宿主操作系统( h o s t o s ) ,运行在虚拟机里的操作 系统称为客户操作系e i ( c , u e s t o ,如图2 - 3 所示。 混合型h y p c r v i s o r ,兼有上面两种架构的特点,例如g r e e nh i l l s 公司的 m t e 咖t y ,i n t e g r i t y 使用了一个可以直接运行在硬件之上的微内核,在这个微 内核之上可以直接运行一个实时进程也可以运行一个虚拟机客户操作系统。 图2 - 32 型h y p e r v i s o r 架构 兰州大学硕士学位论文 2 3 2 全虚拟化技术 虚拟化技术的实现方式可分为全虚拟化技术( f u l lv i r t u a l i z a t i o n ) ,准虚拟化 技术( p a r av i r t u a l i z a t i o n ) 以及硬件辅助虚拟化技术( h a r d w a r ea s s i s t e d v i r t u a l i z a t i o n ) 。全虚拟提供给客户操作系统一个物理计算机一个虚拟的拷贝,运 行在虚拟机中的客户操作系统就像运行在原来的真实地物理计算机硬件上一样, h y p e r v i s o r 向虚拟机提供所有物理硬件服务,如虚拟的b i o s ,虚拟的各种设备, 虚拟的内存管理等。使用全虚拟化技术实现的虚拟机的特点是,由于客户操作系 统感知不到自己是运行在虚拟机中还是直接运行在真实的物理计算机上的,所以 客户操作系统可以不用作任何修改就可以在虚拟机中运行。最早期的虚拟化技术 实现多是使用这种方式,例如运行在大型主机i b m 3 6 0 6 7 上面的c p 6 7 1 9 ,但是 全虚拟化引入的虚拟层带来的额外开销较大,为了降低虚拟化所带来的额外开 销,在p c 上实现全虚拟技术主要采用的是二进制翻译( b i n a r yt r a n s l a t i o n ) 与直接 执行( d i r e c t l ye x e c u t i o n ) 相结合的形式,如图2 - 4 1 0 所示。由于x 8 6 体系结构自 身的诸多原因,一些敏感指令【1 1 的虚拟化相当复杂,这些指令在不同的特权级 别中执行有着不同的语义,x 8 6 处理器定义了四个特权级别,通常操作系统内核 运行在特权级别最高的r i n 9 0 ,用户应用程序运行在特权级别最低的r i n 9 3 。对 客户操作系统进行虚拟之后,例如将客户操作系统内核运行在r i n g l 时,敏感指 令的执行与未虚拟时在r i n 9 0 特权级别的执行有着不同的语意,所以h y p e r v i s o r 需要将客户操作系统内核的敏感指令翻译成能完成相同功能的指令序列,而客户 操作系统应用程序中特权级别较低的指令和非敏感指令则不用翻译直接执行,由 此可以减少虚拟化所带来的额外开销。 1 0 d i r e c t e x e c u t i o n o fu s e r r e q u e s t s b i n a r y t r a n s i a t j o n o f 0 s r e q u e s t s 图2 _ 4 二进制翻译和直接执行 全虚拟化技术的优点是客户操作系统以及应用程序可以不傲任何修改就可 以运行在h y p e r v i s o r 之上,但是性能开销较大的缺点也很明显。全虚拟化技术最 早的应用是在大型主机上,这些大型主机通常都有对虚拟化的特殊硬件支持,通 常运行商用操作系统。当前x 8 6 平台架构已经占据了服务器市场的主导地位,但 x 8 6 平台早期设计并没有考虑虚拟化的功能,在这样的平台上实现全虚拟是一件 十分复杂的工作,而且有相当丰富的服务器软件是基于比较流行的商用操作系统 开发的,所以在虚拟机上运行流行的商用操作系统显得非常重要。由于x 8 6 平台 早期设计并没有考虑虚拟化的功能,任务之间的保护工作就只能由h y p e r v i s o r 来完成,由此h y l _ i e r v i s o r 进行太多的干预导致其性能开销很大。准虚拟化技术正 是通过修改客户操作系统来至达减少h y p e r v i s o r 性能开销的,而硬件辅助虚拟化 技术则是通过在处理器核心加入对虚拟化的支持来获得更高的性能。 2 3 3 准虚拟化技术 准虚拟化( p 啪v i r 岫l 证砒i o n ) 【2 4 】也被称为泛虚拟化、半虚拟化或操作系统辅 助的虚拟化【1 0 ,准虚拟化比全虚拟化效率更高,准虚拟化是指客户操作系统与 h y p e r v i s o r 之间需要通信,客户操作系统通过调用h y p e r v i s o r 提供的h y p e r c a l l 实现与h y p e r v i s o r 之间的通信,所以客户操作系统需要做一些修改才能运行在相 应的h y p e r v i s o r 之上。准虚拟化实现典型的结构如图2 - 5 所示。 兰州人学磺士学位论文 图2 5 准虚拟化技术 准虚拟化不要求处理器硬件对虚拟化有特殊的支持,准虚拟化通过修改客 户操作系统的方式来调用h y p e r v i s o r 提供的h y p e r c a l l 提高执行效率。在嵌入式 系统领域,由于嵌入式系统硬件赞源处理能力比较有限,与全虚拟相比,准虚拟 化技术能有效解决性能开销的问题。 2 3 4 硬件辅助虞拟化 x 8 6 平台在处理器市场上的占有率是处于统治地位的。随着虚拟化技术的迅 猛发展,v m w a 咒在x 8 6 平台上的虚拟化实现之后各大厂商均看到了虚拟化的 广阔市场前景,众多虚拟化技术实现陆续推出。但是由于x 8 6 处理器并不是针对 虚拟化而设计的所以各种虚拟化的实现都比较复杂,并且教率不高,为了提高 虚拟机的效率和减少虚拟化实现的复杂度,硬件厂商也随之在各自处理器核心加 入了对虚拟化的支持,也就是硬件辅助虚拟化( h a r d w a r ea s s i s t e d v i n t i l a l i z a t i o n ) 1 0 ,例如i n t e l 的v i r m a l i z a t i o nt e c h n o l o g y ) 技术和a m d 的 s v m ( s e c u r ev i r n 】a lm a c h i n e ) 技术支持硬件辅助虚拟化的c p u 也在2 0 0 6 年陆 续面市。x 8 6 平台有四个特权级别,即f i n g o * r i n 妒,t i n # 具有最高的特权级别, r i n 9 3 最低,通常商用操作系统有内核空间和用户空间的划分,内核运行在一n g o , 用户程序运行在 n 西,硬件辅助虚拟化增加了一个特权模式g u e s tm o d e 客户 虚拟化技术 操作系统执行时一些特权指令和敏感指令产生的陷k ( t r a p ) 被h y p e r v i s o r 捕获之 后h y p e r v i s o r 代码将在这个新的特权级别中执行。硬件辅助虚拟还包括为每个客 户操作系统提供影子页表的s p t ( s h a d o wp a g et a b l e s ) 功能,页表主要用于将客户 操作系统的虚拟地址转换为物理地址;为实现输入输出接口的虚拟化,硬件还提 供对各外围设备的地址采取逻辑对应措施的d m a 再映射功能等。 2 4 虚拟化技术在嵌入式实时系统领域的应用 嵌入式系统的虚拟化尽管与服务器和桌面领域的虚拟化有许多相似之处, 但嵌入式系统与生俱来的特殊需求给嵌入式系统虚拟化提出了不同于服务器和 桌面领域虚拟化的要求。资源相对有限是嵌入式系统的一个重要特点,与服务器 或个人电脑相比,。嵌入式系统的处理能力和存储空间都非常有限,许多嵌入式系 统,例如医疗设备,机器人,航空航天设备等,还需要具备较高的实时响应能力, 较高的可靠性。在嵌入式系统中实现虚拟化技术,性能代价是最关键的考虑因素, 由于嵌入式平台自身的运算能力非常有限,如果虚拟化带来的额外开销过大,将 是无法另人接受的,最理想的结果是嵌入式系统在虚拟机中运行的效率能与在真 实物理硬件上运行的效率媲美。针对许多嵌入式系统应用具有高实时性的要求, 所以运用在实时系统领域的h y p e r v i s o r 还要满足实时响应能力的要求,虽然虚拟 化技术在服务器和桌面领域取得了长足的进步,但它们主要都是面向通用操作系 统( g p o s ) 的,通用操作系统并不是为实时应用设计的,通用操作系统追求的是 平均吞吐量,而实时系统追求的是确定性,解决这一问题最常用的方法是以牺牲 平均效率来换取确定性。嵌入式系统的特定硬件平台限制,例如服务器和桌面系 统中常见的内存管理单元( m m u ) ,在有的嵌入式系统中却没有,所以要将在服 务器和桌面领域已有的虚拟化技术直接运用到嵌入式系统中并不容易。 综上所述,嵌入式领域对虚拟化的需求日益增加,但是针对嵌入式领域的 具体特点,那些主要用于服务器和桌面领域的各种主流虚拟化技术并不能直接应 用到嵌入式系统领域,而要根据嵌入式系统的自身特点进行适当的定制。 x t r a t u l ih y l ) e r v t s o r 第三章x t r a t u mh y p e r v is o t 3 1x t r a t u u 系统结构 操作系统作为物理硬件与应用程序之间的一个抽象层 1 2 】,隐藏了底层的硬 件细节,操作系统为上层应用程序提供接口,使得应用程序的编写更加容易,而 不必去理会太多的底层硬件细节,理想的硬件架构是操作系统和c p u 是互相为 彼此而设计,紧密耦合的,并且操作系统通常都会按照应用程序的需求类型来进 行设计,没有一个适合任何架构和任何应用需求的操作系统。例如通用操作系统 w i n d o w s ,适合具有较强处理能力的硬件平台,具有较强的图形处理能力,很适 合没有太多计算机基础的用户。还有许多嵌入式操作系统,例如一些手机操作系 统,适合运行在没有p c 那么强大的硬件资源的移动设备上,在嵌入式系统领域, 还有很多应用具有实时性的需求,这就需要实时操作系统。当前硬件处理能力越 来越强,存储容量也越来越大,但同时应用程序也越来越庞大,越来越复杂。一 个应用程序通常可以分解成多个部分,有的部分对图形处理较多,有的部分则对 i o 处理较多,同样一个复杂的实时应用也可分为实时部分和非实时部分,我们 可以使用实时系统来保证实时部分的实时响应能力,非实时部分可以充分利用通 用操作系统中丰富的资源,例如图形处理功能。通过对通用操作系统的实时性改 造可以实现这一目的,例女u r t l i n u x ,但缺点是可维护性和可移植性较差,通过 全虚拟化技术虽然也能实现这一目标,但是全虚拟化技术的性能代价开销太大, 无法满足嵌入式系统应用。使用准虚拟化技术,通过准虚拟化尽可能少的且对实 时性能关键的硬件部件而不是虚拟整个硬件架构,由此仅需要修改少量操作系统 内核代码,可以获得较高的执行性能。x t r a t u m 4 就是基于上述设计目标的一个 准虚拟化实现。 x t r a t u m 最初是由西班牙瓦伦西亚理工大学实时系统研究小组开发, x t r a t u m 是针对嵌入式实时系统而开发的一个h y p e r v i s o r 。实现针对嵌入式实时 领域的虚拟化技术的特点是,除了要考考虑主流的虚拟化技术实现的诸多因素之 外,还要考虑到实时嵌入式系统中诸如虚拟层的性能开销,整个系统复杂度,实 时性能等因素,针对实时嵌入式系统的虚拟化实现引入了一些新的设计。 1 4 x w a m m 将运行在虚拟机中的客户操作系统称作域( d o m a i n ) ,或称为分区 ( p m i t i o n ) ,域是由h y p c r v i s o r 管理的一个执行环境【2 】,在一个域里面可以同时 并发运行一个或多个进程。一个可以是一个实时操作系统和基于该系统的应用, 也可以是通用操作系统( 如l i n u x ) 和应用,采用域的好处是:各个客户操作系统之 间空间的隔离,例如各客户操作系统可以使用自己的内存管理机制,所以 h y p e r v i s o r 可以让支持m m u 的操作系统( 如l i n u x 和w i n c e 等) 和不支持m m u 的操作系统( 如n u c l e u s 和v r t x 等) 同时运行于同一处理器上硬件平台上。 x t r a m m 的实现是采用准虚拟化( p a r a v i r t u a l i z a t i o n ) 技术,x t r a m m 以h y p e r c a l l 的 形式向上层的域提供一个硬件抽象层,而运行在x t r a t u mh y p e r v i s o r 上层的域由 于不能直接访问被虚拟化的硬件部件,所以特定的域需要针对底层的x t r a t u m h y p e r v i s o r 做相应的修改,通过调用h y p e r c a l | 的方式来完成对虚拟硬件的访问。 目前x t r a t u m 已经发布了0 1 ,0 3 ,1 0 三个版本,支持x 8 6 ,p o w c f p c , m i p s 等多种平台。x t r a t u l v i2 0 版本也即将发布,前面的三个版本采用的实现方 式是2 型h y p e r v i s o r ,也就是需要l i n u x 作为宿主操作系统,当l i n u x 运行起来 之后,x t r a m m 以l i n u x 内核模块的方式加入到内核空间取得对硬件的控制权, 而2 0 版本将采用1 型h y p e r v i s o r 实现,可以不再需要宿主操作系统而直接运行 在硬件之上,x t r a t u m 的系统架构如图3 - i 【4 】所示,不管是1 型还是2 型实现, x u a t u m 都是采用的准虚拟化技术,操作系统需要进行修改后才能运行在 x t r a m m 之上,x t r a t u m 虚拟了处理器,内存,和对影响嵌八式系统的实时性能 最为关键的硬件部件:中断,时钟和定时器。 图3 - 1x t r a t u m 系统架构 1 5 兰州大学硕士学位论文 x t r a t u m 主要向上层的域提供虚拟的中断、定时器和内存。x t r a t u m 主要目 录结构如下: x t r a t u m i - p a t c h e s i - k e r n e l l - - a r c h i| - - i 3 8 6 ip p e 一u s e r t o o l s i - - x m l o a d e r 一l i b x m 由于x t r a t u m1 0 是以l i n u x 作为宿主操作系统的h y p e r v i s o r ,l i n u x 内核需 要打上补丁才能加载x t r a t u m 模块,其中p a t c h e s 目录包含了x t a t u m 针对不同 l i n u x 内核版本的补丁。k e m e l 目录是整个x t r a t u mh y p e r v i s o r 核心可移植部分的 代码,中断虚拟,定时器虚拟,域调度,内存管理,h y p e r c a l l 实现代码都在这个 目录,x t r a t u mh y p e r v i s o r 核心依赖于不同体系结构的不可移植部分的代码分别 放在a r c h 目录下的各个子目录中。u s e rt o o l s 目录的x m l o a d e r 是加载和卸载域的 工具程序,使用x m l o a d e r 将一个域动态加载到虚拟机中或从虚拟机中卸载。l i b x m 目录为上层客户操作系统提供统一的程序入口和h y p e r v i s o r 调用接口。 x t r a t u m1 0 提供的h y p e r c a l l 主要有: e x i td o m a i n退出一个域将域状态设置为f i n i s h e d s u s p e n d挂起一个域将域状态设置为d o m a i n 处理当裁域注册的事件suspendedsync e v e n t s p a s se v e n t将事件传递给下一个优先级较低的域 g e t读取系统时间t h n e s e tt i m e r设置定时器 g e t _ c p u _ k h z 读取c p u 频率 w r i t es c r巽幕输出 e n a b l eh w r q中断处理完成后调用使能中断控翩器。使中断 控翩器能继续响应中断 x t r a t u mh y p e r c a l l 的实现:x t r a t u mh y p e r c a l l 的实现原理与传统l i n u x 系 统调用的实现原理相同。传统l i n u x 系统使用o x 8 0 中断实现系统调用,当运行 在用户态的应用程序需要内核服务的时候,触发软件中断0 x 8 0 ( i n t $ o x 8 0 ) ,穿过 中断门切换到内核态执行系统调用程序。x t r a t u m 中客户操作系统在用户态执行, x t r a t u m 核心在内核空间执行,所以客户操作系统要调用x t r a t u m 的服务则要进 1 6 i t r a t u ml i y p e r v i s o r 行一次从用户态到内核态的切换,使用l i n u x 系统调用的原理可以实现x t r a t u m h y p e r c a l l ,与l i n u x 系统调用不同的是

温馨提示

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

评论

0/150

提交评论