zoukankan      html  css  js  c++  java
  • VTx技术手册杂记

    1.开启和进入VMX操作模式.

      @设置CR4寄存器的 bit 13.即 CR4.VMXE = 1 -->Enable

      @执行vmxon 指令,进入VMX root操作状态.

       (如果 CR4.VMXE = 0 ,执行vmxon 指令会导致一个无效指令操作)

      @执行vmxoff 指令,离开VMX root操作状态.

      @执行完vmxoff 指令后,被置位的 CR4.VMXE会被设置为 0 .

    2.在执行 vmxon 指令前,应当分配 4kb 内存区域,使得处理器支持VMX操作.

    3.VMX操作状态限定value只能加载到 CR0和CR4 寄存器中.

        而且以下bits必须被设置为1:

        CR0.PE,CR0.NE,CR0.PG 和 CR4.VMXE.

        @这也指明VMX操作状态只支持页保护模式,

           所以guest software 不能运行在非页保护模式和实模式下.

    4.VMCS--虚拟机控制结构,来封装所有虚拟机需要维护的信息.

            VMCS由以下指令来操作:

            vmclear:清空VMCS结构

            vmptlrd:修改VMPTR指针

            vmread:读取VMCS

            vmwrite:写入VMCS

    5.当前运行的虚拟机的VMCS通过一个VMPTR指针来指定,该指针包含4kb边界对其的VMCS物理存储地址.

    对应不同虚拟机的多个VMCS结构都能被激活,但每次只允许一个VMCS结构在给定的Processor上运行.

    6.VMCS的基本格式:

    VMCS中保存着各种不同种类的信息,为guest OS 和 host OS 保存的状态信息,

    不再限于传统的结构状态,还包括了像segment寄存器等结构隐藏部分的信息,

    在保持虚拟机执行行为和普通机上的执行行为一致.

    VMCS由六个部分组成:

    @ 状态域:

    1.Guset-State Area --> #寄存器状态  #中断状态

        : 当VM exits 和 load VM entires 的时候,将处理器状态保存在 guest-state area.

    2.Host-state area --> #寄存器状态

        : 当VM exits的时候,处理器从Host state area 加载状态到自身.

    @控制域:

    3.VM-Execution control filelds (VM运行控制) --> #Pin-based 运行控制 #Processor-based 运行控制. #位图域

        :这个域控制着处理器在VMX non-root 操作状态下的operation.

    #Pin-based 运行控制 (异步事件)

            @ Bit 0:set 1,外部中断存在.引发 VM exits    

            @ Bit 3:set 1,NMI 存在.引发 VMExits

    #Processor-Based 运行控制 (同步事件)

    4.VM-entry contorl filelds:(VM进入控制) --> #控制位图 #MSR控制 #事件引发的控制

        :这个域控制VM的进入

    5.VM-exit control filelds:(VM退出控制) --> #控制位图 #MSR控制

        :这个域控制VM的退出

     @VM退出信息:

    6.VM-exit information filelds. (VM退出信息) -->#VM退出信息 #向量化事件退出信息 #取决于事件传送 #取决于指令执行

        :这个域保存VM exits时的信息.并且描述引发 VM exit的原因. 这个域read-only.

  • 相关阅读:
    关于Idea中右边的maven projects窗口找不到了如何调出来
    如何解决IntelliJ idea的maven工程提示的Cannot Resolve Symbol
    代码战争
    golang学习笔记----并发
    golang --学习笔记 运行时间计算
    golang ---timeb
    go ---MQTT client
    golang --strings
    Windows ----tasklist/taskkill
    转Tasklist(windows)
  • 原文地址:https://www.cnblogs.com/coltor/p/2208048.html
Copyright © 2011-2022 走看看