浅析虚拟化技术

浅析虚拟化技术

1.经典虚拟化技术

2.CPU虚拟化

3.内存虚拟化

4.I/O虚拟化

1.经典虚拟化技术:特权解除,陷入模拟。risc架构应用经典虚拟化完全没有问题,但cisc架构,因为有19条敏感指令不属于特权指令范围(虚拟化漏洞),无法直接应用经典虚拟化技术方案。故产生三种虚拟化解决方案,全虚拟化、半虚拟化、硬件辅助虚拟化,在计算虚拟化中分别对应CPU、内存、I/O虚拟化。
全虚拟化:各vm将指令发出,由vmm主动去截获,对ring0级别的敏感指令由vmm进行模拟再去调用相应设备执行并反馈,对应其他级别的指令,直接调用硬件设备执行操作。类似于一个调查员的角色,需要自己主动去收集数据。
半虚拟化:修改guest os,让其意识到自己是虚拟化的,之后再发敏感指令时,通过hypercall调用函数,通过vmm去执行。可理解为vmm设置一个信箱,各vm调用硬件的指令直接发给信箱,vmm再根据接收到的信息执行。
硬件辅助虚拟化:硬件需要支持虚拟化,能够识别19条敏感指令。可理解为自动化分析设备,各vm将指令主动发送给硬件,由硬件进行自助筛选,分类,分析等,完全不需要人为参与。
2.CPU虚拟化:
全虚拟化:guest os发出的指令,vmm去截获,对于敏感指令,vmm模拟后发给硬件执行并反馈给vm。对于其他指令,直接调用硬件执行。
半虚拟化:对guest os进行修改,让其知道自己是虚拟化的,通过调用hypercall函数的方式执行敏感指令,vmm接收后执行。比全虚拟化的效率更高。
硬件辅助虚拟化:正常情况下,仅host os处于ring0级别,可以直接对硬件进行调度。在此种虚拟化情况下,cpu有两种模式,root模式:host os所处位置;非root模式:guest os所处位置。cpu执行host os和guest os指令时会进行模式的切换。
3.内存虚拟化
内存虚拟化就是对物理内存进行统一管理,分成多个虚拟内存供vm使用,最核心的是引入PA(客户机物理内存地址之)的概念,vm运行在vmm为其提供的VA,VA(客户机虚拟内存地址)与PA的对应关系存储在vmm之上。PA再与MA(机器内存地址)对应找到最终的物理内存地址空间。
通过三种内存复用技术(内存共享、内存气泡、内存置换),实现对物理内存的分时分段调用。
4.I/O虚拟化
全虚拟化:guest os发出的i/o指令,由vmm去捕获,模拟、响应。vmm要同时响应多台vm的io请求,严重消耗cpu资源,效率较低。
半虚拟化:类似xen架构,出现一台特权虚拟机,用于接收并转发其他vm的I/O指令,
在guest os端安装前端驱动,通过对接特权虚拟机上的后端驱动,直接将I/O指令发给硬件设备,进一步提升效率。
硬件辅助虚拟化:将I/O设备驱动直接安装到vm上,vm可直接调用硬件设备。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值