初识虚拟化技术「建议收藏」

初识虚拟化技术

大家好,又见面了,我是全栈君。

(一)虚拟化技术概述

虚拟化技术可针对详细应用目的创建特定目的的虚拟环境,安全、效率高,快照、克隆、备份、迁移等方便。系统虚拟化是将一台物理计算机虚拟成一台或多台虚拟计算机系统,每一个都有自己的虚拟硬件,其上的操作系统任觉得自己执行在一台独立的主机上,计算机软件在一个虚拟的平台上而不是真实的硬件平台上执行。虚拟化技术能够扩大硬件的容量。简化软件的又一次配置过程。当中CPU的虚拟化能够单CPU模拟多CPU并行执行,同意一个平台同一时候执行多个操作系统,而且应用程序能够在相互独立的空间内执行而互不影响。

虚拟化技术在减少硬件成本的同一时候。还能够显著提高系统的工作效率和安全性。

虚拟化系统的实现一般是在操作系统和硬件之间增加一个虚拟机监控程序,称为Hypervisor(如图1所看到的)。由Hypervisor主要负责各个操作系统之间的硬件资源协调。虚拟机监控程序是一种特殊操作系统,直接在裸机上执行(针对全然虚拟化技术)。虚拟机监控程序创建一个底层硬件平台抽象。一个或多个虚拟机(VM)共享这个底层硬件平台。在这样的环境中。VM 仅仅是操作系统及其应用程序的容器。一个 VM 与虚拟机监控程序上执行的其它 VMs 隔离。这支持多个操作系统或多个配置不同的相似操作系统。

    初识虚拟化技术「建议收藏」

图1  虚拟化系统结构

1。虚拟计算机系统三层含义-同质、高效、资源受控。

同质-本质上虚拟机和物理机是同样的、表现上有所差异,如一个物理核虚拟多个核。

高效-虚拟机效能接近物理机。

资源受控-虚拟机对系统资源有全然的控制能力。包含分配、管理、回收。

2,虚拟化分不同层面的虚拟化

硬件抽象层的虚拟化-客户机与宿主机硬件相似,指令集相似。

操作系统层虚拟化-内核能够提供多个相互隔离的用户态,其拥有独立的文件系统、网络、系统设置和库函数。

库函数层初始化-是不同的操作系统能够拥有共同的库函数接口,应用程序不需改动。

编程语言层虚拟化-编的程序执行在一个虚拟机上,与详细硬件无关。如Java。

3。虚拟机的长处

良好的封装,虚拟机的执行环境保持便捷。便于随时抓取状态、备份、克隆、挂起和恢复。

多实例-最大限度降低物理资源,提高利用率。便于管理。

隔离-每一个应用程序能够再独立的操作系统中执行。互不干涉。崩溃也不会影响其它任务。

硬件无关性-仅仅要拥有同样的硬件抽象层,虚拟机就能够无缝迁移,因此维护和升级简单。

安全-便于控制訪问权利,病毒入侵检測等。

4,虚拟化分类

依照虚拟化程度分全然虚拟化和类虚拟化。全然虚拟化-客户及操作系统不须要不论什么改动就可以执行,分软件辅助全然虚拟化和硬件辅助全然虚拟化,全然虚拟化可以模拟全部CPU指令。类虚拟化-操作系统须要做出适应性改动。回避那些难以模拟的指令。

依照宿主机是否存在独立操作系统分为hypervisor模型和宿主模型,前者需支持全部的物理资源管理(系统启动、内存管理、设备驱动等)。效率高、复杂。后者仅仅需调用宿主操作系统API实现虚拟化,宿主操作系统能够是windows、linux,效率低、简单。第三类是两者的混和,VMM位于硬件层之上,但让出部分IO设备管理权给一个执行在特权虚拟机上的特权操作系统。VMM负责处理器和内存虚拟化。

(二)虚拟化技术框架

虚拟环境组成:硬件、VMM、虚拟机。物理机中操作系统直接管理硬件(通过硬件抽象层HAL),虚拟环境中VMM管理硬件(会构建一个或多个逻辑HAL)。操作系统执行在VMM 逻辑HAL之上,执行在非CPU最高特权。

对物理资源虚拟的三个主要任务:处理器虚拟化、内存虚拟化和I/O虚拟化。若硬件直接支持虚拟化技术则CPU辅助完毕虚拟化过程。在CPU、芯片组以及IO设备等增加专门针对虚拟化的支持,从而高easy、高效的实现虚拟化。

    初识虚拟化技术「建议收藏」

    图2 虚拟化环境组成

1,VMM介绍

虚拟机VMM(虚拟机监控器)执行在物理CPU的最高特权级。VMM向下管理宿主机物理资源,包含处理器管理、内存管理、外设管理、中断管理、系统时间管理等。向上则管理虚拟环境资源,包含:

i 虚拟物理资源-处理器、内存、IO设备等。

ii 多个独立虚拟环境的调度-类似于进程调度。

iii 虚拟环境间的通信机制–VMM提供VMM与虚拟环境之间、虚拟环境之间的通信API。通信方式能够是共享内存、事件通知等。

iv 虚拟环境的管理-创建、删除、暂停等。

2,硬件辅助虚拟化

i 处理器虚拟化:

VMM最核心部分,内存、IO虚拟化都赖于处理器虚拟化的正确实现。处理器的虚拟化就是模拟处理器的全部关键环节-指令集、内存訪问。

三个关键概念:虚拟寄存器、虚拟上下文、虚拟CPU,当中虚拟CPU与物理CPU具有一致的功能,其功能由物理CPU和VMM共同完毕(非敏感指令直接物理CPU完毕。敏感指令VMM陷入后再模拟)。处理器虚拟化包含:

(a)指令集模拟:正确模拟指令的行为。操作系统试图訪问关键资源时,VMM会将訪问定位在VMM的虚拟寄存器上。操作系统运行操作时(进程切换等),通过VMM“陷入”再模拟进行。陷入手段包含:处理器保护机制触发异常、VMM主动通过陷阱调用、异步中断(处理器内部中断源和外部中断)。

(b)中断和异常的模拟:模拟硬件中断和软件异常的运行。

(c)对称多处理器的模拟:虚拟处理器个数与物理CPU没有必定联系,向操作系统呈现SMP的存在。

ii 内存虚拟化:核心要求是每一个客户机物理地址从0開始、大粒度地址连续(如256M),基本做法在于引入一层新的地址空间-客户机物理地址空间,使用时由VMM将地址转化为实际物理地址。

iii IO虚拟化:截获客户机操作系统对设备的訪问请求。通过软件模拟真实物理效果,“欺骗客户机”

3,基于软件的全然虚拟化

若硬件在虚拟化支持存在缺陷。可通过软件弥补。两种可行方案-模拟运行(全然虚拟化)和直接源码改写(类虚拟化)。

软件模拟技术是在一种硬件平台上通过软件模拟出第二种硬件平台,从而能够运行其上的操作系统、应用程序。模拟的核心是模拟指令集的运行效果,可模拟同样的硬件体系结构,也可模拟不同的。

i 基于软件的CPU虚拟化

(a)模拟技术最简单的就是解释运行-取指、模拟运行效果、再取指,缺点是性能差。如java即为解释型运行,具有硬件平台无关性。

(b)扫描和修补-大部分指令直接由物理CPU运行,部分操作系统敏感指令通过陷阱陷入到VMM模拟运行。

(c)二进制代码翻译-物理CPU不能直接运行客户机操作系统操作。待运行代码都在VMM缓冲区里。

ii 内存虚拟化:为了实现客户机物理地址到宿主机物理地址的映射,VMM维护了一张映射表。VMM截获客户机内存操作指令,并映射到VMM分配给该客户机的对应宿主机物理地址。翻译过程通过影子页表实现,直接翻译到宿主机物理地址。

iii IO虚拟化:虚拟机中侦測出来的设备是VMM虚拟的设备。能够多于或少于真实设备,功能和型号也可同可不同,模拟设备与操作系统交互的API就可以。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116073.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 根据连续信道容量的香农公式,当信道带宽B_信道容量的公式

    根据连续信道容量的香农公式,当信道带宽B_信道容量的公式目录信道带宽信道容量香农公式说道通信,从广义上来讲就不得不提到信道容量和信道带宽、以及著名的香农公式。先说说是什么是信道吧,通俗的来讲,信道就是信息传输的通道。信道在通信系统中的位置如下图所示:但是,并不是所有频率的信号都可以通过信道传输,信道的频率响应决定了哪些频率的信号可以通过信道,哪些频率的信号不能通过信道。信道带宽前面说到不是所有的信号都可以通过信道传输。所以我们把可以通过信道传输的信号频率范围大小就是信道的带宽,就像是下面这张图所展示的:从图中可以看出.

    2022年10月11日
    4
  • 深度学习与图像处理之:人像背景虚化

    深度学习与图像处理之:人像背景虚化

    2021年6月13日
    134
  • 用域代码任何带圈字符都能做出来

    用域代码任何带圈字符都能做出来在文档中按下“Ctrl+F9”组合键输入域记号(一对大括号{},不能用键盘直接输入),在域记号中输入如下域代码:eq/o/ac(○,11B)。设置好字体、字号等。  选中上述域代码,按“Alt+F9”组合键看一下效果。如果不满意,再按一次“Alt+F9”组合键切换回域代码状态,分别选中域代码中的“○”或“11B”,执行“格式→字体”命令,打开“字体”对话框,在“字体”和“字符间距”标签中,通

    2022年5月26日
    41
  • navicat15激活码(破解版激活)

    navicat15激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    132
  • 5分钟商学院之个人篇–习惯与素养

    1.高效能人士的习惯思维转换如果只想发生较小的变化,专注于自己的态度和行为;但如果想发生实质性的变化,就需要思维转换,改变理解世界的方式思维转换就是改变人们理解世界的方式,怎样才能打开思维转换

    2021年12月30日
    47
  • PyCharm中的全局搜索

    PyCharm中的全局搜索根据每个人的快捷键设置每个人可能都不一样。具体方法是打开设置(File->Settings),找到keymap选项。然后在左边的搜索框中搜索findinpath得到的快捷键就是全局搜索的快捷键,我的是Ctrl+H。效果如下图所示:…

    2022年5月6日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号