




已阅读5页,还剩80页未读, 继续免费阅读
(计算机应用技术专业论文)基于intel+vt的内存虚拟化技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7 , 独创性声明 1 1 1 i i l l l i l 1 l l l l l | | l l l l l l l l l l l l i l l l l m l y 18 0 2 6 5 2 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:圣壶:鲻塾 日期:加扣年岁月l 归 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 1 签名:至整逊导师签名:丝 日期:硼肜年岁月、) 日 抽 l 恤 i r 化实现技术,以i i l t e lx 8 6 体系架构的硬件支持为基础,提出了基于嵌入式系统的 硬件辅助虚拟化方案,并对内存子系统的虚拟化策略作了探索性的研究和实现。 主要内容为: 1 详细研究了嵌入式领域内对虚拟化技术对应用需求。 2 详细研究了虚拟化技术的原理,深入分析i n t e l 硬件辅助化技术 v t ( v a n d e 印0 0 l t e c l l n 0 1 0 9 y ) ,采用硬件辅助完全虚拟化方案,参与实现基于嵌入式 系统的硬件虚拟机内核( 删k ) 。 3 深入研究内存虚拟化技术,分析i n t e lv t 硬件支持的内存虚拟化方案,并 基于硬件虚拟机内核h v m k 实现了内存虚拟化功能。 关键词:虚拟化技术,嵌入式系统,内存虚拟化,i i l t e lv t h 口 o r 、 叮 a b s t r a c t m l a l i z a t i o nt e c l m 0 1 0 9 yi so n eo f l et l o 讹s t 池l o 西e si nc o n l p u t e r n l e d r m a l i z a t i o nt e c l u l 0 1 0 9 ) ,c 趾s i 印i f i c a l l t l yi m p r o v ec o m p u t i n gr e s o u r c eu t l l l z a t i o n a i l d a v a i l a b i l i 坝s oi th a sb e e n 埘d e l y u s e di nb o m l ei n d u s t r i a ls e c t o ra n da c a d 锄1 as e c t o l t h i st h e s i s 趾a l y z e st 1 1 ea p p l i c a t i o np r o s p e c t s o fv i m a l i z a t i o nt e c t l r l 0 i o g y 1 n 锄b e d d e ds y s t 锄,s t u d ym ec u r r e n tm a i n s 仃e 锄v i n u a l i z a t i o nt e c h n o l o 目e s ,p r o p o s e 诎t u a l i z a t i o ns o l u t i o ni l le n l b e d d e ds y s t e mw h i c hb a s e d o nm e lx 8 6a r c h i t e m l r e s h a r d w a r es u p p o n ,e x l ) 1 0 r ea n di m p l 锄饥t t l l em 锄o r y 啊r t u a l i z a t i o ns 仃a t e 醪1 1 1 em 锄 c o n t e n t s 砌c : 1 s t u d i e di nd e t a i lw i m i nm e 印p l i c a t i o l l s 丘e l d so f 椭a l i z a t i o nt e 出l o l o g y i i l e m b e d d e ds y s t e m 2 ad e t a i l e ds t u d yo ft l l ep r i n c i p l eo fh a r d w a r e - a s s i s t e d r h j a l i z a t i o nt e d m 0 1 0 9 y , d 印t ha i l a l y s i so f i i l t e lh 捌w 瓣a s s i s t e dt e c h 0 1 0 9 y v t ( v a l l d 唧o o lt e c h n o l o 剐 3 d 印m 咖d yo fm 锄o r y 诎t u a l i z a t i o n t ec _ h n o l o 西e s ,p r o p o s e da n di m p l e m e i l t e d m e n l o 巧、,i 咖a l i z a t i o ns 0 1 u t i o nb a s e do n m ei n t e l h a r d w a r es u p p o n k e y w o r d s :诚m a l i z a t i o nt e c h n o l o g y ,蜘曲e d d e ds y s t e m s ,m e r n o r y 椭a l i z a t i o n ,i i l t e l v t i i 目录 目录 第一章绪论1 1 1 虚拟化技术的原理和发展概况1 1 1 1 虚拟化技术的定义1 1 1 2 虚拟化技术的原理。2 1 1 3 虚拟化技术的好处4 1 1 4 虚拟化技术的应用6 1 2 嵌入式领域对虚拟化的需求9 1 2 1 支持实时的软件更新9 1 2 2 支持多个并发的操作系统9 1 2 3 安全性1 1 1 2 4l i c e n s e 隔离1 2 1 3 本论文的选题和研究13 第二章虚拟化技术研究1 5 2 1 主流虚拟化技术研究15 2 1 1 完全虚拟化15 2 1 2 半虚拟化1 6 2 1 3 操作系统层的虚拟化。1 7 2 1 4 模拟18 2 1 5h v m k 虚拟化方案选择18 2 2 完全虚拟化技术研究18 2 2 1 纯软件方式实现完全虚拟化的缺陷19 2 2 2 更高效可靠的实现:硬件辅助虚拟化2 2 2 3 本章小结2 3 第三章i n t e l 硬件辅助虚拟化技术v t 2 4 3 1i n t e lv t 技术整体架构2 4 3 1 1 处理器虚拟化:v t x 2 5 i i i 目录 3 1 2 设备虚拟化:v r r - d 2 6 3 1 3 网络虚拟化:v c 2 7 3 2i n t e lv t 详细分析2 7 3 2 1 新的特权模式2 8 3 2 2 特权模式切换2 9 3 2 3 虚拟机控制块( v m c s ) 3 0 3 2 4 扩展页表技术3 1 3 2 5d m a 重映射3 2 3 3 本章小结3 3 第四章 h k 内存虚拟化总体设计3 4 4 1h v m k 整体架构3 4 4 2h v m k 内存虚拟化的需求分析3 5 4 2 1 操作系统的内存视图3 5 4 2 2 操作系统的内存管理3 6 4 2 3 页表技术3 6 4 3h v m k 内存虚拟化的设计目标3 7 4 4h v m k 内存虚拟化的设计思路3 8 4 5 本章小结3 9 第五章h k 内存虚拟化详细设计4 1 5 1 内存虚拟化整体架构4 1 5 2 内存管理子模块的实现4 2 5 2 1 启动时分配器的实现4 3 5 2 2 页分配器的实现4 3 5 2 3 内存分配器的实现4 6 5 3 地址映射子模块的实现4 7 5 4v m x 操作子模块的实现4 8 5 4 1 进入似模式4 9 5 4 2 设置虚拟机控制结构( c s ) 。5 0 5 4 3v me x i t 处理流程设计5 5 目录 5 4 4v me n 时操作5 7 5 5 影子页表子模块的实现5 7 5 5 1 缺页异常时页表同步的流程设计5 8 5 5 2 其它操作时页表同步的实现6 0 5 5 3s h a d o wp a g e t a b l ec a c h e 模块的实现6 0 5 6 本章小结6 1 第六章实例研究6 2 6 1 硬件平台搭建6 2 6 2 软件平台搭建6 3 6 3 功能测试6 3 6 4 性能测试6 4 6 5 本章小结6 5 第七章结论和展望6 6 7 1 本论文研究成果6 6 7 2 前景与展望6 6 致谢6 8 参考文献6 9 v 第一章绪论 第一章绪论 虚拟化技术的研究自上世纪六十年代开始萌芽,最初只是应用于大型机上, 目的是让用户尽可能地充分利用昂贵的大型机资源。由于在商业应用上非常成功, 虚拟化技术逐渐被引入到r i s c 服务器与小型机之上。但虚拟化技术展现出广阔的 应用前景,却是由于其在x 8 6 平台的成功普及。因为x 8 6 架构不仅提供便宜的、 高性能和高可靠的服务器,更重要的是,不少用户已经开始配置虚拟化生产环境, 从而随着虚拟化技术的发展而得到更大的收益。 本章将简要介绍虚拟化技术的原理和发展概况,随后讨论虚拟化技术在嵌入 式领域内的应用前景,最后介绍本论文的总体结构和拟展开的工作。 1 1 虚拟化技术的原理和发展概况 1 1 1 虚拟化技术的定义 绝大多数人目前的理解,虚拟化技术就是把硬件与操作系统相剥离,使得可 以在一个真实的硬件环境同时运行多个操作系统的技术,但这种说法,只是以偏 概全的描述了虚拟化技术的一部分。 在计算机专业,存在一种对虚拟化技术更加广义的定义。虚拟化:“对一组类 似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通 过一种通用的方式来查看并维护资源。 虚拟化是对计算单元的逻辑表达,利用虚拟化技术,可以实现对硬件平台的 更好的容量扩充,并能够简化软件的重新配置过程。举例来说,c p u 的虚拟化技 术,可以用一个c p u 来模拟多个c p u 的并行工作,从而允许一个平台同时运行多 个操作系统,各个操作系统的应用程序可以在相互独立的空间内运行而互不影响, 从而显著的提高了计算机的安全性和工作效率。 为了更好的理解虚拟化技术,对比一下虚拟化技术和多任务以及超线程技术。 多任务是指在一个操作系统之上多个应用程序并行运行,而在虚拟化技术中,则 可以做到在一个硬件平台上有多个操作系统在互不影响的运行,而每个操作系统 都有多个程序在运行。另一方面,超线程技术只是用单个的c p u 模拟双c p u 运行, 电子科技大学硕士学位论文 这两个模拟出来的c p u 是不能分离的,只能协同工作。 从上面的对比,可知道虚拟化技术的最常用的情景便是将硬件与操作系统相 剥离。但是,这并不全面,下面给出对虚拟化技术更准确的定义:“虚拟化技术是 将不同的资源和逻辑单元剥离,形成松耦合关系的技术。” 怎么理解松耦合关系呢? 其实这里讲到的耦合跟软件工程里的“耦合”关系类 似。面向对象的设计讲到,同一个类的内部的信息应该是紧耦合的,而不同的类 之间应该是松耦合的,这样做有什么好处呢? 可以更好地应对需求的变化,快速动 态的调整,从而能更快地重构整个系统。再举一个例子,w e bs e r v i c e 其实也是将 传统的紧耦合功能,转变为可以灵活组织的,就像一组相互独立的积木拼搭起来 的松耦合关系,使得需求功能可以做到通用化,我们也能够很容易的根据自身应 用的需求对服务进行灵活的组合。 而虚拟化,则是对计算环境这个更高角度上的概念上的“松耦合化”,让我们 的对计算环境的需求和对硬件的具体需求相剥离。这样,当我们有应用需要一些 计算单元,一些存储单元,一些操作单元,一些传输单元时,我们不再关注需要 什么品牌的c p u ,需要什么品牌的内存和硬盘等繁琐的信息,而直接利用虚拟化 技术,定制一个计算环境。 1 1 2 虚拟化技术的原理 虚拟化的目标是提供对物理资源的逻辑表示,向用户提供统一的操作管理接 口。这样,用户不必关注硬件使用细节,因为统一的管理接口始终保持不变。 卜f l 甲甲甲甲jiiil 麟越气爨i 茺! 勰 童 萋 义名a 一 图1 1 虚拟化技术的原理 2 第一章绪论 如图1 1 所示,对于管理者来说,看到的资源视图可能是多个物理资源的整 合,也可能是单个物理资源的分割,这跟虚拟化技术的实现形式和实现目标密切 相关,下面介绍两种最常用的虚拟化形式。 1 1 2 1 单个资源的多个逻辑表示 这是虚拟化技术最为广泛的应用形式。它只包含一个物理资源,但是它像用 户呈现的逻辑视图,却包含了多个逻辑资源。用户在与这个虚拟的资源进行交互 的时候,会感觉自己是唯一的用户,换句话说,用户并不需要考虑会有其它用户 在使用该资源,图1 2 是虚拟机和数据库技术的示例图。 虚拟机就是一个典型的例子,服务器资源一般性能强劲,如果只能单个用户 使用,很可能利用率不高,所以,使用虚拟机技术,则能让多个用户同时是使用 物理资源,达到更高的资源利用率。 数据库技术是另一个例子,数据库视图的使用将数据与消费者隔离开来,这 样可以基于消费者的角色和身份验证对资源进行访问,即使在所有消费者同时访 问相同的数据库时,也不会出现任何问题。 p h y s j i 囤国 图1 - 2 单个资源的多个逻辑表示 1 1 2 2 多个资源的单个逻辑表示 这种虚拟化形式包含了多个物理资源,将这些资源整合起来,让用户看起来 像是一个组合的大资源,如图1 3 所示。这种虚拟化形式的最大好处,是将一组功 3 电子科技大学硕士学位论文 能有限的物理资源组合起来,使得用户看到一个功能强大而且丰富的物理资源。 存储虚拟化便是一个典型的例子。用户并不知道自己的数据被分散到了多个 磁盘上保存。 图1 。3 多个资源的单个逻辑表示 1 1 3 虚拟化技术的好处 1 1 3 1 更高的可用性 虚拟化的主要目的之一是对i t 基础设施进行简化。它可以简化用户对资源 以及对资源管理的访问。 上面提到的用户,可以是一名最终用户、应用程序、访问资源或与资源进行 交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入 和提供输出。资源可以是硬件,例如服务器、磁盘、网络、仪器;也可以是软件, 例如w 曲服务。 用户通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以 在r r 基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用 这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理 资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进 行升级或应用补丁,因为标准接口并没有发生变化。 1 1 r 基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之 4 日l 国 甲 粉一 同目 第一章绪论 间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系, 管理员可以在保证管理工作对消费者产生最少影响的基础上实现对i t 基础设施的 管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定( s l a ) 驱动来自动完成。 1 1 3 2 更高的资源利用率 使用虚拟化技术的第二个优点是高利用率。 做个简单的比喻,在计划经济时代,我们的每个工厂里,都有自己的一整套 的生活设施,有自己的澡堂,自己的食堂,自己的学校和幼儿园,自己的图书阅 览室,等等。当我们在考虑建造一个新的大型炼钢厂时,领导人必须花费大量的 人力物力,构建这么一整套的配套生活设施,对于工厂内的员工来说,倒是方便。 但是站在厂的角度来讲,这么做非常不经济,什么都要做,最终的情况是什么都 做不好,为什么呢? 缺少竞争,同时也缺少规模经济,所以对社会来讲,是非常 大的资源浪费。 那我们后来是怎么解决这个问题的呢? 我们转变了计划经济的模式,让企业 市场化,把所有的工作都交给专业化的机构去做,社会上有了很多专业的餐馆和 澡堂,幼儿园和托儿所,这时再考虑建一个炼钢厂,领导人只需考虑把工厂建在 一个周边有这些生活设施的地方即可,而不用自己再费力去创造这一套配套生活 设施,从而提高了自身的生产效率。而各个生活设施由于自身专业化程度越来越 高,其自身的效率也在不断提升。 从上面的比喻,我们可以理解是社会分工,促进了生产力的发展。而这里的 社会分工,跟虚拟化技术里提到的松耦合的思想一脉相承。 虚拟化技术,让我们能够更便捷更灵活的配置自身需要的计算环境,降低了 配置的成本,提高了计算资源的利用率,从而提高了计算的效率。就好比我们给 所有的计算资源找了一个管家,资源管理的工作都交给管家去做,而我们自己则 可以专注于应用和服务的开发和使用上。 1 1 3 3 更高的安全性 虚拟化技术的第三个好处是高安全性。 在传统的计算机架构中,一个操作系统即控制了整个计算机硬件资源,这样, 一旦该操作系统存在安全漏洞,被黑客攻击,或感染病毒软件,则必定会导致整 个系统的崩溃,整个系统的数据也被暴露在不安全的状态之中。 5 电子科技大学硕士学位论文 而使用虚拟化技术,由硬件资源都由虚拟化管理软件h y p * v i s o r 专门控制, 其上的操作系统和应用只有通过该h y p e r j i s o r 来使用计算资源,这样,即便某一 个操作系统被入侵,入侵者也不能控制整个硬件资源,也无法获取在同一计算环 境上运行的其它操作系统和应用上的数据和资源,从而使得整个系统的安全性得 到了大大的提升。 1 1 4 虚拟化技术的应用 虚拟化的技术已经出现了不同的分支,针对目前主要是虚拟化技术,进行分 类,和解释。 服务器虚拟化,是指将客户操作系统与物理服务器硬件相分离,并提供附加 功能及优势,比如v m w a r e 。 网络虚拟化,是指将网络应用植入到网络设备中,并提供附加功能及优势, 比如c i s c o 和3 c o mo n 。 存储虚拟化,是指隐去操作系统的磁盘存储复杂性,并提供附加功能及优势, 比如d a t a c o r e 。 1 1 4 1 服务器虚拟化 服务器虚拟化就是刚才提及的把单个物理服务器资源,虚拟化成多个逻辑服 务器,使得上层的操作系统看起来是一组服务器,而每个操作系统在一个逻辑服 务器上运行,并且相互之间互不干扰。 服务器虚拟化技术通过区分资源的优先次序并随时随地能将服务器资源分配 给最需要他们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值 而储备的资源。 虚拟化技术通过两个方向来改善服务器的资源管理,使得服务器能更加合理 地分配资源,一种方向就是把一个物理的服务器虚拟成若干个单独的逻辑服务器, 一个典型的例子即是虚拟机技术;另一个方向,就是把若干个分散的物理服务器 虚拟为一个大的逻辑服务器,有个典型的例子就是磁盘阵列和存储虚拟化。 服务器虚拟化技术的商业使用已经非常成熟,在市场已经有很多成熟的产品。 按照实现技术的不同,大致分为3 类:v m w a r es e r v w b 妇t 撕o i l 微软的r t u a l p c 和、,jn l 均】s e r v e r ( 完全虚拟化) ;x e n ( 半虚拟化) ;b o c h s ( 模拟) 。 不同的实现技术有各自的特点:完全虚拟化( 客户操作系统不作更改) ;半虚 拟( 子操作系统经过更改) 模拟( 子操作系统未经更改,但它运行在软件模拟的c p u 6 第一章绪论 上) 。 服务器虚拟化在企业级应用中已经越来越普遍,f o 仃e :s tr e s e 嬲m 在2 0 0 7 年的 一份报告中指出约有4 0 的企业开始使用服务器虚拟化。微软,c i s c o ,v m w a r e 等公司都对服务器虚拟化市场加大了投资力度。 1 1 4 2 存储虚拟化 “存储虚拟化”的定义,是“在存储软件和硬件栈的任何层进行提取”。在最 基础的层面,存储虚拟化可以定义为在物理存储设备和或低级逻辑存储设备之上, 能够提供统一不变的逻辑存储资源视图的抽象层。 这种提取机制的实现,可以是在主机或存储阵列中,也可以发生在s a n 架 构的内部。我们可以举一个例子来说明,在大部分的数据中心里,即使是使用s a n 架构,如果某一个已分配的u 刷满了,而别的l i 数据还有空闲,是很难从一 个l u n 转移数据到另一个u 的。 但存储虚拟化技术的实现,是可以解决这个问题的。存储虚拟化提供了数据 迁移技术,允许在用户不知道的情况下,将一个u 的数据转移至其它u 肘,从 而为l l 肘腾出更大的空间。 存储虚拟化技术也已经得到了广泛应用,因为很多机构,比如医院,学校等, 对计算并无太苛刻的需求,对数据存储却有极大的需求。这就需要专门的存储虚 拟化技术,来满足存储需求。 1 1 4 3 网络虚拟化 “网络虚拟化”一般是指虚拟专用网络m n ) 。v p n 提取了网络连接的语义, 这样的话,组织内部的网络在远程用户看起来,就像是物理连接到该内部网络一 样。 网络虚拟化是最近几年新出现的技术。s u i l 和惠普在几年前就开始提出网络 虚拟化,但网络虚拟化的普及和发展,却更多是由于思科的战略重心转移到网络 虚拟化,并加大对网络虚拟化的研发和推广工作。 网络虚拟化的实现方法,一般基于网络设备之间实现了存储虚拟化的功能。 具体来讲,主要有两种方式,一是基于互联设备的虚拟化,二是基于路由器的虚 拟化。 第一种是基于互联设备的虚拟化,基于互联设备的虚拟化方法能够在专用服 务器上运行,使用标准操作系统,例如w i l l d o w s 、s 吼s o l 撕s 、l i n u x 或供应商提 7 电子科技大学硕士学位论文 供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势一 易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善 系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要 更高的硬件成本。 基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上; 如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设 备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时, 多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障 接替。但是,这将产生多个s a n 孤岛,因为一个设备仅控制与它所连接的存储系 统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是 分离的。 但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍 然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不 适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的 互操作性仍然是一个问题。 第二种是基于路由器的虚拟化。基于路由器的方法是在路由器固件上实现存 储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管 理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来 截取网络中任何一个从主机到存储系统的命令。 1 1 4 4 桌面与应用环境的虚拟化。 桌面虚拟化是指将计算机的桌面进行虚拟化,以达到桌面使用的安全性和灵 活性。 桌面虚拟化从实现方式上来讲,一般有三种。 第一种是远程托管桌面。这是实现方式最为简单的桌面虚拟化技术。用户通 过远程登录的方式,访问位于服务器的操作系统,完成自己需要的工作,用户的 输入输出信息都通过网络跟服务器交互。 这种方式的最大优点是成本低廉。但缺点也非常明显,即受到网络带宽的严 重影响,显示协议经常不能处理复杂的图形;一些为桌面设计的应用程序在共享 的模式下不能在服务器上运行;对于不能本地存储数据的用户、使用大多数外设 的用户或者使用u 盘保存数据到处走的用户来说缺少灵活性。当断开连接的时候 不能工作。 8 第一章绪论 第二种方式是远程操作系统。这是一种无盘工作站的概念,虚拟机能够在一 台服务器上运行,与其它专用的虚拟机共享资源或者自己在一台刀片式p c 上运 行。能够远程托管或者传送。在传送的情况下,应用程序和操作系统都可以传送 到客户机,根据用户的需求下载部分软件,在客户机上执行这些程序,使用其处 理能力但是不使用本地存储。 这种方法的优点,是能够运行在共享模式下不能运行的应用程序;隔离每一 个用户的活动以防止资源的限制。但缺点是比远程托管桌面使用更多的带宽,使 用更多的服务器上的硬件。性能取决于网络连接的质量和显示协议处理图形的能 力。当断开连接的时候不能工作。 第三种是本地桌面操作系统虚拟化。它将服务器虚拟化技术在桌面使用。优 点是非常安全,使用灵活,可以延伸到网络虚拟化。缺点也很明显,就是技术实 现难度太高。 1 2 嵌入式领域对虚拟化的需求 虚拟化技术在桌面市场和服务器市场均得到了广泛的应用。在嵌入式领域中, 对虚拟化技术的需求也越来越强烈,下面阐述了嵌入式领域内使用虚拟化技术的 主要的场景。 1 2 1 支持实时的软件更新 在过去,嵌入式系统一般被设计成功能单一,用户接口简单,没有通信通道 的嵌入式设备。通常在制造生产过程中,即已经将所有的软件预先装载到设备上, 并在整个使用生命周期中都不再更新。并且软件数量很小。 然而在现在的嵌入式系统中,用手机举例,包含复杂的用户接口,键盘,触 摸屏,摄像头,声卡,高分辨的显示屏幕。组合了非常多的功能,包括语音和数 据通信,多媒体播放,游戏等,支持多种无线通信模式,比如w i f i 和蓝牙。它允 许用户自己安装数据和应用程序,在系统上运行的软件数量已经变得非常庞大, 一般会有多达上百万行的代码。 在现今这种功能多样,软件丰富的开放式嵌入式平台中,使用虚拟化技术, 能对平台上软件的实时更新,提供更好的支持。 1 2 2 支持多个并发的操作系统 9 电子科技大学硕士学位论文 在嵌入式系统中使用虚拟化的最大好处,是在同一个硬件平台上,同时并发 的运行多个操作系统。 这是由于,嵌入式设备的多样性决定了其对功能需求的多样性。 一方面,嵌入式设备通常需要支持某些实时功能,这类功能要求可预期的低 延迟。还是用移动电话终端举例,其通话子系统对实时性的要求就非常高。这类 实时性的功能,一般都需要一个专门设计的精简而且高效的实时操作系统( i h o s ) 的支持。 另一方面,随着嵌入式设备向着智能化方向不断发展,嵌入式设备越来越需 要高级应用程序的支持,比如多媒体播放功能,不同文件格式的查阅和编辑等。 这一大类的应用程序,很多都是基于高级的个人电脑( p c ) 编写的。它们的开发者 也都不是嵌入式编程的专家。 这类的代码,基本都需要高级的操作系统提供方便而且高效的应用程序接口 ( a p i ) 支持,流行的例子,比如说l i n u x 和w i n d o w sc e 。 虚拟化技术通过支持在同一个硬件平台上并发的运行多个操作系统,可以同 时满足了嵌入式设备对实时性和功能性的需求。 图l _ 4 使用虚拟化技术扩充支持多个并发操作系统 在图1 - 4 中,处理器硬件环境之上,在原来的操作系统层位置,新增加了一 个软件层( h y p e 而s o r ) 层,该软件层即虚拟机软件层,它负责管理系统物理资源, 向上提供统一的计算机运行环境,并通过调度器管理多个操作系统在h y p e i s o r 层上的独立运行。 1 0 第一章绪论 上图的i 玎o s 即传统意义的实时操作系统,满足嵌入式设备对实时功能的需 求,比如手机的实时通话功能,工业控制设备的紧急控制功能,汽车电子的即时 导航功能等。 上图的a p po s 指的是功能强大的桌面操作系统,通过提供强大的高级编程 接口,满足嵌入式设备日益增长的功能需求,如媒体播放,文本编辑,个人信息 管理,数据压缩解压,数据加密解密,网络接入等等。 a p po s 另一个显著特点,是友好的用户操作界面,随着硬件处理运算能力的 不断提升,在嵌入式设备中通过高级u i 界面给用户带来更好的使用操作体验已经 是大势所趋。 1 2 3 安全性 虚拟化技术可以极大增强嵌入式系统的安全性。通过虚拟化可以把不同的子 系统封装到虚拟机中,这样一旦其中一个子系统崩溃或者被攻击,将不再会影响 到其它子系统。 嵌入式设备对安全性的要求非常高,还是拿移动手机终端举例,其通信协议 栈非常关键,一旦该协议栈被攻击者成功进入,则这台手机就可能干扰整个无线 网络,在极端的情况下,这台电话会导致整个通信网络的瘫痪。同样的,一个加 密子系统也需要极高的安全保护,来保证加密信息不被窃取。 对于现代的嵌入式操作系统来说,越来越庞大的代码量使得其安全隐患越来 越多,而且现代系统很多也允许使用者下载和运行程序,这样,在没有虚拟机存 在的情况下,一旦某个应用的某个b u g 被作为攻击的切入点,就将导致整个系统 的崩溃。 图1 5 阐述了虚拟化技术如何增强嵌入式系统的安全性。 缓冲区溢出是一种常见的网络攻击手段,其原理是利用用户程序对缓冲区的 超界访问,从而访问到系统关键数据和程序,从而能够窃取系统的控制权。 在没有使用虚拟化技术的系统里,如图1 5 左边所示系统,缓冲区溢出攻击 一旦成功,整个操作系统已经暴露在入侵者的面前,入侵者将能完全控制整个系 统资源,访问所有的关键模块。 如果入侵者攻击使用了虚拟化架构的系统,如图1 6 右边所示,虽然入侵者 通过应用程序侵入了提供u i 界面的操作系统,但该操作系统一般只负责功能扩展 和用户交互模块。 电子科技大学硕士学位论文 由于有了h y p e i s o r 这个软件层的存在,攻击者只能控制被攻击的操作系统, 而不能控制运行于虚拟化系统内的其它o s 。这样就保证了攻击造成的损害被降到 了最低。 图1 5 使用虚拟化技术提升嵌入式系统安全性 通过使用虚拟化技术,降低高级操作系统的特权级别,保证其无法进入其它 关键的子系统,从而确保了整个系统的安全性。即使被攻击,也不会造成太大的 损失。 1 2 4l c e n s e 隔离 l i n u x 是一个经常被使用的高级0 s 。它的优点就是免费,不受任何厂商控 制,且有一个庞大的开源社区的支持。 l i n u x 遵照g p l 的l i c e i l s e 发布,它需要任何由l i n i 衍生出来的代码都 要遵照同样的1 i c e i l s e 发布,也就意味着开源。这对于商业开发来讲就是一个两难 的取舍,既想使用免费的系统,又需要保护商业机密。 如图1 6 所示,通过虚拟化技术,可以实现1 i s e i l c e 的隔。l i i l u ) 【和具体的运行 环境运行于相互隔离的虚拟机中,比如,在l i i 凇中用使用驱动桩,而把真实的驱 动实现在另外的虚拟机中,从而实现了l i s e n c e 的隔离。 1 2 图1 6 使用虚拟化技术隔离“s c c 1 3 本论文的选题和研究 本论文针对嵌入式领域内虚拟化技术的应用方案进行研究。目的是在保持原 有嵌入式系统的实时性和可靠性的前提下,通过引入虚拟化技术,来提升系统的 功能扩展能力和安全性。 本论文的研究开发平台是基于实时操作系统( r 1 r o s ) 的嵌入式设备,该类设 备主要针对军工领域提供高实时高可靠的服务。现有的i h d s 平台大多只针对专 用功能而设计,为了保证系统的实时性,其操作系统功能单一,专注于提供高实 时高可靠的功能。 随着软硬件技术的发展,该嵌入式平台出现了很多新的功能需求,比如希望 能支持文件系统,提供基本的文件访问和存储功能,支持基本的网络功能,希望 能提供更友好的用户操作界面等等。 而现有嵌入式平台的r t o s 设计简单,在设计之初并没有考虑到更多的功能 支持,所以想在该i 玎o s 上移植其它开源系统的功能模块,或者自己开发功能模 1 3 电子科技大学硕士学位论文 块,都是非常困难的事情。同样,如果引入其它系统如l 矾u x 的功能模块,放在 同一个系统之中的话,会降低整个系统的安全级别。 所以通过虚拟化支持,解决功能扩展和安全性问题,是本论文研究的主要目 标。 论文的总体结构大致如下:首先阐述了虚拟化应用于嵌入式系统的背景和意 义。然后通过比较主流的虚拟化技术,提出基于嵌入式系统的虚拟化技术方案。 再对h l t e l 的硬件辅助虚拟化技术v t 做更详细的分析和研究,这是实现虚拟化的 硬件基础。第四章概述虚拟化方案的总体架构,然后着重针对内存这一类特殊资 源,阐述总体架构中内存虚拟化的总体设计和详细设计方案,最后是实例研究和 总结。 1 4 第二章虚拟化技术研究 第二章虚拟化技术研究 本章首先对比当前主流的虚拟化技术,包括完全虚拟化,半虚拟化,操作系 统层的虚拟化,模拟。分别介绍了每一类虚拟化技术的特点,实现方式,以及优 点和缺点,阐述完全虚拟化的优点。 然后针对了实现完全虚拟化的两种主要技术,即纯软件实现方案和硬件辅助 实现方案各自的优缺点,做详细的分析。 最后结合本论文所研究的嵌入式项目硬件虚拟机内核( m 仆嗄k ) 的目标,即 对高安全性,高功能扩展性和可移植性等需求,阐述为什么选择完全虚拟化技术 作为h v m k 的虚拟化实现方案,以及选择i n t e lv t 硬件辅助虚拟化的优势。 2 1 主流虚拟化技术研究 本节研究目前已出现的主流虚拟化技术,分析每种虚拟化技术的优缺点以及 适用环境。 2 1 1 完全虚拟化 完全虚拟化( 伽1v i r t l l a l i z a t i o n ) ,是提供完整的虚拟机环境的技术。这里的虚 拟机是指对底层硬件平台的完全仿真,即在虚拟机内运行的软件,会感觉和真实 的硬件平台完全的一致。 在这样的虚拟环境之中,任何能在原始硬件上运行的软件,特别的是指操作 系统,都能不加修改的运行。而其它的虚拟化平台,只允许部分的操作系统或者 经过修改的操作系统,才能运行在平台之上。 完全虚拟化的一个重要的例子是m m 公司的c p c m s 操作系统的控制系统。 完全虚年拟化的概念第一次被提出是1 9 6 7 年i b m 推出c p - 4 0 研究系统时,然后 随着1 9 6 7 1 9 7 2 年c p ,c m s 系统的开源而被发布出来,从1 9 7 2 年至今,i b m 的 v m 家族一致在重新实现完全的虚拟化技术。c p c m s 及其的使用者都被给予一个 模拟的,独立的虚拟计算机,每个这样的虚拟计算机都有完整的访问底层硬件的 能力,而且每个虚拟计算机都感觉是独立占有整台机器而没有别的机器的影响。 这个模拟是全面的,是基于硬件操作手册的工作原理的。因此,它包括了从指令, 1 5 电子科技大学硕士学位论文 主内存,中断,异常和设备访问。其结果是一台机器可以在许多用户复用。 完全虚拟化的实现需要硬件和软件的完美协作。举个简单的例子,在m m 公 司早期的s v s t 洲3 6 0 系列中就无法实现完全虚拟化,虽然在后来i b m 的 s y s t e l i l 3 7 0 系列中能够实现,但在早期的i b ms y s t e 州3 7 0 系列仍然无法实现完全 虚拟化。原因就是直到1 9 7 2 年,m m 才在s y s t 利3 7 0 系列中实现了对内存虚拟化 的硬件支持。 同样的,要想在早期的x 8 6 平台上实现完全虚拟化也是非常困难的。直到 2 0 0 5 2 0 0 6 年,a m d 公司和i n t e l 公司分别推出了a m d v 和h l t e lv t 硬件辅助虚 拟化扩展,实现虚拟化才变得可能。但是在2 0 0 5 年硬件辅助虚拟化功能出现之前, 很多基于x 8 6 架构的虚拟机就已经非常接近完全虚拟化,不少产品也声称已经做 到了完全虚拟化。比如a d e o s ,m a c o n - l i n u x ,p a r a l l d sd e s h o pf o rm a c ,p a r a l l e l s w 0 r k s t a t i o n ,v m w a r ew b r k s t a t i o n ,v m w a r es e r v e r ( f o h n e r l yg s xs e r v e r ) , v i r m a l b o x ,w i n 4 b s d ,w i n 4 l i np r o 等。以v m w a r ew b r k s t a t i o n 举例来说,使用 了一种叫做“二进制翻译”的技术来自动修改插入虚拟机的硬件机器指令,将其 转换为安全的虚拟机指令,该技术可以看成是虚拟化技术的首次亮相。 完全虚拟化的一个主要挑战就是拦截特权指令并模拟特权指令的执行,比如 i o 指令。在一个给定的虚拟机中执行的每个操作的影响必须保持在该虚拟机 虚拟操作不能容许改变任何其他虚拟机的状态,控制程序或硬件。机器可以执行 指令直接由硬件,因为它们的影响,完全是在由控制程序,如内存位置和算术登 记,但其它特权指令,只能由虚拟机捕获,而不能让其直接执行。 完全虚拟化有着明显的优点:比如在单一的物理机器上允许多个用户互不影 响的共享资源,实现了对资源的高效利用;实现了用户与用户之间的完全隔离; 因为实现了对硬件的完全仿真,最终得到了高的可靠性,安全性,移植性。 完全虚拟化的实现,由于中间有了一层虚拟机监视器( v m m ) 的存在,从而 会导致性能的部分降低。 2 1 2 半虚拟化 半虚拟化q a r a v i m l a l i z 撕o n ) 是指向虚拟机提供与直接操作硬件类似,但是却 不完全相同的一组软件接口的虚拟化技术。 向虚拟机提供一组修改过的硬件操作接口的动机,是为了减轻软件在真实物 理机器上执行和在完全虚拟环境内执行时的效率损耗。半虚拟化技术提供了特定 1 6 第二章虚拟化技术研究 的钩子技术,来允许客户操作系统相互之间进行通信,将很多任务转移到宿主操 作系统上运行,这样的话,一个成功实现的半虚拟化平台只需要提供一个更加简 化的虚拟机监视器( v m m ) ,这样就减少了整个系统的负载,同时也增加了m 的可靠性和安全性,因为大多数的硬件管理工作可以通过v m m 的通信机制转移 到宿主操作系统上去运行。 半虚拟化要求客户操作系统显示的导出m 提供的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届吉林省松原市宁江区油田高中高二化学第一学期期中统考模拟试题含解析
- 2025年导游资格证模拟试题 导游英语听说能力提升
- 2025年高中物理波动光学知识冲刺试卷
- 湖南省株洲市攸县第三中学2026届化学高二上期中学业质量监测试题含解析
- 现代仓库管理培训课件
- 民法典宣传课件
- 2025年度企业员工试用期全面考核与绩效评估劳动合同
- 2025年度生态公园绿化项目油工施工管理服务合同
- 2025年场项目投标失败后全面供应链优化与升级服务合同
- 2025年度跨境电商平台供应链管理服务合作协议
- 工程质量自评报告
- 水闸安全评价报告
- GB/T 34487-2017结构件用铝合金产品剪切试验方法
- GB/T 31703-2015陶瓷球轴承氮化硅球
- 房地产市场报告 -九江房地产市场月报2022年11月
- 代运营协议合同范本
- 《人格障碍》课件
- 部编版高一语文必修上册教学计划
- GB∕T 27011-2019 合格评定 认可机构要求
- 私企接待应酬管理制度(3篇)
- YX51-380-760型金属屋面板专项施工方案(32页)
评论
0/150
提交评论