做虚拟化相关的工作也有一段时间了,抽出时间把做过的项目和常用的技术梳理一下,能加深理解也能提高。

这篇文章本来打算和以前一样用英文来写,发现太过于耗费时间,毕竟不是母语写作,还是有点难度的。

这篇文章主要总结和介绍一下关于VMM的分类:

按照虚拟平台分类, 可以分为全虚拟化(Full Virtualization)和半虚拟化(Para Virtualization)。

1)全虚拟化:简单来说,就是无需对运行在虚拟化平台上的OS做任何修改;

1,软件辅助的全虚拟化

常见做法就是优先级压缩(Ring Compression)二进制代码翻译(Binary Translation)。

      优先级压缩: 简单来说就是让guest OS跑在较VMM的ring 0 低的优先级ring 1 上,当需要执行特权指令时就触发异常,被VMM截获。

二进制代码翻译:我的理解就是VMM对于guest的二进制代码,发现需要处理的guest指令就将其翻译成支持虚拟化的指令。

2,硬件辅助完全虚拟化

软件辅助的虚拟化,就相当于在系统上打补丁,x86厂商尝试在硬件的层面来改善这个问题,就是在硬件本身加入足够的虚拟化功能,

可以截获操作系统对于敏感资源和敏感指令的操作,从而向VMM报告异常。

比如说intel的VT-x, 在处理器中引入一个特殊的模式,操作系统一旦进入该模式,无法察觉该模式,但是任何操作都会被该模式报告VMM。

2)半虚拟化:在源码级别修改指令以回避虚拟化漏洞,简单来说,就是运行在虚拟化平台上的OS是被动过手脚的。

典型的做法就是修改OS的相关处理器代码,让出ring 0 ,或者定制指定的I/O协议,以期提高读写效率。

按照VMM的实现架构分类,可以分为Hypervisor模型、宿主模型和混合模型。

1)Hypervisor模型

在这种架构里面,VMM可以视为一个具有虚拟化功能的操作系统,即管理物理资源和虚拟环境的创建、管理。

优点: 效率高;  缺点:只支持部分型号设备,需要重写驱动或者协议。

典型产品:VMware ESX server3, KVM

2)宿主模型

宿主机OS管理物理资源,VMM作为宿主机OS的一个独立的内核模块来提供虚拟化功能。

VMM通过调用宿主OS的相关服务来获取资源,创建出来的虚拟机也作为宿主OS的一个进程来参与调度。

优点:个人理解就是充分利用现有的OS的device driver,无需重写;物理资源的管理直接利用宿主OS来完成。

缺点: 效率不够高,安全性一般、依赖于VMM和宿主OS的安全性。

典型产品: VMware server , VMware workstation,virtual  PC, virtual server,

3)混合模型

顾名思义,混合模型就是上述两种模型的混合体。

VMM处在最底层,拥有全部物理资源,但是与Hypervisor模型不同的是,大部分I/O设备是由一个运行在特权虚拟机中的特权OS来管理的。

CPU和Memory的虚拟化依然由VMM来完成,而I/O的虚拟化则由VMM和特权OS来共同完成。

混合模型集合了上述两种模型的优点,但是缺点就是经常需要在VMM与特权OS之间进行上下文切换,开销较大。

典型产品: window server 2008之hyper-v, Xen,

虚拟化相关概念与技术整理(1)——关于VMM类型相关推荐

  1. 虚拟化精华问答 | 虚拟化的关键技术有哪些?

    在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件.今天就让我们一起来看看关于虚拟化的精华问答吧. 1 Q ...

  2. 鸿蒙OS架构及关键技术整理

    鸿蒙OS架构及关键技术整理 一. 鸿蒙OS整体介绍 二. 子系统架构 三. 关键技术 四. 参考资料 一. 鸿蒙OS整体介绍 HarmonyOS简介 原作者:xiangzhihong8 前两天,华为发 ...

  3. 虚拟化的主流技术介绍

    虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机上可以运行不同的操作系统,并且应用程序都可以相互独立的空间内运行而互不影响,显著提高计算 ...

  4. 云计算与大数据-虚拟化与容器技术题库

    第2章 虚拟化与容器技术习题 2.1 选择题 1.典型的虚拟化架构不包括(   D   ). A.宿主机操作系统                        B.虚拟机 C.虚拟化层         ...

  5. Python GUI编程-了解相关技术[整理]

    Python GUI编程-了解相关技术[整理] 我们可以看到,其实python进行GUI开发并没有自身的相关库,而是借用第三方库进行开发.tkinter是tcl/tk相关,pyGTK是Gtk相关,wx ...

  6. 思科虚拟化与视频技术打造协作新体验

    思科虚拟化与视频技术打造协作新体验 http://network.51cto.com  2010-12-15 17:44  思科  51CTO.com  我要评论(0) 思科近日宣布推出了全面的桌面虚 ...

  7. Java成神之路技术整理

    转载自 Java成神之路技术整理 以下是Java技术栈微信公众号发布的所有关于 Java 的技术干货,会从以下几个方面汇总,本文会长期更新. Java 基础篇 Java 集合篇 Java 多线程篇 J ...

  8. canvas技术整理

    canvas技术整理 1 html 2 <canvas id= "canvas"></canvas> 3 4 javascript 5 var canvas ...

  9. Docker学习笔记之浅谈虚拟化和容器技术

    0x00 概述 相信所有对 Docker 有所耳闻的朋友都知道,它是一款以容器虚拟化技术为基础的软件,因此在了解有关 Docker 的概念知识和使用方法之前,虚拟化和容器技术是我们不可或缺的基础知识. ...

最新文章

  1. opengl 预览摄像头
  2. 【全栈项目上线(vue+node+mongodb)】06.nodejs服务上线(生产环境前后分离的vue项目中怎么解决跨域问题)...
  3. 马云卖数据,你卖商品
  4. Java智慧社区商业级别项目源码,拿来学习真不错
  5. 2018年大数据趋势
  6. 64位进程调用32位dll的解决方法
  7. android adb shell常用命令(四)
  8. java 元素居中_如何在ColumnLayout中居中元素
  9. 江浙沪地区计算机考研高效排名,京津冀,江浙沪地区院校盘点!
  10. “你的深度学习框架包含15个漏洞”,360说 | 附论文
  11. NVMe驱动解析-前言
  12. 自动驾驶的“天眼”!聊一聊高精地图领域中所有主流的制作方案
  13. 电脑网页长截图怎么弄的?电脑上怎么截图?
  14. 建筑专业规范大全 2020版_房屋建筑工程现行规范标准目录汇编(2020版)—防水工程...
  15. 密码学入门(7):数字签名和证书
  16. win10修改DNS
  17. 命令关闭所有cmd窗口
  18. c语言上机试题8,计算机考试二级C语言上机试题上[8]
  19. 游戏服务器架构演进(完整版)
  20. 软件测试硬件培训,软件测试和硬件测试的技巧

热门文章

  1. Pygame中的两种键盘按键捕获方式
  2. seo推广绩效考核指标是什么(新媒体运营的绩效考核指标)
  3. Android Activity的隐式调用(跨进程)★
  4. PCL:直通滤波(单一字段 | 多字段)
  5. 基于vue+exharts的双折线图
  6. 取消RadioButton前面小圆圈的方法
  7. snapchat_如何从Snapchat故事中删除快照
  8. vs进行cuda编程失败,报错“the provided PTX was compiled with an unsupported toolchain.”
  9. 有关4G-LoRa-NBIoT通讯方式在现实应用中的对比分析
  10. win32com word表格内指定位置插入数据