Intel VT-x 基本概念
看IaaS 资料时,捎带研究下硬件虚拟化,主要参考《基于intel VT-x 的Xen 全虚拟化实现》,《intel 开发手册 第三卷 19/20章》
Intel VT 是intel X86架构的CPU硬件虚拟化技术,新增两种模式:
- VM root: 即虚拟机管理系统运行模式;
- VM non root:即虚拟机运行模式;
如下图:

VMXON、VMXOFF用以实现打开或关闭虚拟化功能;
VM Exit和VM Entry 用以实现non root和root之间的切换;这种转换被VMCS(VM Control Structure)这个数据结构控制,对每一个虚拟CPU都会对应一个VMCS。
VMCS包含六个域,分别是:
- Guest-State Area: 处理器状态在VM Exit时被保存,在进入VM Entry时被加载,即退出non root时保存客户机状态;
- Host State Area: 处理器状态在VM Exit被加载;
- VM Excution Control Field,定义vm在non root下的执行行为,哪些指令会切换到root;
- VM Entry 控制域
- VM Exit 控制域
- VM Exit 信息域,记录上一次VM Exit信息
举例Xen:
当需要执行一些特权指令时(如I/O控制访问),切入root模式,Xen取得控制权,通过VMCX中的信息得知VM Exit的原因,调用vmx_vmexit_handler执行;
Intel VT-x 基本概念的更多相关文章
- Intel VT入门
前言 传说中的VT貌似很神秘的样子,关于VT入门的资料又很少,于是研究了一番 由于资源有限,自身水平亦有限,并且是闭门造车之作,如有错误的地方请指正,不胜感激! 关于VT可以先参考海风月影写的 ...
- intel vt
EPT和VPID技术是内存虚拟化技术, 是页表扩充技术Extended Page Table (EPT) 的缩写, 是VT-x技术的一部分. 内存虚拟化的主要任务是实现地址空间的虚拟化,内存虚拟化是通 ...
- Intel FPGA Clock Region概念以及用法
目录 Intel FPGA 的Clock Region概念 Intel 不同系列FPGA 的Clock Region 1. Clock Region Assignments in Intel Stra ...
- 虚拟机出现intel vt -x 处于禁用状态打不开处理方式
处理方式 . 1 进入bios 以华硕主板为例 进入高级模式找到cpu虚拟技术 打开虚拟技术支持 其它电脑找到这个
- OpenStack若干概念
近期在部署OpenStack时涉及到各个服务之间的诸多概念,这里简要记录其中的一些作为备忘. 服务(service) 在OpenStack中,一个服务有若干端点,用户通过端点访问服务并使用服务提供的功 ...
- KVM/QEMU/qemu-kvm/libvirt 概念全解
目录 目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用 前言 如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会 ...
- Kvm --01 虚拟化基础概念
目录 1. 虚拟化基础概念 01. 什么是虚拟化? 02. 为什么要用虚拟化? 03. 虚拟化在企业中的应用场景? 04. 虚拟化软件介绍 05. Kvm介绍 2. 安装部署Kvm 3. Kvm虚拟机 ...
- 用x86的模拟器内核记得安装intel的haxm
Android 模拟器一直以运行速度慢著称, 本文介绍使用 Intel HAXM 技术为 Android 模拟器加速, 使模拟器运行度媲美真机, 彻底解决模拟器运行慢的问题. Intel HAXM ( ...
- 虚拟化之intel
英特尔VT具体包括分别针对处理器.芯片组.网络的VT-X.VT-D和VT-C技术. 处理器:英特尔虚拟化技术(英特尔VT-x),包括英特尔虚拟化灵活迁移技术(Intel VT FlexMigratio ...
随机推荐
- 选择什么样的DOCTYPE
- ansible-playbook
一.ansible-playbook介绍: playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task ...
- Docker-3:Data Volume
Sometimes, applications need to share access to data or persist data after a container is deleted. ...
- C#实现:给定任意数字,输出在该数字下所有()括号的集合
class Program { static void Main(string[] args) { getPairs(, , , , ""); Console.ReadKey(); ...
- C++调用C函数
http://blog.csdn.net/imcainiao11/article/details/7369447 前言:以前见到extern "C"这样的语句,只是简单地知道跟外部 ...
- STL库的内存配置器(allocator)
正在学习中,如果有错,还请多多指教,根据不断的理解,会进行更改,更改之前的样子都会保留下来,记录错误是最大的进步,嗯嗯! 具有次配置力的SGI空间配置器(SGI是STL的一种版本,也有其他的版本) 这 ...
- C#中的using和yield return混合使用
最近写代码为了为了省事儿用了几个yield return,因为我不想New一个List<T>或者T[]对象再往里放元素,就直接返回IEnumerable<T>了.我的代码里还有 ...
- 年月日 生日 js插件
<script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min ...
- CSS有三种基本的定位机制
CSS有三种基本的定位机制:普通流,浮动和绝对定位. 普通流:在普通流中元素框的位置由元素在html中的位置决定, 1.元素position属性为static或继承来的static时就会按照普通流定位 ...
- 详解在Visual Studio中使用git版本系统[转]
这篇教程的预期,是希望没有任何版本使用基础的新手也可以掌握,所以细节较多,不当之处,欢迎指正. 一 .安装 git 开发工具 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了 ...