hypervisor简介
什么是hypervisor
hypervisor为操作系统提供独立的虚拟硬件平台,而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问。hypervisor之于操作系统类似于操作系统之于进程。
虚拟化和hypervisor
关于什么是虚拟化,请参考我的另一篇博客《虚拟化技术介绍》,有更详细的讲解。
虚拟化就是隐藏底层物理硬件,让多个操作系统可以透明地使用和共享硬件资源的一种技术手段。这种架构的另一个更常见的名称是平台虚拟化。
在典型的虚拟化分层架构中,提供平台虚拟化的层称为 hypervisor (有时称为虚拟机管理程序或 VMM)。虚拟操作系统称为虚拟机(VM)。下图展示了常用硬件虚拟化的简单分层架构,当然并不是所有虚拟化解决方案都是一样的。
可以看到,hypervisor是提供底层机器虚拟化的中间软件层。操作系统将对机器的底层资源的访问虚拟化为进程。hypervisor 也做一样的事情,但其对象不是进程,而是整个虚拟机操作系统。
Hypervisor的两种类型
hypervisor 可以划分为两大类。一种是直接运行在物理硬件之上的,例如基于内核的虚拟机KVM,它本身是一个基于操作系统的hypervisor。另一种是运行在另一个操作系统中,例如QEMU 和 WINE。
hypervisor的构成
hypervisor仅是一个从其虚拟操作系统抽象机器硬件的分层应用程序。通过这种方式,每个虚拟操作系统看到的仅是一个VM而不是真实的硬件机器。
在较高级别上,hypervisor需要少量设施启动虚拟操作系统:一个需要驱动的内核映像、一个配置(比如 IP 地址和所需的内存量)、一个磁盘和一个网络设备。磁盘和网络设备通常映射到机器的物理磁盘和网络设备(如图所示)。最后,需要使用一组虚拟操作系统工具启动和管理虚拟操作系统。
然后,一个简化的hypervisor架构实现最后的关键功能,从而使虚拟操作系统可以和宿主操作系统同时运行。实现这个功能需要一些特定的要素,如图所示。
首先,类似于将用户空间应用程序和内核函数连接起来的系统调用,一个通常可用的虚拟化调用(hapercall,hypervisor对操作系统进行的系统调用)层允许虚拟系统向宿主操作系统发出请求。可以在内核中虚拟化I/O,或通过虚拟操作系统的代码支持它。故障必须由 hypervisor 亲自处理,从而解决实际的故障,或将虚拟设备故障发送给虚拟操作系统。hypervisor 还必须处理在虚拟操作系统内部发生的异常。(毕竟,虚拟操作系统发生的错误仅会停止该系统,而不会影响 hypervisor 或其他虚拟操作系统)。hypervisor的核心要素之一是页映射器,它将硬件指向特定操作系统(虚拟OS或 hypervisor)的页。最后,需要使用一个高级别的调度器在hypervisor和虚拟操作系统之间传输控制。
转载于:https://blog.51cto.com/changfei/1672125
hypervisor简介相关推荐
- Hypervisor 简介
单词解释 Hypervisor:超级监督者,管理程序 虚拟化技术 概念 一种运行在基础物理服务器和操作系统之间的中间软件层,可以访问服务器上包括磁盘和内存在内的所有物理设备.Hypervisor协调着 ...
- QNX操作系统和QNX Hypervisor简介
概述 QNX操作系统和QNX Hypervisor是由QNX Software Systems开发的两个重要的嵌入式技术.它们在嵌入式系统领域具有广泛的应用和卓越的表现. QNX OS是一个实时操作系 ...
- 操作系统研究:面向软硬件协同的车载操作系统驶入快车道
已剪辑自: https://mp.weixin.qq.com/s?__biz=MzA4NTcwMDQwMg==&mid=2650818860&idx=1&sn=06f15812 ...
- Docker学习(一)-----Docker简介与安装
一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...
- 渗透Xen hypervisor
BLUEPILL和Vitriol都是目前比较流行的软件项目,可以在运行时给系统安装上恶意的hypervisor(系统管理程序).原本系统是 纯净的,什么都没有,但是这些软件可以即时的向系统中插入一段恶 ...
- 剖析 Linux hypervisor
KVM 和 Lguest 简介 Linux® 的最重要创新之一就是转变为hypervisor(或运行其他操作系统的操作系统).现在涌现许多使用 Linux 作为内核的 hypervisor 解决方案. ...
- Docker:Docker的简介、安装、使用方法之详细攻略
Docker:Docker的简介.安装.使用方法之详细攻略 目录 Docker的简介 0.1.知乎对Docker的理解-Docker就是集装箱 0.2.简书对Docker的理解-Docker带来标准化 ...
- 【KVM系列01】KVM简介及安装
第一章 KVM简介及安装 1. KVM 介绍 1.0 虚拟化简史 1.1 KVM 架构 2. KVM 的功能列表 3. KVM 工具集合 4. RedHat Linux KVM 安装 4.1 在安装 ...
- Docker学习一:Docker简介与安装
前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...
最新文章
- Windows快捷键集锦
- 教你在微信头像上加皇冠,很漂亮!
- [GWCTF 2019]pyre.pyc [CISCN2018]2ex
- C# 删除指定目录下具有某后缀的全部文件
- android保持服务不休眠,Android开发保持屏幕常亮和CPU不休眠唤醒状态
- SpringBoot→初始化项目just run@SpringBootApplication、请求处理@RequestMapping、属性配置yml
- 3个阶段 项目征名_中资企业新签的3个海外项目开工
- Oracle手工创建数据库
- win10 系统Docker搭建设备共享平台stf(三)
- GoldVideo-基于Web Assembly的H265播放器实现
- 【FPGA教程案例66】硬件开发板调试6——基于FPGA的UDP网口通信和数据传输
- 云服务器选择、腾讯云轻量应用服务器面板介绍
- 二维数组—小学二年级班级座位表
- 计算机二级考试word论文,office二级考试之word
- 《Visual Basic.Net 循序渐进》
- kubeadm升级k8s
- Redis---Redis三种常用数据结构
- 博雅互动 php 是否加班,【博雅互动工资|博雅互动待遇怎么样】-看准网
- getchar 和 getch区别
- 小技巧-用Python发送邮件
热门文章
- html整体垂直居中,htmlcss垂直水平居中
- Ajax+SpringBoot+Thymeleaf使用中遇到的跳转页面问题
- ubuntu 在线安装mysql_Ubuntu下安装MySQL5.6
- 【jsp】通过get和post传值的区别
- echarts datazoom 显示的位置设置
- 如何获取URL中的参数
- php解决 mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysq
- iOS App 连接外设的几种方式
- 项目管理深入理解08--成本管理
- Hive 按某列的部分排序 以及 删列操作