虚拟化原理与实现—基于软件的完全虚拟化课件.pptx

虚拟化原理与实现—基于软件的完全虚拟化课件.pptx

ID:57446862

大小:959.43 KB

页数:62页

时间:2020-08-19

虚拟化原理与实现—基于软件的完全虚拟化课件.pptx_第1页
虚拟化原理与实现—基于软件的完全虚拟化课件.pptx_第2页
虚拟化原理与实现—基于软件的完全虚拟化课件.pptx_第3页
虚拟化原理与实现—基于软件的完全虚拟化课件.pptx_第4页
虚拟化原理与实现—基于软件的完全虚拟化课件.pptx_第5页
资源描述:

《虚拟化原理与实现—基于软件的完全虚拟化课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Questions1、基于软件的完全虚拟化通过什么技术实现?2、内存虚拟化的目的是什么?3、在I/O虚拟化中,对于一个典型的PCI设备,可能包含的软件接口有哪些?1第四章基于软件的完全虚拟化小组成员:范宗勤郭一超陈蕊2基于软件的完全虚拟化4.1概述4.2CPU虚拟化4.3内存虚拟化4.4I/O虚拟化3概述在硬件设计未考虚到因虚拟化而导致的虚拟化漏洞时,首先考虑到基于软件方式实现虚拟化两种可行的基于软件的虚拟化解决方案:模拟执行——基于软件的完全虚拟化技术直接源代码改写——类虚拟化技术4模拟技术所有的虚拟化形式都可以用模拟来实现。三种常见的

2、模拟技术有:解释执行(最简单最直接的模拟实现方式)代码扫描与修补二进制代码不同体系结构的虚拟化比较困难,通常使用解释执行在一种硬件体系机构上模拟出另外一种不同硬件体系结构的运行环境同一体系结构模拟:多数指令不需要被模拟执行而是直接在硬件上执行。可以使用更高效的虚拟化方法:代码扫描与修补技术二进制代码翻译技术5模拟器架构6基于软件的完全虚拟化4.1概述4.2CPU虚拟化4.3内存虚拟化4.4I/O虚拟化7解释执行解释执行是最简单的一种模拟技术取一条执行,模拟出这条指令执行的效果,再取一条指令,周而复始。从一定程度上解决陷入再模拟不仅适用于模

3、拟与物理机相同体系结构的虚拟机,而且也适用于模拟与物理机不同体系结构的虚拟机8指令的正常执行与解释执行9a)正常执行b)解释执行*解释执行优缺点模拟取指/译码/执行软件流水线优点:容易实现复杂度低缺点:性能太差10解释执行的改进对于模拟与物理机相同体系结构的虚拟机很多敏感指令不需要模拟而可以直接在物理CPU上运行便有以下两种改进技术:扫描与修补二进制代码翻译11扫描与修补虚拟机中模拟的CPU与物理CPU体系结构相同时,大多数指令可以映射到物理CPU而直接执行扫描与修补:多数指令直接在物理CPU执行,把OS代码中的敏感指令替换为跳转指令或会

4、陷入到VMM中去的指令,一旦运行到敏感指令处控制流就会进入VMM中,由VMM代为模拟执行12扫描与修补流程VMM在虚拟机开始执行每段代码之前对其进行扫描,解析每一条指令,查找到特权指令和敏感指令补丁代码会在VMM中动态生成,通常每一个需要修补的指令会对应一块补丁代码敏感指令被替换成一个外跳转,从虚拟机跳转到VMM空间里,在VMM中执行动态生成的补丁代码当补丁代码执行完成后,执行流再跳转回虚拟机中的下一条代码继续执行13扫描与修补原理14*扫描与修补的优缺点优点:异常处理较简单:由于指令是被一条一条打补丁的,原代码块相对的位置没有改变因此,

5、发生异常时可以方便地找到异常指令对应的PC,然后将这个异常交给客户机OS处理就可以了实现较简单性能损失小:大多数客户机OS和用户代码可以直接在物理CPU上运行,故其性能损失也相对较小15扫描与修补的缺点由于特权指令和敏感指令都被模拟执行,各条指令的模拟执行时间可能会很短,但也可能会较长由于每个补丁都引入额外的跳转,这些跳转会降低代码的局部性由于扫描与修补技术直接在虚拟机内存中进行代码修补,须维护一份与补丁对于的原始代码的备份,以便在需要时将代码恢复原状16二进制代码翻译二进制代码翻译(BT技术)在VMM中开辟一块代码缓存,将代码翻译好放在

6、其中客户OS代码不会直接被物理CPU执行,所有要被执行的代码都在代码缓存中相比较而言,BT技术最为复杂,其在性能上同扫描与修补技术各有长短17二进制翻译的单位:基本块BT以基本块为单位翻译代码:表示只有一个入口和一个出口的代码块,这块代码只能从头进入,从尾退出,既不会有外界跳转跳入到代码块中间的某个地方,也不会有代码块中间的某个地方有外界跳转跳出该代码块模拟器动态、按需读入二进制代码进行翻译,将翻译好的目标代码存放在模拟器开辟的内存空间中(称为代码缓存)源代码中的指令与翻译后的代码用某种映射关系进行关联常用的是哈希表:由源代码的PC值通过

7、哈希函数计算查表得到其在代码缓冲区中的位置18翻译模拟器对读入的二进制代码不作限制应用程序的代码OS内核代码读入的二进制代码可能包含所有的X86体系结构的指令,模拟器将其翻译输出为X86指令的一个安全子集,即其中不包含特权指令和敏感指令,能够运行在用户态19二进制代码翻译BT技术在VMM中开辟一块代码缓存,将代码翻译好放在其中原始客户机OS代码不会直接被物理CPU执行,他们以基本块的形式组织模拟器先将其执行的基本块翻译成目标代码块,再转入目标代码块执行最后翻译接下来要运行的原始基本块20图4—8二进制代码翻译BT技术的难点BT技术在处理过

8、程中会遇到以下困难:自修改代码(SelfModifyingCode)自修改代码值程序会修改自身代码段的内容。一旦发生自修改操作,模拟器需要将代码缓存中对应已翻译的代码清除掉,对新写的代码重新翻

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。