CPU虚拟化技术介绍

十月飞翔
• 阅读 865

虚拟化的三个条件:等价性,高效性和资源控制。这三条是针对VMM(Virtual Machine Manager)说的。

陷入和模拟模型 处理器分为两种运行模式:系统模式和用户模式。CPU指令对应分为特权指令和非特权指令。

陷入和模拟模型下,虚拟机用户程序仍然运行在用户模式下,虚拟机的内核也运行在用户模式,成为特权级压缩(Ring Compression)。这种模式下,虚拟机的非特权指令直接运行在处理器上。执行特权指令时会触发处理器异常,从而陷入VMM中,由VMM代理虚拟机完成系统资源的访问----模拟。

X86架构虚拟化的障碍 x86架构并不是所有的敏感指令都是特权指令。---- 解决办法是静态翻译和动态翻译。翻译是指对敏感指令进行翻译,静态是对可执行文件的指令进行翻译,动态翻译是以代码块为单元动态修改二进制代码。

VMX 为了从硬件层面解决x86架构的虚拟化问题,intel开发了VT技术支持虚拟化,为CPU增加了Virtual-Machine Extensions, 简称VMX。

启动VMX支持后, CPU提供两种运行模式:VM Root Mode和 VMX non-Root Mode, 每种模式都支持ring0 ~ ring3 . VMM运行在 Root Mode, VM运行在non-Root Mode。Guest无需再采用特权压缩方式,Guest kernel直接运行在VMX non-Root Mode的ring0种。

这个模式的好处:

Guest用户空间的系统调用直接陷入Guest模式的内核空间,不再陷入Host模式的内核空间。 对于外部中断,会触发CPU从Guest模式退出到Host模式,Host内核处理外部中断后再重新切入Guest模式。 不再是所有的特权指令都会导致处于Guest模式的CPU会发生VM exit,只有敏感指令才会。因为不是所有的特权指令都需要VMM来处理。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
1年前
Hadoop完整搭建过程(三):完全分布模式(虚拟机)
1完全分布模式完全分布模式是比本地模式与伪分布模式更加复杂的模式,真正利用多台Linux主机来进行部署Hadoop,对集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上,这篇文章介绍的是通过三台虚拟机进行集群配置的方式,主要步骤为:准备虚拟机:准备虚拟机基本环境ipHost配置:手
Wesley13 Wesley13
1年前
ARM与X86架构的对决
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出
Stella981 Stella981
1年前
Centos 7 忘记管理员root密码的解决办法
文章目录方法一:通过救援模式重置root密码方法二:使用单用户模式重置root密码当虚拟机多的时候经常可能会忘记root密码,这时候我们就会去虫子root密码这里介绍两种重置Centos7系统root密码的方法方法一:通过救援模式重置root密码1、在系统开机
Stella981 Stella981
1年前
Nginx从安装到虚拟主机、https加密、重定向的设置
编译前的设置:在源代码文件中把版本号注释掉,这是为了防止针对特定版本的恶意攻击关闭编译时的调试模式解决编译前的依赖性进行配置参数:对参数进行解读:编译和安装:做软链接方便调用:创建nginx用户nginx配置文件主要分为4部分:main(全局设置)main部分设置的指令将影响其他所有设置server(主机设
Stella981 Stella981
1年前
PHP入门教程之手把手编写自己的PHP MVC框架
1什么是MVCMVC模式(ModelViewController)是软件工程中的一种软件架构模式。MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。PHP中MVC模式也称WebMVC,从上世纪70年代进化而来。MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并
Stella981 Stella981
1年前
JVM中即时编译器JIT与解释器并存
一.学习目标1.了解解释器与编译器的概念与作用。2.知道jvm中三种执行模式。3.了解热点代码。二.解释器模式与编译器模式以及混合模式  字节码文件通过类装载器装载,被分配被分配到JVM的运行时数据区,然后会被执行引擎执行。执行引擎以指令为单位读取Java字节码。它就像一个CPU一样,一条一条地执行机器指令。每个字节码指令
Stella981 Stella981
1年前
Linux chmod命令详解
chmod改变一个或多个文件的存取模式(mode)chmod\options\modefiles只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以whoopcodepermission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定
Stella981 Stella981
1年前
Pig安装及本地模式测试,体验
Pig是Apache的一个开源项目,用于简化MapReduce的开发。研究了一段时间,略有心得。系废话不多说,我们直接步入实际测试。 Pig的运行有两种模式,本地单击模式和集群模式。我目前只是测试学习,是为了检验Pig的运行流程以及学习语法,没必要使用分布式模式,分布式模式下也都是大同小异的。 我的环境:   1.系统:Ubuntu12.
迁移速度与计算性能兼得!天翼云DirtyLimit技术大显身手
虚拟机技术的快速发展使系统迁移变得更加灵活且多样化,其广泛应用也促使用户对虚拟机迁移速度和性能影响提出了更高要求。弹性计算虚拟化团队创新研发DirtyLimit虚拟机迁移加速技术,能够在保证读vCPU性能几乎不下降的情况下,有效缩短虚拟机迁移时间,为用户打
天翼云云主机上搭建FTP服务最佳实践
天翼云用户在云主机上架设FTP服务器后,在VPC安全组里配置开放了21端口却发现仍然从外网连接不上FTP服务。这是由于FTP协议有它的特殊之处,本文将介绍在天翼云云主机上配置FTP服务器的难点。FTP协议的数据连接分为主动模式和被动模式两种方式,FTP默认使用主动模式。在主动模式下客户端随机开启一个大于1024的端口N,这里我们假定是12345端口吧,向服
十月飞翔
十月飞翔
Lv1
有的东西终究还是要失去,那我宁愿从来都未拥有过。
41
文章
0
粉丝
0
获赞