Hypervisor小记
什么是Hypervisor
Hypervisor,又称虚拟机监视器(英语:virtual machine monitor,缩写为 VMM),是用来建立与执行虚拟机器的软件、固件或硬件。
被Hypervisor用来执行一个或多个虚拟机器的电脑称为主体机器(host machine),这些虚拟机器则称为客体机器(guest machine)。hypervisor提供虚拟的作业平台来执行客体操作系统(guest operating systems),负责管理其他客体操作系统的执行阶段;这些客体操作系统,共同分享虚拟化后的硬件资源。
特点
Hypervisor有如下优点:
- 提高主机硬件的使用效率。
因为一个主机可以运行多个虚拟机,这样主机的硬件资源能被高效充分的利用起来。 - 虚拟机移动性强。
传统软件强烈捆绑在硬件上,转移一个软件至另一个服务器上耗时耗力(比如重新安装);然而,虚拟机与硬件是独立的,这样使得虚拟机可以在本地或远程虚拟服务器上低消耗转移。 - 虚拟机彼此独立。
一个虚拟机的奔溃不会影响其他分享同一硬件资源的虚拟机,大大提升安全性。 - 易保护,易恢复。
Snapshot技术可以记录下某一时间点下的虚拟机状态,这使得虚拟机在错误发生后能快速恢复。
Hypervisor的种类:
- bare-metal hypervisors:直接部署在主机硬件上,以管理硬件和guest machine。
image.png
尽管近年来有着诸如Docker、Kubernetes这样的基于容器技术的虚拟化技术让人眼前一亮,但是,要知道,这些容器均是部署在云中的Hypervisor之上的。
- hosted hypervisors:作为软件层部署在主机操作系统上,现在常用的VMware Player和VirtualBox就是这种类型。
image.png
虚拟机监视器 (VMM) 和设备模型
Hypervisor可以分解为两部分: 虚拟机监视器 (VMM) 和设备模型。
VMM 响应设置虚拟机和掌控由客户操作系统执行诸如I/O访问的特权指令引发的陷阱(即虚拟机出口)。
设备模型,负责实现所有设备(如网卡,存储设备等)的 I/O 接口。
Hypervisor的体系结构如下图所示:
发展历史
在上世纪 70 年代,VMM的陷入 - 模拟模式被得到了正式的认可(Popek and Goldberg, 1973),但直到 90 年代中期才流行起来,用于在多核的机器上运行商业操作系统(Bugnion et al., 1997)。然而,当年更受欢迎的机器架构是英特尔的 X86,是没有虚拟化功能的,因为其在一些特权声明没有陷入(trap)功能。
在 1999 年,一家叫做VMware的公司做了一款Hypervisor, 它的目标就是在 X86下运行虚拟化。但是它实现的方式是使用二进制翻译,而不是指令的陷入,同时仍然直接在物理CPU上运行无特权的指令,解决了x86的虚拟化问题(Adams and Agesen, 2006),这使得VMware虚拟机管理程序可以在虚拟机的 x86 硬件上运行未修改的商业操作系统,而不会影响性能。
在 2003 年,又出现了叫做Xen的Hypervisor,它使用了完全不同的方法来解决X86的虚拟化问题,放弃了二进制翻译的做法,而是修改了客户操作系统的源代码来陷入到Hypervisor 中,以代替执行非陷入特权指令。
随后,英特尔和AMD分别在 2005 和 2006 年先后发布了带有虚拟化扩展的 X86架构的CPU,这又使得经典的陷入 - 模拟模式成为了可能。而且又一项技术出现了,那就是KVM,最初是为Linux而开发的,其作为Linux内核的一个子系统,与QEMU的设备模式协作,共同构成了完整的Hypervisor。最初,KVM项目提供的基于软件的设备模式从而模拟完整的硬件设备,后来又引入了virtio机制,从而实现了半虚拟化I/O设备模型。
参考
百度百科什么是HypervisorHypervisor的演化史及未来展望
http://www.taodudu.cc/news/show-4091566.html
相关文章:
- hypervisor详解
- QNX Hypervisor —— 基于优先级的调度
- QNX Hypervisor —— 虚拟设备
- QNX Hypervisor —— 设备
- QNX Hypervisor —— 体系结构
- QNX Hypervisor —— 物理设备
- Hypervisor 技术的演进
- Hypervisor
- 虚拟化技术介绍 hypervisor简介
- Hypervisor是什么
- 2020-12-01 剖析 Linux hypervisor
- Hypervisor介绍
- 欧拉函数与欧拉定理
- 触摸屏:Linux输入子系统:多点触控协议
- Android仿射密码破译app
- Android进阶:Android零基础进阶到高级架构师
- 0w1_CTF_Writeup
- POJ1091跳蚤(容斥 + 唯一分解 + 快速幂)
- [论文解读] Concolic Testing for Deep Neural Networks
- 【吐血整理】CSDN上各个大厂网络安全岗面试题及个人模拟面试经验精选总结
- acm-基础数论学习笔记(下)
- rsa 模数 指数转换 c语言_CTF中RSA的一些攻击思路
- 欧几里得几何(1)Alpha
- BZOJ-2242 计算器 快速幂+拓展欧几里得+BSGS(数论三合一)
- UVA 10673 扩展欧几里得
- 关于PEND SV的引入思考
- 【数据结构基础_双向链表(有[*pHead]和[*pEnd])_(C++)】
- 【数据结构基础_有[*pHead]和[*pEnd]的单向链表_(C++实现)】
- 【SYS/BIOS】4.2节同步模块之事件模块
- UCOSIII总结------消息队列(6)
Hypervisor小记相关推荐
- QNX Hypervisor管理程序
QNX Hypervisor管理程序 借助 QNX® 管理程序,可以将具有不同操作系统,不同可靠性和安全要求的多个嵌入式系统,整合到单个片上系统 (SoC) 中.可以轻松地将未修改的代码移动到最新的硬 ...
- hypervisor简介
什么是hypervisor hypervisor为操作系统提供独立的虚拟硬件平台,而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问.hypervisor之于操作系统类似于操作系统之于进程. 虚拟化 ...
- hp-ux 集群,内存 小记
hp-ux 集群,内存 小记 -----查看hp 集群状态信息 # cmviewcl -v CLUSTER STATUS dbsvr up ...
- <笔记2>numpy的生成随机数用法小记
numpy的生成随机数用法小记 numpy生成随机数 <以下图片来自黑马程序猿录播课程笔记> import numpy as np import random #random 生产随机数 ...
- 2021年中寻找新SAP项目机会小记
2021年中寻找新SAP项目机会小记 最近一段时间,笔者有在酝酿下一个SAP项目机会.在与相关业界同仁洽谈项目机会的过程中,笔者发现自己还是在犯一些低级错误,感觉自己还是太不够理性和成熟. 1,事情没 ...
- K项目小记 - 项目已开工整整四周!
K项目小记 - 项目已开工整整四周! 至今天,K项目已经推进到了第四周.这四周时间里,我们项目组全体成员经历了一段刻骨铭心的战斗时光.我们每天开会,谈流程,展示全球模板,找GAP.K项目是以客户总部的 ...
- 肺炎疫情期间购买口罩小记
肺炎疫情期间购买口罩小记 谁都不曾想到,平时不怎么用到的口罩,在此次肺炎疫情期间,突然成为紧俏物资,重要物资. 早在疫情爆发初期,就在新闻报道里听说医护人员缺少医护物资,其中就有各种级别的口罩.此时笔 ...
- SAP MM 进销存报表优化小记
SAP MM 进销存报表优化小记 笔者刚刚加入SY项目,就接到了SY集团上海总部SAP运维部门负责人的工作分配,说是有一只进销存报表,需要做一个优化,可能是需要重新设计重新开发. 笔者研究了他们现行进 ...
- linux 虚拟化之rhev Hypervisor 安装
rhev hypervisor 必须要安装在真实物理机上,不能装在虚拟机上 rhev hypervisor 会重新配置物理机硬盘,上面的原有数据会全部损坏,所以如果硬盘有数据要先备份下来 每台hype ...
- Flex+J2EE 之小记
Flex+J2EE 之小记 Jack. Wang 2008-9-10(本待完善...) wbjeasygo@163.com 由于本人也是初学者(刚看了两天视频),所以请高手指点,这里赞下 blog ...
最新文章
- 容器与微服务从技术到艺术 你需要这场论坛
- 暑假集训中期测试 Problem D: 装箱问题2 (并查集)
- 简单的选项卡功能实现
- 小米裁员10%?官方回应:创业至今 从未裁员
- Python——常用Python包的学习笔记
- opencv4 c++ 提取图片中的白色区域_OpenCV4.5.0 更快的SIFT,更强的数字识别,以及色彩校正、深度融合...
- 蓝桥杯 历届试题 剪格子(dfs搜索)
- 编译OpenJDK8:[HotspotWrapper.gmk:45:/cygdrive/e/hub/openjdk/jdk8u/build/windows-x86_64-normal-server-
- 彻底删除win10易升
- 龙芯2f笔记本安装debian错误--bzcat
- task manager memory meaning
- ACM1880魔咒词典
- pyqt 取鼠标处文字_侧裙可拆按键随心装,黑爵GTi模块化游戏鼠标评测
- Ubuntu18.04和Win10共享文件夹
- 机器学习算法基础20210504-0529
- RGBA、YUV色彩格式及libyuv的使用
- 2018 湘潭邀请赛 K.2018
- CentOS7下安装jmeter5.3
- 百子作业 —— 中国邮递员问题
- android 启动图片 大小,ios 和安卓常用图标、启动图 尺寸