Hypervisor简介

2023-05-16

 从头开始了解和使用Hypervisor(第4部分) - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com

 

 

 

 

 

 

根据 Hypervisor 的不同类型,我们将虚拟化分为I 型和 II 型两种。

I 型虚拟化,也被称为裸金属虚拟化,Hypervisor 直接调用硬件资源,不需要底层 Host OS,或者说在I 型虚拟化中,可以将 Hypervisor 看做一个定制的 Host OS,除了起到 VMM 的作用外,一般不能在其上安装其它的应用。

Hypervisor 主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的 CPU 特权指令或保护指令(特权指令和保护指令在 CPU 虚拟化中介绍);其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机。

也就是说,Hypervisor 将负责管理所有的资源和虚拟环境。VMM 可以看作一个为虚拟化而生的完整操作系统,掌控有所有资源(CPU、内存和 I/O 设备)。VMM 承担管理资源的重任,其还需向上提供虚拟机VM 用于运行 Guest OS,因此 VMM 还负责虚拟环境的创建和管理。

采用该结构的虚拟化产品主要有:VMWare ESX Server、Citrix XenServer 和FusionCompute 等。

注:通俗的讲,I 型虚拟化中Hypervisor 啥也不干,就专门负责将物理的硬件资源转换为虚拟资源供Guest OS 使用,Guest OS 就像直接运行在物理硬件上一样,所以称为裸金属。

I  型虚拟化有以下特点:

  • 优点:虚拟机不依赖于操作系统,支持多种操作系统,多种应用。
  • 缺点:虚拟层内核开发难度大。

II  型虚拟化,也被称为宿主型虚拟化,此模型的物理资源由 Host OS(例如 Windows, Linux etc.)管理,实际的虚拟化功能由 VMM 提供,而 VMM 作为底层操作系统(Windows 或 Linux 等)上的一个普通应用程序,然后通过其再创建相应的虚拟机,共享底层服务器资源。VMM 通过调用 Host OS 的服务来获得资源,实现 CPU、内存和 I/O 设备的虚拟化。VMM 创建出虚拟机VM 后,通常将VM 作为 Host OS 的一个进程参与调度。

采用该虚拟化产品主要 有:VMware Workstation、Virtual PC 等。

II 型虚拟化有以下特点:

  • 优点:简单、易于实现。
  • 缺点:安装和运行应用程序依赖于主机操作系统对设备的支持。管理开销较大,性能损耗大。

注:和 I 型虚拟化不一样,II 型虚拟化中 Hypervisor 只是 Host OS 的一个应用程序,所有的硬件资源还是归 Host OS 管理。

无论是 I 型还是 II 型虚拟化,都具备分区、隔离、封装和独立的特点。

(1)  分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使您能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。分区功能解决了以下两个方面的问题:

  • 每个分区划分资源配额,防止虚拟化超配额使用资源
  • 每个虚拟机单独安装操作系统,彼此互不影响

(2)  隔离:通过分区所建立的多个虚拟机之间采用逻辑隔离措施,防止相互影响。隔离功能解决了如下问题:

  • 一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障, 等等)不会影响同一服务器上的其它虚拟机
  • 一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样

通过隔离的功能,我们可以进行资源控制以提供性能隔离,即为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可 用;也可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论传统x86 服务器体系结构的局限性时所提到的那些问题(应用程序冲突、DLL 冲突等)

(3)  封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。只需复制几个文件就可以随时随地根据需要复 制、保存和移动虚拟机。不少人都用过VMWare Workstation 这个虚拟化产品,我们创建的虚拟机是可以通过复制一小组虚拟机文件到其它安装有VMWare Workstation 的电脑上重新打开运行的。对于虚拟机的迁移而言,最为重要的原因就是封装特性,封装也是虚拟化所有本质特性中最为重要的特性。这是因为虚拟机成为独立硬件的文件,那么虚拟机具备迁移和热插拔特性等功能。这些特性也都和虚拟机封装特性息息相关。

(4)  相对硬件独立:虚拟机在封装为独立文件后,虚拟机迁移只需要把虚拟机设备文件和配置文件或磁盘文件复制到另一台主机上运行即可,而不用关心底层的硬件类型是否兼容,这就是相对硬件的独立性。因为底层的硬件设备被其上运行的虚拟化监视器 VMM(Virtual Machine MoniToR,即 VMM)屏蔽,运行在 VMM 之上的虚拟机只需要关心目的主机是否也存在相同的 VMM 即可,不用关心底层的硬件规格配置等信息。这就如同我们在Windows 7 系统上用office 2007 编辑好 word 文件,然后把这个 word 文件复制到另一台 Windows 10 系统的电脑上,这时我们只要关心是否有可以打开文档的 office 2007 即可,不必关心底层硬件 CPU 是什么型号,内存多大的规格。

Hypervisor是所有虚拟化技术的核心,也是最容易被攻击的对象。

Hypervisors是一种在虚拟环境中的“”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。

正是由于Hypervisor可以控制在服务器上所运行虚拟机的方方面面,因此他自然成为了需要保护的对象。保护Hypervisor是至关重要的,并且远比想象中的复杂。

虚拟机可以通过几种不同的方式向Hypervisor发出请求,这些方式通常涉及到API的调用。而API往往是恶意代码的首要攻击对象,所以所有的Hypervisor必须付出大量的努力来确保API的安全,并且确保虚拟机只会发出经过认证和授权的请求。上述保护API安全是Hypervisor的主要功能之一,当然,为了确保虚拟机的性能不受影响,Hypervisor在处理速度方面也是至关重要的。

为了让虚拟机之间沟通更方便,现在已经有人建议开发新的API。从表面上来看,这是合理的 – 为什么要把数据都写入磁盘才能让另一台虚拟机来读取?为什么不直接采用内存拷贝的方式呢?

这种API,如VMware 的VMCI,为在虚拟机里运行的操作系统带来了一些新的风险。在未来的几年内,随着我们慢慢看清楚如何利用这些新技术,这些API还将会被赋予更多新的功能。我们需要跟踪这些变化,并时刻警惕他们被恶意程序利用作为侵入虚拟机的新方法。

另一种途径是通过网络对Hypervisor进行攻击。通常,Hypervisor所使用的网络接口设备也是虚拟机所使用的。如果网络配置的不是很严格,这意味着虚拟机可以连接到Hypervisor的IP地址并且可以在Hypervisor登录密码没有使用强密码保护的情况下入侵到Hypervisor。这种不严格的网络配置还可能导致对Hypervisor的DOS攻击,使得外网无法链接到Hypervisor去关闭这些有问题的虚拟机。

Hypervisor在给我们带来新的性能的同时也带了新的计算机运作风险。充分认识这种新的环境非常重要。

 hypervisor_kaixin201505的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hypervisor简介 的相关文章

  • 多核处理器的关键技术

    英特尔的cpu是从前代gt atom一路供货到第7代 xff0c 想必日常使用不会有太大区别 xff0c 而在系统之外可能存在一些散热方面的问题 而上市越早的处理器 xff0c 硬件供货越好 xff0c 可能在某些特殊时间段会出现不足 xf
  • LD_PRELOAD作用

    一 LD PRELOAD是什么 LD PRELOAD 是Linux系统的一个环境变量 xff0c 它可以影响程序的运行时的链接 xff08 Runtime linker xff09 xff0c 它允许你定义在程序运行前优先加载的动态链接库
  • C++ 之父的多线程编程建议——现代 C++ 对多线程/并发的支持(下)

    本文承接前文 现代 C 43 43 对多线程 并发的支持 xff08 上 xff09 xff0c 翻译自 C 43 43 之父 Bjarne Stroustrup 的 C 43 43 之旅 xff08 A Tour of C 43 43 x
  • C++关键字之Future promise and async()

    主线程将x传递给子线程 xff0c 子线程将结果x再传递给主线程 include lt iostream gt include lt future gt include lt thread gt using namespace std vo
  • C++ thread::hardware_concurrency 获取硬件支持并发数

    一 功能 获取硬件支持的并发线程数 二 返回值 正常返回支持的并发线程数 xff0c 若值非良定义或不可计算 xff0c 则返回 0 四 示例 include lt iostream gt include lt thread gt int
  • C++并发编程 unique_lock and condition_variable

    在t1线程中插入值 xff0c 在t2线程中取出值 include lt iostream gt include lt thread gt include lt vector gt include lt string gt include
  • ubuntu18.04+安装ros-melodic+安装realsense-ros包

    自己在安装的时候参考了很多博客 xff0c 但许多的方法很杂乱最后还失败了 xff0c 这里综合下自己尝试成功且比较方便的方法 xff0c 参考链接会在下文列出 安装ros melodic 参考 xff1a https www guyueh
  • [C++11 并发编程] 动态选择并发线程的数量

    C 43 43 标准模板库提供了一个辅助函数 std thread hardware concurrency xff0c 通过这个函数 xff0c 我们可以获取应用程序可以真正并发执行的线程数量 下面这个例子 xff0c 实现了一个并发版本
  • [C++11 并发编程] 17 超时等待 - clock和duration

    之前我们看到的所有等待机制都是不会超时的 xff0c 也就是说 xff0c 等待某个同步事件的线程会一直挂起 有些情况下 xff0c 我们希望设置一个最长等待时间 xff0c 使得程序可以继续与用户进行交互 xff0c 使得用户可以取消这个
  • 激光雷达和相机感知融合简介

    本文介绍激光雷达和相机融合的两种方法 xff1a 前融合 xff1a 融合原始数据 xff08 点云和像素 目标框 xff09 后融合 xff1a 融合目标框 前融合 前融合一般指融合原始数据 xff0c 最容易 最普遍的方式是将点云投影到
  • 聚焦芯片:GPU,CPU,SOC,DSP,FPGA,ASIC,MCU,MPU,GPP,ECU等都是什么?

    先上部分概念 xff1a CPU xff1a 中央处理器 xff08 Central Processing Unit xff09 是一块超大规模的集成电路 xff0c 是一台计算机的运算核心 xff08 Core xff09 和控制核心 x
  • 怎么样实现车辆信息安全

    1 车载IDS 正成为持续网络安全保护的核心要素 持续的网络信息安全风险管理正成为VTA的要求 通过IDS车载入侵检测可以为整个车队提供信息安全保护 但是 xff0c 分布式IDS的指导原则是什么 xff1f 为了满足UNECE WP29法
  • SOA通信架构和SOME/IP-SD的主要功能

    1 SOA面向服务的通信交互 如上图所示 xff0c 女神去热水澡堂洗澡 xff0c 想搓背 xff08 find服务 xff09 xff0c 于是她付要付搓背钱给澡堂老板 xff0c 这时澡堂老板知道通过小王和小明的毛遂自荐 xff08
  • OTA升级的实现原理

    一 简介 1 1 概念 OTA xff1a Over the Air Technology xff0c 即空中下载技术 OTA升级 xff1a 通过OTA方式实现固件或软件的升级 只要是通过无线通信方式实现升级的 xff0c 都可以叫OTA

随机推荐

  • 为什么特斯拉自动驾驶汽车不需要激光雷达

    光 糖果Autosar 2022 02 14 08 08 特斯拉仪表板 打造全自动驾驶汽车所需的技术堆栈是什么 xff1f 公司和研究人员对该问题的答案存在分歧 自动驾驶的方法范围从相机和计算机视觉到计算机视觉和高级传感器的组合 特斯拉一直
  • 架构与中台

    做架构工作最重要的是练好内功 什么是内功 xff1f 大局观 认知层次 xff0c 思维方式 xff0c 方法论 概念抽象能力等等都属于内功 零件设计主外 xff0c 架构设计主内 零件设计五花八门 xff0c 紧随新技术新热点 架构设计苦
  • UDS服务简易教程

    本文主要以简单易懂的描述向大家介绍CAN诊断基础知识 xff0c 本文主要介绍CAN诊断中UDS服务的基本内容 xff0c 主要参考文件ISO15765 2 ISO15765 3 ISO14229 1 xff0c 读完本篇文章后希望进一步了
  • 五万字读懂c++

    const作用 修饰变量 xff0c 说明该变量不可以被改变 xff1b 修饰指针 xff0c 分为指向常量的指针 xff08 pointer to const xff09 和自身是常量的指针 xff08 常量指针 xff0c const
  • 在AP_EM上的骚操作

    最近大家都对AP兴趣很大 xff0c 也不知CP大家玩转了木有 xff0c 反正咱也不知道咱也不敢问 xff0c 这次楼主就扯下AP中的状态管理SM和执行管理EM部分 言归正传 xff1a AP的应用 xff0c 在通过工具配置后 xff0
  • 编译型语言和解释型语言的区别

    我们编写的源代码是人类语言 xff0c 我们自己能够轻松理解 xff1b 但是对于计算机硬件 xff08 CPU xff09 xff0c 源代码就是天书 xff0c 根本无法执行 xff0c 计算机只能识别某些特定的二进制指令 xff0c
  • 什么情况下需要加extern “C“,通俗易懂

    下午看了一些关于extern 34 C 34 的博客 xff0c 都写得很啰嗦 xff0c 看来看去还是有一些细节不怎么了解 xff0c 自己开了个程序测试了一下 xff0c 总结了什么情况下需要加入extern C 首先c 43 43 和
  • POSIX介绍

    POSIX表示可移植操作系统接口 xff08 Portable Operating System Interface of UNIX xff0c 缩写为 POSIX xff09 xff0c POSIX标准定义了操作系统应该为应用程序提供的接
  • Linux crond 命令使用实例

    每一分钟调用一次 ls l etc gt tmp to txt crontab e 进行编辑 1 ls l etc gt tmp to txt 1 代表每一分钟执行一次 1 第二个 代表一天中的某个小时 案例2 xff1a 写一个脚本 vi
  • DoIP诊断技术一点通

    DoIP的全称是Diagnostic Over Internet Protocol xff0c 即基于TCP IP协议的诊断协议 随着以太网技术在车载领域的应用范围逐步扩大 xff0c 越来越多的控制器支持通过以太网进行诊断通信 xff0c
  • 嵌入式必备基础一

    嵌入式必备知识 Oliver H的博客 CSDN博客 一 进程与线程 1 1 进程和线程的概念 1 1 1 什么是进程 线程 xff0c 各自有什么优点 概念 xff1a 进程是对运行时程序的封装 xff0c 是系统进行资源调度和分配的的基
  • 嵌入式基础二——C/C++

    二 C C 43 43 2 1 c和c 43 43 区别 概念相关面试题 2 1 1 new和malloc的区别 属性 xff1a new delete是C 43 43 关键字 xff0c 需要编译器支持 malloc free是库函数 x
  • ​Linux 黑话解释:什么是 POSIX?

    POSIX xff0c 你肯定在各种在线论坛和文章中 xff0c 听到过这个缩写 xff0c 或读到过关于它的信息 程序员和系统开发人员似乎最关心这个问题 它听起来很神秘 xff0c 虽然有很多关于这个主题的好资料 xff0c 但一些讨论区
  • 科研进阶篇——论文完结

    终于完成了人生的第一篇学术论文 xff0c 对这次的科研做个总结 xff0c 画上一个完美的问号 xff0c 让我们快乐的继续进阶 xff0c 投了会议 xff0c 中了的话应该会推荐到CCF C期刊 虽然还没出结果 xff0c 还是为自己
  • AP AUTOSAR 平台设计总体框架全解

    AP AUTOSAR 平台设计总体框架全解 01 简介 1 1内容 本规范描述技术范围和方法 AP的背景 逻辑和物理视图的架构 xff0c 是AUTOSAR自适应平台设计的总体框架 全文32000余字 xff0c 建议收藏阅读 02 技术范
  • 谈谈Bootloader自更新

    目录 01 Supplier Boot SB 43 Customer Boot CB 02 将Boot先放到RAM中运行 xff0c 然后更新Boot的Flash区域 03 两个CB 43 minBoot 04 小结 汽车控制器的BootL
  • E2E通信保护协议学习笔记

    E2E通信保护协议学习笔记 最近在做功能安全方面工作 xff0c 想了解E2E保护的问题 本文试着说明两个点 xff1a 功能安全需要考虑通信失效造成的影响 xff0c 因此E2E通信保护协议被提出 xff0c 以满足功能安全要求 xff1
  • TSN(时间敏感网络)介绍

    1 前言 TSN是时间敏感网络 xff08 Time Sensitive Network xff09 的英文缩写 xff0c 是IEEE 802 1 TSN工作组开发的一系列数据链路层协议规范的统称 xff0c 用于指导和开发低延迟 低抖动
  • 汽车OTA是个什么鬼?

    OTA xff1a Over the Air Technology 这描述的是手机吧 xff01 不过一开始的手机也是不可以直接OTA的 1997年之前所有汽车都是一个独立的机械个体 xff0c 一个方向盘 xff0c 一组踏板 xff0c
  • Hypervisor简介

    从头开始了解和使用Hypervisor xff08 第4部分 xff09 嘶吼 RoarTalk 回归最本质的信息安全 互联网安全新媒体 4hou com 根据 Hypervisor 的不同类型 xff0c 我们将虚拟化分为I 型和 II