




已阅读5页,还剩84页未读, 继续免费阅读
(信息与通信工程专业论文)windows平台下虚拟执行环境的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
冉i,j 一,一 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:垒2 壁望望鱼日期:矽汐年j 月眵日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:亟! 星旦鹦 导师签名: 日期:如乃年j 月哆日 ,r 一 一 一1h ,r 摘要 摘要 虚拟化技术是一种将硬件或软件资源进行分解,以构造多个彼此隔离的执行 环境的技术。这种彼此隔离的特性为虚拟化技术的应用奠定了基础。当前,虚拟 化技术在服务器整合、平台迁移、充分利用系统资源、灾难恢复、虚拟应用程序 等领域发挥着越来越重要的作用。 在非安全程序的检测和调试领域,虚拟化技术发挥的作用尤其重要。虚拟化 技术能够模拟一个真实的应用程序运行环境,使得任何运行于其中的应用程序如 同运行在真实执行环境中一样。利用虚拟化技术不仅能够对应用程序的行为进行 监控,也能够保护主机系统免遭恶意程序的破坏。 关于虚拟化,最大的挑战就是如何更好的实现虚拟执行环境与主机系统的隔 离。本文首先概括分析了当前虚拟化技术的研究和发展现状,并对比分析了当前 流行的各种虚拟化技术,在分析了w i n d o w s 操作系统分层体系结构的基础上得 出实现一种隔离性强、资源消耗低的操作系统层的虚拟执行环境( o sl e v e l n u a l e x e c u t i o ne n v i r o 衄e m ,o s l v e e ) ,该虚拟执行环境的主体是一个“虚拟内核”, 该虚拟内核负责文件系统、注册表资源、进程间通信、系统内核对象、系统守护 进程以及网络子系统的虚拟化。系统的实现基于以下几点:一是利用虚拟磁盘技 术为o s l v e e 提供一个虚拟化磁盘,然后利用、矾n d o w s 操作系统的文件系统过 滤驱动技术将o s l 、,e e 内的所有文件系统请求重定向到该虚拟磁盘上,从而达到 隔离主机系统和虚拟执行环境的目的。二是利用命名空间重定向机制,通过在用 户空间截获系统库函数实现网络子系统、进程间通信以及系统服务的虚拟化;通 过在内核态截获系统调用实现内核对象和注册表资源的虚拟化,从而达到为应用 程序执行提供虚拟系统资源和服务的目的。三是利用写时拷贝机制( c o p yo n w r i t e ,c o w ) ,保证主机系统与虚拟执行环境之间的数据一致性。 通过实验证明,该执行环境能够为应用程序的运行提供真实的运行环境,在 病毒检测,不可信程序检测及调试方面,达到了保护主机系统、隔离恶意破坏行 为的目的,并且能够为后续应用程序的行为分析提供充足的依据。 关键词:命名空间重定向,写时拷贝,文件系统过滤驱动,虚拟执行环境,o s l v e e l r j a b s t r a c t n u a l i z a t i o ni sat e c l l i l o l o g ym a tp 枷t i o n sn l eu n d e r l y i n gp h y s i c a lm a c 1 i 1 1 e s h 矾w a r eo rs o 脚a r er e s o u r c e s 觚dc r e a t e ss o m ei s o l a t e de x e c u t i o n 洲。衄耐s e a c ho ft h i se x e c u t i o ne n 访r 0 衄e n th a ss 仃o n gi s o l a 廿o ns t r e l l g m 肌di s 0 1 a t e sw i 戗l o t l l e re x e c u t i o ne n 啊r o i m l e n t s 1 1 1 i sc h a r a c t e r i s t i cm a k e s ab a s i sf o rt l l ew i d eu s a g co f t h i st e d m o l o 鼢n o wi tp l a y sam o r e 锄dm o r ei n l p o r t 孤tr o l ei nt h e 丘e l do f s e e r c o n s o l i d a t i o n ,s y s t 锄m i 孕a t i o n ,m a k e 甜lu s e o fs y s t 锄r e s o u r c e s , t a u l tr e c o v 唧, v i m i a l 印p l i c a t i o n s e t c v i n u a l i z a t i o na l s op l a y sa i li i n p o r t 趾tp a n i nt h e6 e l do fd e b u g 西n ga i l dt e s | c l n g u n s a f ea p p l i c a t i o n s r n j a l i z a t i o nc a na b s n a c ta r e a le x e 训o ne n v i r o 啪e n t ,w i t h 恤s , a n ya p p l i c a t i o nm a tm s i nt h i se n v i r o 姗e n tf e e l sn od i 仃钉e n t 舶mm 1 1 1 1 i n gi nm e r e a l e n v 沛姗e n t ,a i l dw h a ti sm o r e ,a 1 1 yo p e r a t i o no f t h et a 玛e tp r o c e s sc a nb em o m t o r e d a 1 1 dt h u sp r e v 饥t i n gm eh o s to p e r a t i l l gs y s t 锄舶ma 1 1 ym a l l c l o u sd 锄a g e t 量1 em a i nc h a l l e n g eo fv i r c u a l i z a t i o ni s h o wt oi s 0 1 a t em e n u a le x e 训o n e n v i r o 眦e n t 舶mm eh o s to p e r a t i n gs y s t e m f 戤1 y ,t h i st h e s i s s 埘m 撕z e st h e c u r r 饥tr e s e a r c h 嬲dd e v e l o p m e n tc o n d i t i o no fv i 咖a l i z a :t i o n ,c o m p a r e sa l lt h ep o p u l a r v i r m a l i z a t i o nt e c l m o l o 酉e st o g e m 既 b a s e do nm ea 芏1 a l y s i so fm el a y e r e da r 出t e c t u r e o fw i n d o w ss y s t 锄,a i lo sl e v e l 咖a le x e 叫i o ne n v i r o 舳e n ti sp r o p o s e d 讹c hh a ss 仰n gi s o l a t i o ns 仃e i l g t h 趾d f - e w e rr e s o u r c er e q u i r e i l l 饥t s t 1 1 em a i np 砒o f 廿1 eo s l v e e i sc a l l e d v i m a lk e f l l e l ” m o d u l e ,诫c hi m p l e i i l e n t st h ev i 咖a l i z a t i o no f 6 1 es y s t 锄,r e 垂s 仃yr e s o u r c e s ,m t e r p r o c e s sc o m m l l i l i c a t i o n s ,w i n d o w sk 锄e 10 | b je c t s ,s y s t 锄d e i l l o np r o c e s s e s a 】吣 n e 柳o r ks v s t e m o s l v e ei sa c c o m p l i s h e dw i m 1 ef 0 1 1 0 谢n gt e c l l l l o l o 百e s 。f 砸t l y , v i r t l l a ld i s ka n dw 垂【l d o w s 丘l es y s t e mf i l t e rd r i v e r si s u s e dt or e d i r e c ta l lf i l er e q u e s t s 舶mo s i et ot h ev 舢a ld i s k ,也u si s o l a t e 仳s 咖a le x e c u t ee n v l r 0 i l i i l 耐打o m m eh o s ts v s t 锄;s e c o n d l y ,n 锄e s p a c er 出e c t i o n i s u s e dt 0h o o ka n d 删u s e r m o d e1 i b r a r y 劬c t i o n sa n dk e m e lm o d es y s t 锄 c a l l劬c t i o n s ,砌c hp r o v l d e s a p p l i c a t i o n sw i l 帆a ls y s t 锄s e 州c e s 趾dr e s o w c e s 砸r d l y , t h ec 0 p y0 1 1t i m c , i i a b s t r a ( 了r t e c h n o l o g yi su s e dt ok e 印d a t ac o n s i s t e n c yb e t w e e nh o s to p e r a t i n gs y s t e ma r l dm e v i r t l l a le x e c u t i o ne n v i r o n m e n t n sp r o v e dt ob ee 虢c t i v em a tt 1 1 ev m a le x e c u t i o ne n v 衲胁e n tc a i li s 0 1 a t ei t s e l f 丘o mh o s to p e r a t i n gs y s t e ma n dp l a y sa l le x c e l l e n tr 0 1 ei nd e b u g 百n ga i l dt e s t i n g u n s a f ea p p l i c a t i o n s ,w h a ti sm o r e ,t l l i sv i 咖a le x e c u t i o ne n v i r o m n e n tc a nb eu s e dt o a n a l y s i su n s a f e 印p l i c a t i o n s o p e r a t i o n s k e yw o r d s :n 锄e s p a c er e d i r e c t i o n ,c o p y - o n - w 矗t e ,f i l es y s t e i l l6 1 t e r 越v e r ,彻a l e x e c u t i o ne i l v i r o 珈m e n t ,0 s l v e e i 1 ; 一 目录 目录 第一章绪论l 1 1虚拟化技术概述1 1 2课题的研究意义及目的3 1 3课题背景3 1 4论文主要内容及组织结构4 第二章虚拟化方法研究6 2 1虚拟机概述6 2 1 1 虚拟机的主要分类7 2 1 2 虚拟机的主要特点8 2 2硬件级虚拟化9 2 2 1全虚拟化( f u l lv i r t u a l i z a t i o n ) 9 2 2 2 本地虚拟化( n a t i v ev i r t u a l i z a t i o n ) 1 0 2 2 3半虚拟化( p a r a v i r t u a l i z a t i o n ) 1 1 2 3 操作系统级虚拟化1 1 2 4应用程序级虚拟化1 2 2 5虚拟化实现主要技术1 3 2 5 1w i n d o w s 操作系统过滤驱动1 3 2 5 2w i n d o w s 下的虚拟磁盘1 7 2 5 3 写时拷贝机制,1 8 2 5 4 命名空间重定向1 9 2 6本章小结2 4 第三章操作系统层虚拟执行环境总体设计2 6 3 1系统概述2 6 3 2虚拟化思想方法2 8 3 3o s l v e e 系统总体框架2 9 3 3 1 系统框架设计2 9 3 3 2 平台应用及处理流程3 0 i v 目录 3 3 3 进程关联3 2 3 3 4 通信限制3 2 3 40 s l v e e 虚拟环境控制台3 4 3 5本章小结3 5 第四章操作系统层虚拟执行环境各模块设计3 6 4 1 文件系统虚拟化3 6 4 1 1w i n o d w s 文件系统虚拟化概述3 6 4 1 2w i n d o w s 文件系统虚拟化实现3 8 4 2 注册表虚拟化4 1 4 2 1 注册表虚拟化概述4 1 4 2 2 注册表虚拟化实现4 4 4 3内核对象虚拟化4 8 4 3 1内核对象虚拟化概述4 8 4 3 2 内核对象虚拟化实现5 0 4 3 3 其他内核对象的虚拟化5 2 4 4进程通信虚拟化5 3 4 4 1 进程通信虚拟化概述5 3 4 4 2 进程通信虚拟化实现5 4 4 5网络访问虚拟化5 8 4 5 1网络子系统虚拟化概述5 8 4 5 2 网络自系统虚拟化实现5 9 4 6守护进程管理虚拟化6 0 4 6 1 守护进程虚拟化概述6 0 4 6 2 守护进程虚拟化实现6 0 4 7 本章小结6 1 第五章虚拟执行环境评估6 2 5 1功能评估6 2 5 1 1 测试方案6 2 5 1 2 测试结果6 4 5 2 性能评估6 6 5 3本章小结6 7 第六章论文总结及展望6 8 v 目录 6 1论文总结6 8 6 2展望6 9 致谢7 0 参考文献7 1 攻硕期间取得的研究成果7 4 v i 厂一 图目录 图目录 图1 1w i n d o w s 系统框架简图2 图2 1、仆心嗄与虚拟机的关系图6 图2 2 全系统虚拟化示意图1 0 图2 - 3本地系统虚拟化示意图1o 图2 4 操作系统级虚拟化示意图1 1 图2 5 驱动程序的主要例程1 4 图2 6w i n d o w s 的层次驱动程序结构图1 5 图2 7 过滤驱动程序简图1 7 图2 8 虚拟磁盘结构图18 图2 9o s l v e e 重定向模块总体处理流程图2 0 图2 1 0i a t 表h o o k 框架图2 1 图2 1 1 内联函数钩子框架图2 1 图2 1 2s s d th o o k 框架图2 3 图3 10 s l 、,e e 系统框架图2 7 图3 2 应用程序请求重定向示意图2 8 图3 3o s l 、,e e 系统框架结构图2 9 图3 4o s l 、,e e 执行流程图3l 图3 5o s l v e e 进程关联流程图3 3 图4 1o s l 、,e e 文件系统虚拟化框架图3 7 图4 2 心m jc r b 玎e 请求重定向流程图3 9 图4 3 注册表操作函数执行流程4 3 图4 4z w c r e a t e k e y 函数虚拟化流程图4 6 图4 5w i n o d w s 内核对象组织结构4 9 图4 6z w c r e a t e e v e n t 虚拟化流程图5 1 图4 7z w o p e l l e v e n t 虚拟化流程图5 2 图4 8 消息虚拟化处理流程5 6 图4 9w i n d o w s 窗口可见性虚拟化5 7 v 图目录 图5 1 文件虚拟化之后c 盘情况6 4 图5 2 文件虚拟化之后e 盘情况6 4 图5 3 注册表虚拟化之后效果图。6 5 图5 4 任务管理器进程查看比较结果图6 6 v i i i 表目录 表目录 表2 1o s l v e e 虚拟内核需要处理的函数列表2 5 表4 1 用户请求与i t 主功能码对应关系3 7 表4 2 各种内核对象创建打开操作系统调用5 3 表4 3w 证d o w s 进程间通信机制5 3 表4 3 ( 续2 ) w i n d o w s 进程间通信机制5 3 表5 1 文件系统虚拟化测试方案表一6 2 表5 2 注册表虚拟化测试方案表6 3 表5 。3 操作系统调用资源评估数据6 7 厂一 第一章绪论 第一章绪论 虚拟化是一种专门用来抽象计算机资源的技术,该技术可以用来简化计算机 系统体系结构,以适应日新月异的i t 市场和技术。虚拟化通过资源整合和资源共 享,使计算机资源形成一种逻辑形式的新资源,这种新资源拥有更高的资源利用 率,而且更易于管理和扩展。因此,随着虚拟化技术的不断普及和创新,计算机 资源的利用率也越来越高,这些资源包括服务器资源、网络资源、存储设备资源、 数据资源、软件资源等。 1 1 虚拟化技术概述 虚拟化技术在i t 领域已经存在很长时间了,拥有不同形式的虚拟化,在提高 资源利用率方面发挥了重要的作用。单纯针对硬件资源而言,虚拟化包括内存资 源的虚拟化、c p u 虚拟化、存储设备资源的虚拟化,打印设备虚拟化等。本论文 主要讨论软件资源的虚拟化。 每一台计算机,都包括硬件资源( 如处理器、寄存器、各种i o 设备、磁盘、 内存等) 和软件资源( 如操作系统、应用程序) 。硬件资源为软件的执行提供硬件 基础,是操作系统和上层软件赖以工作的基础。软件资源通过函数接口访问各种 硬件设备。所有的软件资源中最重要的就是操作系统,操作系统是对计算机硬件 的首次扩充和改造,主要完成信息的保护和存取,资源的调度分配,以及并发活 动的控制等功能。w m d o w s 操作系统采用分层体系结构,下层为上层提供服务 接口,上层通过下层提供的接口访问底层资源。下图是一个计算机系统的分层体 系结构简图,如图1 1 所示。 由图1 1 可知,首先可注意到中间有一条线把操作系统的用户模式( u s e r m o d e ) 和内核模式( k e m e lm o d e ) 划分开。线上方代表了用户模式的应用程序, 线下方的组件是内核模式的操作系统服务。系统内核下方是硬件抽象层( h a l ) , h a l 主要用于屏蔽底层硬件细节,为操作系统访问控制硬件资源提供统一的接 口。地地下层是硬件资源,包括处理器、磁盘、内存、i o 设备等。 电子科技大学硕士学位论文 图1 1w 试d o w s 系统框架简图 b u l t e rl 锄p s o n 在1 9 9 2 年的图灵奖颁奖会上指出,“计算机科学中的任何问 题都可以通过在系统体系结构中添加一个新的中间层加以解决”【l 】,这种分层而 治的方案使层与层之间相互独立,并根据特定的接口进行通信。在计算机系统中 添加虚拟执行层( r t i l a l i z a t i o nl a y e r ) ,新添加的虚拟执行层可以将主机的硬件 资源进行分解以供多个虚拟机共享,同时可以接收虚拟机对资源的访问并将其映 射到真实的硬件上。虚拟执行层可以在计算机系统的不同层次添加,如图1 1 所 示的位置1 ,2 ,3 ,不同层次的虚拟执行层对应着不同类型的虚拟化技术: ( 1 ) 位置1 硬件虚拟层 位于操作系统与硬件设备之间。该虚拟化可以为上层软件包括操作系统提供 一个完整的计算机硬件系统,硬件虚拟层虚拟机与主机操作系统的接口即为处理 器指令。最初,硬件虚拟层虚拟机是为了弥补系统框架结构上的不足而诞生的。 随着技术的发展以及对虚拟机需求的提高,硬件抽象层虚拟机在提供强隔离功能 和安全控制等方面获得了广泛应用和长足的发展。比如v m w a r e 【2 】【3 1 ,m a l p c 【3 1 ,b o “4 1 ,q e i l l _ u 等都是这种类型的虚拟化产品。 ( 2 ) 位置2 - 操作系统虚拟层 位于应用程序和操作系统之间,截获并重新解释执行系统调用,i o 请求, 为其他进程提供一个模拟的操作系统环境。比如l i l l 1 1 ) 【v s e r v 一5 1 ,o p e n v z 【6 】等都 是这种虚拟化的代表产品。 ( 3 ) 位置3 一应用程序虚拟层 运行于用户态。其实就是一个对二进制代码进行解释执行的虚拟化环境。 不同层次的虚拟化具有不同的特性,主要体现在独立性( i s o l a 廿o ns 仃饥g m ) 、 资源需求量( r e s o u r c er e q u i r e i l l e n t ) 、性能( p e r f 0 1 m a i l c e ) 、可扩展性( s c a l a b i l 埘) 2 第一章绪论 和灵活性( f 1 e x i b i l i 锣) 【7 】等方面。 总体来说,虚拟执行层所处的位置越接近硬件,虚拟化的隔离性和透明性就 越高,但资源需求量也越大,灵活性也就越低;执行层位置越接近于应用层,虚 拟化的粒度就越小,运行所占用的系统开销也就越小,同时系统的隔离性就越低。 1 2 课题的研究意义及目的 虚拟机( v m ,v i r t u a lm a c h i n e ) 就是一个软件化的硬件资源,在同一台机器 上就可以同时运行多个相同的实体。每个实体之间相互独立,同时实体与支撑其 运行的主机系统( h o s t0 s ) 之间也是分离的。这样,运行于其中的应用程序就感 觉自己运行在真实的机器上。虚拟机在以下几个领域发挥着重要的作用【8 】【9 】【1 0 】: ( 1 ) 服务器整合( s e r v e rc o n s o l i d a t i o n ) :通过在服务器上安装虚拟机可 以达到整合分散的服务器资源,提高服务器硬件资源的利用率,降低维护成本。 ( 2 ) 系统迁移( s y s t e mm i g r a t i o n ) 1 1 :作为主机硬件资源的虚拟实现, 虚拟机可以在不同的主机之间自由移动。当硬件发生错误导致系统关闭时,通过 虚拟机的转移可以极大的减少迁移成本。 ( 3 ) 虚拟应用程序( v i r t u a la p p l i a n c e ) :将应用程序及其运行环境打包到 虚拟机里,存放到可移动设备中,这样移动用户就可以随时使用所需的应用程序, 而不用考虑运行环境的限制。 ( 4 ) 入侵与容错系统( i n t r u s i o na n df a u l tt o l e r a n c es y s t e m ) :将不可 信应用程序隔离在虚拟机中可以保护主机系统( h o s to s ) 的完整性。 ( 5 ) 调试与测试系统( d e b u g g i n ga n dt e s t i n gs y s t e m ) :程序开发者通过 虚拟机搭建的测试与调试环境,可以明显的提高调试和测试速度,同时能够防止 不稳定的应用程序破坏主机系统( h o s t0 s ) 的完整性。 针对当前复杂的互联网环境,恶意代码检测的要求进一步提高,开发一种简 单,扩展性好,易于管理,能够有效检测和发现恶意代码和恶意行为的虚拟环境, 势在必行。本文针对当前的这些问题,提出了一种操作系统层的虚拟执行环境。 1 3 课题背景 本文的研究课题是操作系统层虚拟执行环境( o s l v e e ,o p 麟咖gs y s t e n l 电子科技大学硕士学位论文 l e v e l r t u a le x e c u t i o ne i l v i r o 姗e n t ) ,是以电子科技大学木木木木实验室2 4 2 项目为 依托研究开发的,即:国家2 4 2 信息安全计划恶意代码与安全漏洞动态分析平台。 该项目主要为了解决大批量的恶意代码收集和分析工作,开发出能够辅导业 务人员进行恶意代码深入分析的半自动化工具包。其中涉及多项先进的技术,研 究汇编指令级虚拟执行引擎关键技术,提出基于代码执行监控的恶意程序分析模 型,解决了恶意代码中反跟踪与反调试难题;研究出恶意代码的动态粗粒度行为 分析和细粒度代码分析系统;开发出操作系统级的虚拟执行环境,将恶意代码的 运行、分析、调试过程隔离在虚拟环境中,保护了主机系统的完整性和安全性。 本课题的研究开发工作,主要是为了给该平台提供一个隔离于主机系统的虚 拟化执行环境,在运行和调试恶意程序时保证主机系统的完整性。 1 4 论文主要内容及组织结构 本课题围绕提出并实现一种新的操作系统层虚拟执行环境,借助命名空间重 定向技术【1 2 】、写时拷贝技术( c o w ) 1 3 】、文件系统过滤驱动技术,以虚拟磁盘为 依托,实现应用程序请求的重定向,达到虚拟执行环境与主机环境隔离的目的。 总结来说,本课题的主要内容有下面几个方面: ( 1 ) 通过命名空间重定向及过滤驱动开发技术,整合w i n d o w sn t 内核的各 种组件,通过重定向w i n d o w s 系统调用、w i n d o w s 库函数,内存访问接口等【1 4 】, 实现了一个包含虚拟文件系统、虚拟网络系统、虚拟注册表、虚拟进程间通信机 制、虚拟守护进程以及虚拟w i n d o w s 内核对象的“虚拟内核”( v i r t u a lk e r n e l ) 。 该虚拟内核能够提供应用程序访问系统资源的所有接口。 ( 2 ) 以开源的r a m d i s k 虚拟磁盘为依托,借助文件系统过滤驱动技术构建 o s l v e e 的虚拟文件系统。这样,虚拟执行环境中运行的所有应用程序的操作行为 都将作用在这个虚拟磁盘卷上,而不会影响主机系统( h o s t0 s ) 。 ( 3 ) 通过写时拷贝机制,执行环境中的写操作将被保存起来,而不立即执行 到主机系统中,保证了虚拟执行环境与主机系统之间的数据一致性。 本课题在结构组织上共分六章,内容安排如下: 第一章分析虚拟化技术的发展现状,介绍了课题研究的意义,提出开发一个 新的操作系统层的虚拟执行环境。 第二章概括了当前比较流行的虚拟化技术,包括硬件虚拟化,操作系统级虚 4 第一章绪论 拟化,应用程序级虚拟化。然后介绍了一些常用的虚拟化技术的原理,并在此基础 上分析了当前虚拟化发展的趋势。 第三章介绍了操作系统层虚拟执行环境的总体设计框架,包括实现虚拟化的 基本思想,系统总体工作原理及流程,以及在实现虚拟化时要注意的问题,比如 进程关联问题和资源控制问题。 第四章介绍系统各个模块的详细设计。介绍了如何利用命名空间重定向技 术、文件系统过滤驱动开发技术,写时拷贝技术实现文件系统、网络子系统、进 程间通信、系统服务、注册表以及内核对象的虚拟化。 第五章对虚拟执行环境进行评估。 第六章针对当前系统存在的缺点和不足进行总结和展望。 电子科技大学硕士学位论文 2 1 虚拟化发展现状 第二章虚拟化方法研究 i b m 于6 0 年代开始研究虚拟机技术,将虚拟机定义为“底层硬件的完全拷 贝”,其目标就是为软件资源,包括应用程序和操作系统的运行提供完全相同于硬 件系统的虚拟运行环境。跟虚拟机技术密切相关的一个概念就是虚拟机监控器 ( w m m ,n u a lm a d 曲em o n i t o r ) 【1 5 】【1 6 】。虚拟机监控器是实现虚拟计算机的功 能软件,比如订w a r e ,r t u a lp c 等都是运行在v m m 之上。该软件能够为虚 拟机抽象出底层的所有物理硬件资源。因为v m m 可以抽象底层的硬件资源,所 以可以支持多个虚拟机在同一个系统中运行。下图描述了v m m 与虚拟机的关系, 如图2 1 所示。 应用程序 操作系统 虚拟机1 应用程序 操作系统 虚拟机n 图2 1 订m 与虚拟机的关系图 如图2 1 所示,v m m 为操作系统的运行提供虚拟的硬件基础,这些虚拟硬 件包括处理器、内存、i o 设备、存储设备等。v m m 上可以同时运行多个操作系 统,这些操作系统通过、强n d 共享系统硬件资源,而且各个操作系统之间彼此隔 离,互不影响。同时运行于虚拟机1 操作系统中的应用程序p 1 ,与运行在虚拟机 n 操作系统上的应用程序p 2 也是完全隔离,彼此运行于独立的系统环境中,即使 应用程序p 1 因为运行时错误而导致系统崩溃,也不会影响到虚拟机n 上的操作 系统及其上运行的应用程序,具有很强的隔离性。 6 第二章虚拟化方法研究 2 1 1 虚拟机的主要分类 虚拟机( v i l t i l a lm a c 】血e ,又称h ) ,p e r v i s o r ) 1 1 7 】可以认为是在软件与硬件之间引 入的虚拟层,为应用提供独特的执行环境,屏蔽硬件平台的异构性、动态性以及分 布性,支持硬件资源的重复使用和共享,并为用户提供属于私人的低消耗、独立且 隔离的计算机环境。同时,为管理员提供集中管理各种硬件资源和软件资源的手 段。 针对w i n d o w s 的分层体系结构来说,w i i l d o w s 下的虚拟机相当于在系统中引 入一个新的层,该层能够截获上层软件对下层的接口调用,并对该调用做出新的 解释和执行,可以实现异构环境中的可管理,可共享以及可协同,并能够支持应 用程序的大规模的迁移,部署以及运行维护。 提到虚拟机,就必须要提到另外一个元素:运行于虚拟机之上的的操作系统, 如运行在n i l a lp c 上的l i n _ 1 1 ) 【系统。 在虚拟化发展过程中,随着需求的增加出现了多种形式的虚拟机,因此可以 按照不同的标准对虚拟机进行分类【1 8 】【1 9 】: ( 1 ) 按照虚拟机的运行支撑环境,可将虚拟机划分为经典型虚拟机和寄生型 虚拟机 如果虚拟机的运行支撑环境是操作系统,而虚拟机是作为操作系统中运行的 一个应用程序存在的,那么这种虚拟机就称为寄生型虚拟机,比如v m w a r e ,咖a 1 p c 等;如果虚拟机的运行支撑环境是硬件平台,则称这种虚拟机为经典型虚拟机。 比较典型的有i b m w 3 6 0 系统,剑桥大学开发的x e i l 【2 0 j 以及v m w a r e 公司的企 业级产品w a r ee s xs e r v e r 等。目前,寄生型虚拟机占绝大多数的市场份额, 而经典型虚拟机因为可以绕过操作系统而直接对硬件进行访问,所以在性能上占 有很大的优势。 ( 2 ) 按照虚拟化的规模不同可将虚拟机分为系统级虚拟机和进程级虚拟机 如果虚拟机只能为某个系统进程提供虚拟化的执行环境,则称这种虚拟机称 为进程级虚拟机,比如j 越厂a 虚拟机,s m a l l t a l k 等高级语言虚拟机【2 l 】。如果虚拟 机可以模拟整个计算机系统,则称这种虚拟机为操作系统级虚拟机,比如v m 协e 公司的胍w 硎( s 切_ _ t i o n ,m i c r o s o r 公司的咖a lp c 等。进程级虚拟机相对 于系统级虚拟机而言运行开销比较小,实现起来相对简单,但隔离性比较差。而 系统级虚拟机则可以为用户和应用程序提供更好的透明性、隔离性、可扩展性、 封装性以及可管理性。 7 电子科技大学硕士学位论文 ( 3 ) 按照虚拟机在分层系统体系机构中的位置,可将虚拟计划分为硬件级虚 拟机、操作系统级虚拟机、应用程序二进制接口级虚拟机以及a p i 级虚拟机 硬件级虚拟机位于操作系统之下,硬件设备之上,能够捕获c p u 指令,模拟 完全的硬件环境,比如v m w 鹏,m i a lp c ,b o c h ,q e m u 等;操作系统级虚拟 机位于操作系统和应用程序之间,通过重定向操作系统的系统调用,应用程序的 i o 请求实现系统资源的虚拟化,比如l i i m xv s e r v e r ,0 i p e nv z ,u s * m o d e l i n u 】【 等;应用程序二进制接口级虚拟机通过模拟其他操作系统的二进制接口,为该平 台上的应用程序运行提供运行环境。比如i j n x l 】下的w i n e 【2 引,可以为w i i l o d w s 下的应用程序在l i 姗x 系统中运行提供执行环境。对a p i 接口的重定向是a p i 级 虚拟机的主要实现技术,通过对a p i 接口进行捕获和解释执行,可以更改应用程 序的请求路径,实现请求访问的虚拟化。比如c y g w i i l 通过模拟p o s a p i 来支 持u 1 1 i x 下的应用程序运行于w i l l d o w s 平台上。对于远程桌面技术【2 引,这种技术 就是通过截获应用程序对图形用户界面函数的调用并重新解释执行实现的。 ( 4 ) 针对是否需要修改客户机操作系统可以将虚拟计划分为半虚拟化虚拟 机和全虚拟化虚拟机 如果虚拟机需要对客户机操作系统进行修改,则这种虚拟机称为半虚拟化虚 拟机( p a r a - v i r m a l i z a t i o n ) ,比如x e i l ,u s e r - m o d el i n u x 以及0 l p e l lv z 等;如果 不需要修改运行于虚拟机中的操作系统,则称为全虚拟化虚拟机 ( f u l l m a l i z a t i o n ) ,比如v i n w a r e ,r t u a lp c 等。全虚拟化虚拟机具有更好的 透明性,但是系统比较复杂。而半虚拟化虚拟机虽然透明性没有全虚拟化虚拟机 这么好,但是对于运行于虚拟机操作系统上的应用程序来说还是透明的,而且这 种虚拟机在实现上比较简单。 总的来说,虚拟机所在的位置越接近于硬件层,所实现的隔离性和透明性就越 高;其位置越接近于应用程序,虚拟化粒度越小,虚拟机运行时所占用的系统开 销也将越小。 2 1 2 虚拟机的主要特点 虚拟机可以为软件运行屏蔽硬件平台的细节,消除软件对硬件资源的独占,实 现软件运行时的分离性以及更好的实现硬件资源的共享。根据前面对虚拟机的分 析,得出虚拟机主要有以下几个特性: ( 1 ) 透明性( t r a n s p 锄m t ) 第二章虚拟化方法研究 软件运行于虚拟机中与运行在主机中没有什么区别,软件的运行时隔离、在 线迁移等功能都无须对软件做任何修改。虚拟机对硬件平台的支持,支持了软件 的跨平台运行。 ( 2 ) 隔离性( i s 0 1 a t i o ns 仃e 1 1 9 t 1 1 ) 同一台主机上可以运行多个虚拟机, 共享,同时也提高了系统资源的利用率。 实现了操作系统硬件资源和软件资源的 同时运行的多个虚拟机之间彼此互不影 响,各自可以安装不同的软件,而不用考虑软件的兼容性问题;也不用担心这个 虚拟机的运行失败会对其他虚拟机造成什么影响。同时,软件既可以运行在虚拟 机上,也可以运行在主机系统上,因为虚拟机的隔离性,虚拟机上运行的软件与 主机中运行的软件不存在交集。 ( 3 )封装性( e n c a p p s u l a t i o n ) 虚拟机在自己的虚拟磁盘空间中管理所有的软件和文件,通过这种封装,虚 拟机的安装、启动,复制、迁移,挂起、重启等操作都可以通过虚拟磁盘文件的 恢复实现。既降低了软件管理和配置的难度,同时也增加了软件的灵活性和便利 性。 ( 4 ) 可管理性( m a i l a g e a b i l i t y ) 虚拟机为用户操作和管理虚拟机提供了许多接口,用户可以通过这些函数接 口实现虚拟机的开机,关机,挂起,设置虚拟硬件的添加,修改,删除。通过编 程的方式控制虚拟机比手工控制具有更大的灵活性。 2 2 硬件级虚拟化 硬件级虚拟化位于操作系统与硬件设备之间,该层需要模拟硬件资源的全部 或者一个子集,该类虚拟化有b o c h s ,w a r e ,m a lp c ,x e n 等。 2 2 1全虚拟化( f u l l 咖a l i z a t i o n ) 全虚拟化利用软件将全部的指令集虚拟化【2 4 】,这样操作系统在虚拟机中运行 与在真正的硬件资源上运行完全没有区别。运行于虚拟机之上的系统统称为客户 机系统( g u e s to s ) ;直接运行于硬件资源上的系统称为主机系统( h o s to s ) 。与 半虚拟化技术相比,全虚拟化最大的特点就是不需要对操作系统做任何修改。客 户机系统与主机系统,主机系统与硬件之间的关系可以用图2 2 表示: 9 电子科技大学硕士学位论文 客户机系统 主机系统 虚拟机 j ej j f 硬件资源 图2 2 全系统虚拟化示意图 如图2 2 所示,客户机系统在虚拟机上运行的时候,虚拟机将客户机执行的 指令翻译成原始指令,并在真实的硬件上解释执行。b o c h s 虚拟x 8 6 指令集,能 够运行在不同的硬件平台上并能支持不同的操作系统,包括d o s ,w i n d o w s 和 l i n u x ;由于虚拟机上运行的系统的每个指令都需要由虚拟机来捕获并重新执行, 所以这种类型的虚拟机的性能负载比较高。 2 2 2 本地虚拟化( n a t i v e r m a l i z a t i o n ) 本地虚拟化虚拟机只将部分特权指令虚拟化,而对于一些非特权指令则允许 其直接在底层硬件中执行。这种特性明显的降低了翻译指令集( h s t m c t i o ns e t ) 【2 5 】所带来的性能负担。比如e m c 公司的v m w a r e 和m i c r o s o r 的m i a lp c 都是 这样类型的虚拟机。通过虚拟化处理器、内存、外围i 0 设备等硬件资源,这种 虚拟机可以在一台x 8 6 机器上运行多个不同的客户机操作系统。这种虚拟机结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脊髓损伤病人护理查房
- 塔里木职业技术学院《中华射艺》2023-2024学年第一学期期末试卷
- 宁夏回族自治区中学卫市第五中学2025届初三第二次诊断性考试语文试题含解析
- 辽宁装备制造职业技术学院《生物组学》2023-2024学年第二学期期末试卷
- 景德镇陶瓷职业技术学院《基础医学实验(一)》2023-2024学年第一学期期末试卷
- 上海欧华职业技术学院《国际结算与贸易融资》2023-2024学年第二学期期末试卷
- 云南科技信息职业学院《药物分析》2023-2024学年第一学期期末试卷
- 山西卫生健康职业学院《高级生物信息学》2023-2024学年第二学期期末试卷
- 秦皇岛市重点中学2025届高三下学期研七考试化学试题含解析
- 铜川职业技术学院《花纸设计与排版》2023-2024学年第二学期期末试卷
- DBJ15 31-2016建筑地基基础设计规范(广东省标准)
- 保险信息服务合同范本
- 老年人康乐活动-老年节庆活动组织策划
- 预防接种服务提质行动方案2-4-10
- 绿化带改停车位施工方案
- 绿化苗木组织供应及售后服务方案
- 2023-2024学年浙江省环大罗山联盟高一下学期4月期中物理试题(解析版)
- 合用变压器协议
- 护理人员岗位绩效考核评价标准
- 2024年郑州轨道工程职业学院单招职业适应性测试题库学生专用
- 2024年山西省太原市中考二模地理试卷
评论
0/150
提交评论