《系统虚拟化技术.ppt》由会员分享,可在线阅读,更多相关《系统虚拟化技术.ppt(20页珍藏版)》请在三一办公上搜索。
1、系统虚拟化技术,Virtual Machine is a fully protected and isolated copy of the underlying physical machines hardware-IBM,姜辉 2011-1-4,提纲,虚拟化技术简介回顾x86体系结构虚拟化技术分类虚拟化在网络安全领域的应用,虚拟化技术简介,诞生于60年代的IBM system/360 Model 40 VMM1999年Vmware展示了第一款基于X86体系结构的虚拟机2005年Intel 和 AMD公司分别在芯片上提供了对虚拟化的支持,回顾x86体系结构,X86体系结构回顾系统分为四个特权级
2、 用户指令和系统指令用户指令:计算系统指令:资源管理操作系统结构回顾将内存空间分为用户态和内核态 用户态使用特权级3,内核态使用特权级0,回顾x86体系结构,Goldberg和Popek论证了可虚拟化的3条件 等效性。除一些例外,虚拟机上的任何程序的执行行为必须和它在硬件上直接运行时相同高效性。所有的无害必须在本地硬件上直接执行而不需要VMM的干预(注:对于系统管理不产生影响,即非特权指令)资源控制。VMM拥有对所有资源的控制。任何客户软件都不能改变VMM对它分配的资源份额。高效VMM必须满足的条件敏感指令集是特权指令集的子集,回顾x86体系结构,X86体系结构虚拟化的挑战指令:处理器不支持虚
3、拟化 部分敏感指令不属于特权指令I/O设备:PC机上设备多样性内存:减少多级页表查询的时间开销,回顾x86体系结构,敏感指令的一个例子(popf)作用是在内存栈顶弹出一个值,将堆栈指针加2,并将值存储到EFLAGS寄存器的低16位用户态运行没有任何操作 内核态运行产生实际的操作,虚拟化技术分类,全虚拟化技术操作系统辅助的全虚拟化(VMware Workstation)硬件辅助的虚拟化技术(xen3.0之后、VMware ESX)纯指令模拟的虚拟化技术(Qemu)半虚拟化技术Xen,VMware ESX Server 3.5 之后支持半虚拟化,操作系统辅助的全虚拟化,指令的虚拟化用户指令直接运行
4、敏感指令翻译执行特权指令异常处理存储器的虚拟化SPT(影子页表)I/O设备的虚拟化利用操作系统帮助来处理外部设备,操作系统辅助的全虚拟化之内存虚拟化,SPT(影子页表)Guest OS Logic Address-Physical AddressVMM Physical Address-Machine Address TLB(旁路转换缓冲)用来减少地址转换中对内存的访问,操作系统辅助的全虚拟化之I/O设备的虚拟化,宿主操作系统支持的I/O设备的虚拟化VMM拦截Guest OS 的I/O操作VMApp在主操作系统代替Guest OS执行I/O操作VMM接收到的中断信号转到主操作系统下处理VMDr
5、iver控制VMM和主操作系统之间的切换,硬件辅助的全虚拟化,指令的虚拟化用户指令直接在硬件上执行部分特权指令直接执行(VMX non-root)部分特权指令转到VMM模式下执行(VMX root)存储器的虚拟化影子页表(硬件上没有提供支持的内存虚拟化技术)NPT(AMD硬件支持的存储器虚拟化)EPT(Intel硬件支持的存储器虚拟化)I/O设备的虚拟化指令模拟(使用QEMU的模拟技术)Intel VT-d和AMD IOMMU,硬件辅助的全虚拟化之指令虚拟化,Guest OS内核运行在Ring 0,应用程序运行在Ring 3运行部分指令由硬件自动产生异常一些指令无条件产生异常根据VMCS中配置
6、来产生异常(一些指令和事件)VMCS控制VMX root与VMX non-root之间的切换,半虚拟化,指令的虚拟化 将敏感指令替换为超级调用将在用户态运行产生异常指令由VMM代替执行存储器虚拟化SPT(影子页表)I/O设备虚拟化事件通道,半虚拟化之设备虚拟化,Domain0直接访问硬件资源的操作系统DomainU通过前端驱动访问设备VMM为DomainU和Domain0建立事件通道,虚拟技术总结,指令虚拟化软件模拟QEMU混合使用硬件辅助的虚拟化内存虚拟化SPTEPT或NPTI/O设备虚拟化仿真设备模型(Qemu,Xen)直接分配模型(硬件帮助)虚拟设备模型宿主操作系统辅助,虚拟化在安全方面的应用,虚拟机满足安全的2个条件隔离隔离不安全的域容错性较高管理(分级来实现)高特权,Qubes操作系统的设计,VM被分为2类AppVMs:被用来运行用户应用程序。如浏览器SystemVMs:用来提供系统范围的服务。如网络和存储,Ether:恶意代码行为分析系统,Ether相比于其它分析系统的特点特权级高透明性较好(D(E)=D(PA)T(P)=T(PA)),讨论和指正 谢谢!,