【KVM】软件虚拟化和硬件虚拟化

前言

大家好,我是秋意零。

今天介绍的内容是虚拟化技术以及软件虚拟化和硬件虚拟化。

👿 简介

  • 🏠 个人主页: 秋意零
  • 🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者
  • 🧑 个人介绍:在校期间参与众多云计算相关比赛,如:🌟 “省赛”、“国赛”,并斩获多项奖项荣誉证书
  • 🎉 目前状况:24 届毕业生,拿到一家私有云(IAAS)公司 offer,目前已在实习
  • 💕欢迎大家:欢迎大家一起学习云计算,走向年薪 30 万
  • 💕推广:CSDN 主页左侧,是个人扣扣群推广。方便大家技术交流、技术博客互助

一、什么是虚拟化?

虚拟化是将我们现实中的计算机硬件资源进行切割,将切割的部分进行使用,这部分的资源被称为虚拟资源。

图中左侧是传统应用方式、右侧是虚拟化应用方式。可以看到右侧是通过Virtual Machine Monitor(VMM)虚拟机监控器,也称为Hypervisor层,就是利用它来达到虚拟化引入的软件层。它向下掌控实际的物理资源(相当于原本的操作系统) ,向上呈现给虚拟机N份逻辑的资源。为了做到这一点,就需要将虚拟机对物理资源的访问“偷梁换柱”一-截取并重定向,让虚拟机误以为自己是在独享物理资源。虚拟机监控器运行的实际物理环境,称为宿主机;其上虚拟出来的逻辑主机,称为客户机。

二、软件虚拟化和硬件虚拟化

软件虚拟化,是通过软件模拟来实现VMM层,通过纯软件的环境来模拟执行虚拟机里的指令。

2.1 软件虚拟化

软件虚拟化技术,通过VMM中间层软件与硬件翻译来实现虚拟化。

最纯粹的软件虚拟化实现当属QEMU。在没有启用硬件虚拟化辅助的时候,它通过软件的二进制翻译仿真出目标平台(计算资源)呈现给虚拟机,虚拟机的每一条目标平台(计算资源)指令都会被QEMU截取,并翻译成宿主机平台的指令,然后交给实际的物理平台执行。由于每一条都需要这么操作一下,其虚拟化性能是比较差的,同时其软件复杂度也大大增加。但好处是可以呈现各种平台给虚拟机,只要其二进制翻译支持。

2.2 硬件虚拟化

硬件虚拟化技术,就是硬件本身支持虚拟化。

硬件虚拟化技术就是指计算机硬件本身提供能力让虚拟机指令独立执行,而不需要 (严格来说是不完全需要) VMM截获重定向。

在x86架构中,它提供一个略微受限制的硬件运行环境供虚拟机运行 (non-root mode),在一般情况下,虚拟机在此受限环境中运行与在宿主机系统运行没有什么两样,不需要像软件虚拟化那样每条指令都先翻译再执行,而VMM运行在root mode,拥有完整的硬件访问控制权限。

可以看到,硬件虚拟化技术性能已经接近于宿主机系统,并且这个过程可以使VMM的软件架构大大简化。

Intel从2005年就开始在其x86 CPU中加入硬件虚拟化的支持Intel Virtualization Technology,简称Intel VT。到目前为止,在所有的Intel CPU中,都可以看到Intel VT的身影。

总结

虚拟化技术可以说是云计算的本质,通过虚拟化技术,我们就可以向使用水电一样使用计算机资源,按需所取、按量收费。

软件虚拟化和硬件虚拟化的区别是,软件虚拟化是通过软件翻译实现的虚拟化,硬件虚拟化是硬件本身支持的虚拟化技术。所有对比性能硬件虚拟化技术更好,因为中间少了一个翻译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/130239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIA数据通信——路由协议

数据通信——网络层(OSPF基础特性)_咕噜跳的博客-CSDN博客 数据通信——网络层(RIP与BGP)_咕噜跳的博客-CSDN博客 上述是之前写的理论知识部分,懒得在实验中再次提及了。这次做RIP协议以及OSPF协议。不过RIP协议不常用…

Mac连接linux的办法(自带终端和iterm2)

1. 使用Mac自带终端Terminal 1.1 点击右上角的聚焦搜索,再输入终端 1.2 查找linux系统的ip地址 在虚拟机里输入如下命令,找到蓝色区域的就是ip地址 ip addr 如果没有显示ip地址,可以重新安装一下虚拟机,之后确保以太网的连接是打…

【PC电脑windows-学习样例tusb_serial_device-ESP32的USB模拟串口程序+VScode建立工程+usb组件添加+-基础样例学习】

【PC电脑windows-学习样例tusb_serial_device-ESP32的USB模拟串口程序-基础样例学习】 1、概述2、实验环境3-1、 物品说明3-2、所遇问题:ESP32 cannot open source file "tinyusb.h"或者“tinyusb.h:No such file or directory ....”3-3、解决问题&#…

学习c++的第五天

目录 循环 循环类型 循环控制语句 无限循环 判断 判断语句 ? : 运算符 函数 函数定义 函数声明 函数参数 参数的默认值 函数重载 函数模板 内联函数inline 调用函数 Lambda 函数与表达式 循环 循环类型 在计算机科学中,循环是一种重复执行一段代…

Vue3使用Monaco-editor

Monaco-editor,一个vs code 编辑器,需要将其集成到项目。不说闲话了,直接上代码。 npm地址:https://www.npmjs.com/package/monaco-editor 中文文档:https://aydk.site/editor/ 安装: pnpm add monaco…

京东大数据平台(京东数据分析):9月京东牛奶乳品排行榜

鲸参谋监测的京东平台9月份牛奶乳品市场销售数据已出炉! 9月份,牛奶乳品市场销售呈大幅上涨。鲸参谋数据显示,今年9月,京东平台牛奶乳品市场的销量为2000万,环比增长约65%,同比增长约3%;销售额为…

JVM字节码文件浅谈

文章目录 版权声明java虚拟机的组成字节码文件打开字节码文件的姿势字节码文件的组成魔数(基本信息)主副版本号(基本信息)主版本号不兼容的错误解决方法基本信息常量池方法 字节码文件的常用工具javap -v命令jclasslib插件阿里art…

搭建Qt5.7.1+kylinV10开发环境、运行环境

1.下载Qt源码 Index of / 2.编译Qt 解压缩qt-everywhere-opensource-src-5.7.1.tar.gz 进入到qt-everywhere-opensource-src-5.7.1/qtbase/mkspecs这个目录下, 2.1找到以下目录 复制他,然后改名linux-x86-arrch64,博主这里名字取的有些问…

循环链表(单循环、双循环)(数据结构与算法)

循环链表:循环单链表、循环双链表 1. 循环单链表 循环单链表(Circular Singly Linked List)是一种特殊类型的单链表,其中最后一个节点的指针指向头节点,形成一个循环。 循环单链表与普通单链表的主要区别在于&#xf…

汽车标定技术(三)--XCP协议如何支持测量功能

目录 1. 概述 2. 测量方式 -- Poll 3. 测量方式 -- DAQ 3.1 ODT概念模型 3.2 DAQ List概念 3.3 ODT 绝对编号和相对编号 3.4 静态DAQ和动态DAQ模式 (1)静态DAQ (2)动态DAQ 4.小结 1. 概述 在该系列的首篇文章汽车标定技…

python把Word题库转成Excle题库

又到了一年一度的背题时刻,但是收到的题库是Word版的,页数特别多 话不多说,上代码,有图有真相,代码里面备注的很详细 # 导入所需库 import csv import os import refrom docx import Document from win32com import c…

tcp/ip协议2实现的插图,数据结构2 (15 - 章)

(40) 40 十五1 插口层 结构socket,sysent (41) 41 十五2 插口层 实用函数与file结构描述汇总 (42) 42 十五3 插口层 函socket,socreate,pr_usrreq (43)

工作数字化的中国历程 | 从 OA 到 BPM 到数字流程自动化

业务流程是由“活动”(或称“工作任务”)构成的,在企业里的所有工作是不是都叫流程,或者属于流程的一部分,这个概念很绕,我觉得没有必要去做学究气的辨析。我曾经提出过一个从工作的两个特性(产…

接口测试之什么是接口文档?

一、为什么要有接口文档? 没有接口文档的接口测试都是在抓瞎~前面的接口测试重点讲了协议,也讲了fiddler模拟接口请求,估计大部分还是不太懂怎么下手测试。这里小编专门拿出接口文档来做接口测试参考(估计很多测试小伙伴没见过接口…

Azure 机器学习 - 使用无代码 AutoML 训练分类模型

了解如何在 Azure 机器学习工作室中使用 Azure 机器学习自动化 ML,通过无代码 AutoML 来训练分类模型。 此分类模型预测某个金融机构的客户是否会认购定期存款产品。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管…

Linux中命令lsattr/chattr

一、介绍 lsattr 命令用于显示文件属性。 用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。 二、语法 lsattr: - -a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上…

解决 React forwardRef 与 TypeScript 泛型组件冲突的问题

forwardRef是一个可以将组件内的ref对外暴露的高阶组件,当你的组件需要对外暴露元素的Ref,或者想对外暴露某些内部方法,就可以使用这个 (对应vue3的 expose 方法) 但是当forwardRef与TypeScript泛型组件结合时&#xf…

java的线程池

线程池 可以做什么怎么创建 先了解下线程的生命周期 解释: 新建:线程创建但未被启动可运行:线程处于可运行的状态,当该线程有cpu的时间片后就可以执行睡眠:线程进入计时等待,等待一段指定的时间,可以通过wait()方法,sleep方法,join()方法等方式等待:线程进入等待模式,直到其…

Smooth L1 loss |IoU|DIoU|CIoU|EIoU|aIoU|SIoU|wise-IoU的通俗讲解

文章目录 1. L1 Loss、L2 Loss 、Smooth L1 Loss1.1 L1 Loss和 L2 Loss1.2 Smooth L1 Loss1.3 Smooth L1 Loss 在目标检测中存在的缺陷2 IoU loss2.1 IoU原理2.2 IoU 的缺点2.3 代码3.GIoU Loss3.1 GIoU 原理3.2 GIoU loss 的缺点3.3 代码4.DIoU Loss4.1 DIoU的原理4.2 代码5.C…

[CSP-J 2022] 乘方

Description 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 ab 的值是多少。 ab 即 b 个 a 相乘的值,例如 23 即为 3 个 2 相乘,结果为 2228。 “简单!”小文心想&#…