继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

硬件虚拟化较纯软件虚拟化的优势

三国纷争
关注TA
已关注
手记 288
粉丝 50
获赞 175

CPU硬件虚拟化

传统处理器

传统的处理器通过选择不同的运行(Ring 特权)模式,来选择指令集的范围,内存的寻址方式,中断发生方式等操作。

硬件虚拟化处理器

在原有的Ring特权等级的基础上,处理器的硬件虚拟化技术带来了一个新的运行模 式:Guest模式[1],来实现指令集的虚拟化。当切换到Guest模式时,处理器提供了先前完整的特权等级,让Guest操作系统可以不加修改的运行在物理的处理器上。Guest与Host模式的处理器上下文完全由硬件进行保存与切换。此时,虚拟机监视器(Virtual Machine Monitor)通过一个位于内存的数据结构(Intel称为VMCS, AMD称为VMCB)来控制Guest系统同Host系统的交互,以完成整个平台的虚拟化。

IO虚拟化

传统的IO操作

传统的操作系统通过硬件MMU完成虚拟地址到物理地址的映射。

虚拟化传统IO实现

在虚拟化环境中,Guest的虚拟地址需要更多一层的转换,才能放到地址总线上:

Guest虚拟地址 -> Guest物理地址 -> Host物理地址
             ^               ^             |               |
            MMU1            MMU2

其中MMU1可以由软件模拟(Shadow paging中的vTLB)或者硬件实现(Intel EPT、AMD NPT)。MMU2由硬件提供。

IO虚拟化技术

系统的IO虚拟化技术,通常是VMM捕捉Guest的IO请求,通过软件模拟的传统设备将其请求传递给物理设备。一些新的支持虚拟化技术的设备,通过硬件技术(如Intel VT-d),可以将其直接分配给Guest操作系统,避免软件开销。

[1]X86处理器的生产厂商有自己的称谓,比如英特尔将Guest模式称为non-root operation,与之相对的是root operation,本文称为host模式。



作者:SophieSg
链接:https://www.jianshu.com/p/d24dfd277689


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP