看操作系统虚拟化原理总结篇——虚拟化概述原理
来源:互联网 发布:淘宝店铺营销亮点 编辑:程序博客网 时间:2024/06/07 23:16
1.如何判断一个架构能否虚拟化
先说下虚拟化的三个典型特征:同质,高效,资源受控。
再说下指令:系统中有一些操作和管理关键系统资源的指令被定义成特权指令,这些指令只能运行在最高特权级上。
另外还有部分指令,可能需要读取敏感寄存器,内存地址或者是IO指令,这些指令是敏感指令。显而易见,所有的特权指令都是敏感指令,然而所有的敏感指令并不一定是特权指令。 VMM能捕获到敏感指令,然后陷入再模拟,这就是普通的虚拟化手段。
总结:判断一个架构能否虚拟化,就在于是否能将敏感指令能否触发异常,从而捕获,不然就是虚拟化漏洞。
2.CPU虚拟化
作为虚拟化的三大部分之一,CPU的虚拟化占据着绝对位置:
具体来说,CPU虚拟化要完成的就是捕获客户机中的敏感指令,让非敏感或者非特权的指令能直接运行在物理CPU上,然后捕获敏感指令,达到陷入再模拟。
当客户机操作系统试图去访问关键资源的时候,该请求时不会发生在物理寄存器上。不管怎样,其宗旨就是让虚拟机里执行的敏感指令陷入下来,能被VMM模拟,而不要直接运行在硬件上。并且陷入一般是通过CPU的保护机制来实现的。
3.内存虚拟化
内存虚拟化的核心,就在于引入了一层新的地址空间-----客户机物理地址空间。所以这里就存在着两级页表的转换。GPA - GVA -HPA。
这里具体来说,就是Guest 维护着GPA和GVA的关系,然后VMM维护着GVA和HPA的关系。由于两次转换确实是太费资源,所以出现了改进技术,影子页表和TPT(扩展页表)。
影子页表会在后面的软件完全虚拟化中详细解释。
4.IO虚拟化
分为两部分,一部分是让Guest发现硬件设备,然后加载相关驱动。第二部分就是找到有效的办法来截获客户机操作系统对虚拟设备的访问。
0 0
- 看操作系统虚拟化原理总结篇——虚拟化概述原理
- 看操作系统虚拟化原理总结篇——硬件虚拟化中的CPU虚拟化
- 看操作系统虚拟化原理总结篇——软件虚拟化中的IO虚拟化
- 看操作系统虚拟化原理总结篇——硬件虚拟化中的IO虚拟化
- 看操作系统虚拟化原理总结篇——硬件虚拟化中的内存虚拟化-EPT
- 看操作系统虚拟化原理总结篇——基于软件的完全虚拟化——cpu
- 看操作系统虚拟化原理总结篇——基于软件的完全虚拟化——内存
- 看操作系统虚拟化原理总结篇——内存管理机制
- 看操作系统虚拟化原理总结篇——基本运行环境
- 看操作系统虚拟化原理总结篇——VMCS详解
- 看操作系统虚拟化原理总结篇——VMCS详解
- 操作系统虚拟化原理总结篇——VMCS详解
- 操作系统原理:虚拟地址
- KVM 虚拟化原理探究— overview
- KVM 虚拟化原理探究— overview
- 虚拟化原理
- [OpenStack] 虚拟化原理
- [OpenStack] 虚拟化原理
- UVA - 11014 Make a Crystal
- xampp 80 443端口冲突和MySQL Service detected with wrong path解决办法
- struts配置参数详解
- Linux学习笔记:虚拟机设置中的各种网络连接方式详解
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
- 看操作系统虚拟化原理总结篇——虚拟化概述原理
- Maven查找使用的包
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- opencv 图片基本处理(灰度化,反色,二值化,膨胀腐蚀以及ROI的copy等)
- C ++ 抽象工厂模型
- UVa989 - Su Doku(数独游戏)
- c 函数指针
- Android 开发指导文档(译)-- Bound Services
- 空间大地测量与GPS导航定位时间系统相互转换,格里高利时通用时儒略日,GPS时,年积日相互转换