读《系统虚拟化-原理与实现》-第三章

虚拟化概述

概念:

  • 在虚拟环境里,虚拟机监控器(VMM)抢占了操作系统的位置,编程的物理机的管理者,同时向上层的软件呈现出虚拟的硬件平台,欺骗着上层的操作系统

  • 虚拟机可以看做是物理机的一种高效隔离的复制。

  • 敏感指令: 操作特权资源的指令,特权指令往往是敏感指令,但特权指令并不仅仅包含特权指令

  • 虚拟化漏洞: 如果一个体系存在敏感指令不是特权指令,那么就称其存在虚拟化漏洞

虚拟化漏洞是可以采用一些手段来弥补或避免的如:

  • 虚拟机所有指令都采用模拟方式实现
  • 修改guest 的操作系统,避免非特权的敏感指令
  • 二进制扫描修补替换掉非特权的敏感指令

处理器虚拟化

guest对虚拟处理器的期望:

  1. 指令集合与执行效果
  2. 可用的寄存器集合
  3. 运行模式
  4. 地址翻译
  5. 保护机制
  6. 中断、异常机制

指令的模拟

VMM运行在最高特权级,而guest运行在非最高特权级(但guest OS认为自己运行在最高特权级),当guest访问特权资源时,会触发异常,跳转到VMM设置好的处理函数中去(陷入VMM),通过软件方式模拟这条敏感指令。

  • VMM 会通过各种手段来保证敏感指令能触发异常(不被物理CPU所直接执行),从而陷入到VMM中进行模拟

  • 例如:

  1. guest访问CRO寄存器
  2. 处理器发现特权级别不符,抛出异常
  3. VMM截获这个异常,模拟这条指令

几种陷入方式:

  1. 基于处理器保护机制触发异常
  2. 虚拟机主动触发异常
  3. 异步中断

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能家居 (5) —— LD3320语音模块二次开发

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

java中事物的注解_编程式事务、XML配置事务、注解实现事务

Spring2.0框架的事务处理有两大类:1 编码式事务 , 这个不说.2 声明式事务 , 就说这个.声明式事务又有三种实现方法:1 (第一种) 最早的方法,用TransactionProxyFactoryBean,他是一个有AOP代理功能的FactoryBean.他返回的对象有事务.还要在spring的配置文件XML中配置,比较麻烦,不…

linux命令整理

1. mkdir ##创建目录 命令 【参数】 路径文件 参数: mkdir -p ##递归创建 mkdir -v ##显示创建目录的过程 示例: [rootXM ~]# mkdir /data [rootXM ~]# mkdir -pv test/{1..3}/{4..6} ##同时创建多个目录及子目录 mkdir: created di…

eclipse搭建SSH框架详解

2019独角兽企业重金招聘Python工程师标准>>> SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题。下面我介绍一下SSH框架搭建的全过程。 第一步:准备工作。 下载好eclipse,Struts2,Spring,Hibernate。…

龙芯派启用串口3-5

硬件平台:龙芯派二代 内核版本:linux-3.10 这几天在龙芯派上加了一个无线串口,决定采用串口3来连接串口,在龙芯派上执行 #ls /dev/ttyS* 发现只有ttyS0,查看设备树后发现其他串口的设备树节点都是有的&#xff0c…

智能家居 (7) ——网络服务器线程控制

目录网络线程控制代码inputCommand.hmainPro.csocketControl.c代码测试往期文章网络线程控制代码 inputCommand.h #include <stdio.h> #include <stdlib.h> #include <string.h> #include <wiringPi.h> #include <wiringSerial.h> #include &l…

vue插槽面试题_关于前端Vue框架的面试题,面试官可能会问到哪些。?

这年头&#xff0c;程序员面试都讲究坐姿&#xff0c;姿势不对&#xff0c;努力白费。参照下图&#xff0c;请同学们对号入座。回想一下&#xff0c;自己平时面试的坐姿&#xff0c;你在面试官眼里&#xff0c;大概是什么形象&#xff0c;可能是工程师&#xff0c;也可能是键盘…

测绘软件使用心得

作为测绘工程专业来说&#xff0c;学习使用测绘软件是每一个学生的必修课。在学校我们主要学习autoCAD和南方CASS。 对于CAD是目前使用最广泛的设计软件&#xff0c;广泛应用于建筑&#xff0c;机械&#xff0c;测绘设计等工作。我们主要学习了如何使用CAD来绘制基本图形。在画…

shell 脚本编程之for语句、if语句(2 )

一、bash条件测试&#xff1a;整数测试 [ expression ]字符测试 expression 条件测试 test expression test 根据表达式求值的结果返回 0&#xff08;真&#xff09;或 1&#xff08;假&#xff09;1、整数测试&#xff1a;数值比较-gt 大于-ge 大于或等于-eq…

龙芯3A4000 VNC配置

安装 yum install tigervnc-server -y 拷贝配置文件 cp /lib/systemd/system/vncserver\.service /lib/systemd/system/vncserver:1.service修改配置文件 vim /lib/systemd/system/vncserver:1.service替换< USER>为用户名 配置、启动vnc systemctl enable vncs…

智能家居 (6) ——语音识别线程控制

目录语音识别线程控制代码inputCommand.hmainPro.cvoiceControl.c代码测试往期文章语音识别线程控制代码 inputCommand.h #include <stdio.h> #include <stdlib.h> #include <string.h> #include <wiringPi.h> #include <wiringSerial.h>struc…

java程序设计精编教程第3版电子版课后答案_[java电子书] Java程序设计教程(第3版) PDF 电子书 百度云 网盘下载...

java自学网(www.javazx.com)-java论坛&#xff0c;java电子书推荐&#xff1a;《 Java程序设计教程(第3版)》- d5 C7 V4 o/ e/ Hjava电子书推荐理由&#xff1a;《Java程序设计教程(第3版普通高等教育十二五*规划教材)》讲解Java程序设计知识及其编程方法&#xff0c;包括Java语…

MIPS结构体传参

本文讲解了C语言运行在MIPS体系中结构体传参的情况 硬件平台&#xff1a;Loongson 3A3000 系统&#xff1a;uos 在《see MIPS run》中11.2.5中描述到&#xff0c;会将结构体成员压缩到各个arg寄存器中进行传递 “we have to pack the register with data to mimic the arran…

智能家居 (8) ——智能家居项目整合(网络控制线程、语音控制线程,火灾报警线程)

目录mainPro.c&#xff08;主函数&#xff09;指令工厂inputCommand.hvoiceControl.c&#xff08;语音控制&#xff09;socketControl.c&#xff08;网络线程&#xff09;控制工厂contrlEquipments.hbathroomLight.c&#xff08;浴室灯&#xff09;secondfloorLight.c&#xff…

mpu 配置内存空间_ARM存储器之:存储保护单元MPU

本文引用地址&#xff1a;http://www.eepw.com.cn/article/257010.htm15.4.2内存访问顺序当ARM处理器产生一个内存访问信号时&#xff0c;内存保护单位MPU将负责检查要访问的地址是否在被定义的域中。①如果地址不在任何域中&#xff0c;存储器产生异常。如果内核预取指令则MPU…

对象创建过程之二(类加载器)

2019独角兽企业重金招聘Python工程师标准>>> JAVA为我们提供了两种动态加载机制。 第一种是隐式机制。其实new一个对象和调用类的静态方法时&#xff0c;就是隐式机制在工作。 第二种是显示机制。显示的机制又有两种策略 第一种是用public static Class<?> …

Python_堆栈和队列

堆栈和队列 (1)堆栈&#xff0c;新放进去的先取出 #encodingutf-8 >>> stack [3, 4, 5] >>> stack.append(6) >>> stack.append(7) >>> print (stack) [3, 4, 5, 6, 7] >>> print (stack.pop()) 7 >>> print (stack) […

智能家居 (10) ——人脸识别祥云平台编程使用(编译libcurl库支持SSL,安装SSL依赖库libssl、libcrypto)

目录说明人工智能OCR识别平台介绍人脸识别接口购买编程打通OCR后台实现人脸识别&#xff08;ubuntu上实现&#xff09;问题发现编译libcurl库支持SSL安装SSL依赖库openSSL(使用工具wget)curl库重新配置&#xff0c;编译&#xff0c;安装开启SSL后重新编译人脸识别.C文件传入图片…

解决Centos 7 VNC黑屏

在配置Centos 7下VNC时发现root用户可以正常登陆VNC桌面&#xff0c;而普通用户VNC桌面黑屏&#xff0c;分析~/.vnc/xstarup 后发现是普通用户没有执行/etc/X11/xinit/xinitrc的权限 #!/bin/shunset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS /etc/X11/xinit/xinitrc #…

MFC控件(7):Split Button

VS2008中可以看到MFC有一个叫Split Button的控件,要想看它的效果,瞧下QQ那聊天窗口的"发送", "消息记录"这两个按钮就知道了.实际上就是还有点像Combo Box了.不过它的实现应该是button加menu.所以它的消息处理可以分开成button的处理和menu的处理 往dialog…