zoukankan      html  css  js  c++  java
  • 处理器虚拟化——VMX

    Intel提供3个层面的虚拟化技术(Intel Virtualization Technology)
      1.基于处理器的虚拟化技术(Intel VT-X) 全称为 Virtualization Technology for x86
      2.基于PCI总线域设备实现的I/O虚拟化技术(Intel VT-D) 全称为Virtualization Technology for Directed I/O
      3.基于网络的虚拟化技术(Intel VT-C) 全称为Virtualization Technology for Connectify

      VT 是对资源的虚拟化管理的结果
      在CPU端的虚拟化里 实现了VMX(Virtual-Machine Extensions,虚拟机扩展)架构
      包含两种角色环境 VMM(Virtual Machine Monitor,虚拟机监管者)host
      VM(Virtual Machine,虚拟机)guest
      guest端软件访问的资源受到VMM的监管

    VMM通过EPT(Extend Page Table,扩展页表)来实现“guest端物理地址到Host端物理地址”的转化
    使得Guest访问到其他的物理区域
    在开启EPT机制下 会产生两个地址概念:GPA(Guest Physical Address) 和 HPA(Host Physical Address)
    HPA 真正的物理地址

    在VMX架构下 至少需要实现一个“VMXON region” 以及 “VMCS region”的物理区域
    VMXON区域对应于VMM VMM使用VMXON区域对一些数据进行记录和维护
    每个VM需要对应自己的VMCS(VIrtual Machine Structure 虚拟机控制结构)
    VMM使用VMCS来配置VM的运行环境 以及控制VM的运行


    检测VMX支持
    VMX支持 检测CPUID.01H:ECX[5].VMX位来确定是否支持VMX架构 1表示支持

    开启VMX进入允许
    要开启VMX operation模式 必须先开启CR4.VMXE控制位 1表示开启

    VMX root operation模式处理器的CPL(Current Privilege Level) 必须为0 VMM运行的环境
    VMX non-root operation VM运行的环境

    root ----------> non root VM-entry
    non-root ---------> root VM-exit


    导致VM exit发生的三大类途径如下。
    1) 执行无条件引发VM exit的指令。包括CPUID,GETSEC,INVD与XSETBV指令以及所有的VMX指令(除了VMFUNC指令)
    2) 遇到无条件引发VM exit的未被阻塞的事件。例如,INT信号,SIPI消息等。
    3) 遇到VMM设置引发VM exit的条件,包括执行某些指令或者遇到某些事件发生。

  • 相关阅读:
    js预编译
    JS防抖和节流模式的实际应用
    常见的几种数组去重的方法,总有一种适合你~
    调用微信扫一扫功能,踩坑'invalid signature'
    如何快速的vue init 属于自己的vue模板?
    如何做到在webpack打包vue项目后,在外部动态修改配置文件
    vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序克隆clone
    js解析URL参数
    vue复选框 模拟checkbox多选全选,vue页面加载屏蔽花括号
    js毫秒转换天时分秒/动态倒计时
  • 原文地址:https://www.cnblogs.com/yifi/p/6580349.html
Copyright © 2011-2022 走看看