【探索嵌入式虚拟化技术与应用】— 虚拟化技术深入浅出自学系列

🌈个人主页: Aileen_0v0
🔥系列专栏:【探索嵌入式虚拟化技术与应用】
💫个人格言:"没有罗马,那就自己创造罗马~"


目录

一、虚拟技术的发展历史

1.1传统技术的局限性:

​编辑 1.2云计算和万物互联技术的发展机遇:

1.3虚拟化技术介绍 

1.4虚拟机分类 

 二、VMM 

2.1什么是VMM

2.2VMM的模型分类

三、虚拟监视器的类型

3.1Type1虚拟机监视器

 3.2Type2虚拟机监视器

📝全文总结


一、虚拟技术的发展历史

计算机的运行通常离不开合适的操作系统的,而传统操作系统必须运行在具有特定的指令集(实现它的处理器)、内存系统和I/O系统的物理计算机上。

1.1传统技术的局限性:

(1)随着计算机技术飞速发展,计算机系统结构、操作系统及应用程序变得越来越复杂。

(2)传统操作系统上由于应用程序之间无法真正相互隔离,因此一个应用程序的错误可能导致整个系统的奔溃。

这些推动了90年代末 —— 新一轮虚拟计算机(Virtual Machine)技术的发展。一些基于 X86 架构的商用虚拟机产品的推出,如VMware Workstation 、 Virtual PC 等,使得虚拟计算机技术发展到一个新阶段。 

 1.2云计算和万物互联技术的发展机遇:

进入21世纪,计算机领域出现两大新的虚拟化应用场景  ——

(1)云计算

云计算技术发展,使得作为标准化产品的虚拟机作为服务,成为各家IT企业的选择

降低企业自建服务器的IT服务成本和投入

(2)万物互联 

万物互联技术把100亿数量级的嵌入式设备整合在一起,并通过云连接起来。

虚拟化技术也因此在嵌入式领域得到广泛应用,以此整合各种单一功能的设备,通过共同的接口接入互联网,构建高效、低成本的万物互联系统。


1.3虚拟化技术介绍 

Hypervisor 将一个物理的ISA转换成一个虚拟机 

左图:展示的是虚拟技术通过现有平台(机器)上添加一层虚拟机监控器(Virtual Machine Monitor , VMM)软件实现对系统的虚拟化,如:虚拟处理器,虚拟内存管理器(MMU)和 虚拟I/O系统等。

虚拟机监控器(VMM)也被称作 —— 超级管理者(Hypervisor)---> 主流叫法,它对应操作系统中的(普通)管理者(Supervisor),但Hypervisor 比 Supervisor 权力更大、更加基础。

如右图所示:从应用程序角度看,程序运行在虚拟机上与运行在其对应的实体计算机上一样,都运行在某一特定的指令体系(Instruction Set Architecture,ISA) 和 / 操作系统上。

1.4虚拟机分类 

基于左图所示指令体系接口抽象的虚拟机称为系统虚拟机(System VM)

基于 右图所示应用程序二进制接口(Application Binary Interface, ABI)抽象的虚拟机称为进程虚拟机(Process VM)


 二、VMM 

2.1什么是VMM

虚拟机监控器(VMM,Virtual Machine Monitor)一种软件或固件层,它在计算机硬件和操作系统之间运行,并允许多个虚拟机共享计算机资源。

虚拟机监控器的作用主要包括以下几点:

  1. 提供虚拟化的环境:虚拟机监控器创建虚拟机并提供虚拟化的环境,使得多个虚拟机可以在同一台物理计算机上同时运行。

  2. 管理虚拟机的资源:虚拟机监控器负责管理虚拟机的硬件资源,例如CPU、内存和硬盘等,以确保多个虚拟机之间可以平稳共享计算机资源。

  3. 提供安全隔离:虚拟机监控器提供安全隔离机制,使得不同虚拟机之间的操作系统和应用程序可以独立运行,互不干扰,从而提高了系统的安全性和稳定性。

  4. 提供虚拟机的管理工具:虚拟机监控器提供一系列的工具和界面,用于管理和监控虚拟机的运行状态,以及对虚拟机进行配置和管理。这些工具可以帮助管理员轻松地管理多个虚拟机。

 虚拟机监视器(Hypervisor)安装在物理硬件上的软件层,是实现虚拟化的核心组件。可以将物理机通过虚拟化分成许多虚拟机,它可以提供虚拟化的环境,管理虚拟机的资源,提供安全隔离和管理工具等功能,从而使得多个虚拟机可以在同一台物理计算机上高效地运行。。安装在虚拟机上的操作系统称为虚拟操作系统,也称为实例。有虚拟机监视器运行的硬件称为主机。虚拟机管理控制台(也称为虚拟机管理员(VMM))是一种计算机软件,可以轻松管理虚拟机。

 


2.2VMM的模型分类

三种类型的虚拟机监视器:Type1虚拟机监视器(Hypervisor Model)模型Type2虚拟机监视器 (Host-based Model) 模型 和 混合模型 (Hybrid Model)。

监控模型(虚拟机监控器模型 - Type - 1 Hypervisor)中:VMM直接运行在裸机上(无操作系统)。

采用该模型的VMM运行在处理器的最高特权级,而所有客户则运行在较低特权级,以便VMM可以截获所有客户机OS对系统资源的访问,从而实现对系统资源的虚拟化。

 宿主模型 (二型虚拟机监控器 - Type - 2 Hypervisor)中: VMM运行在宿主机OS(Host OS)内,作为宿主机操作系统的扩充

优点:VMM可以充分利用宿主机OS提供的设备驱动程序及底层服务,并且不需要去除原来机器上已经安装的操作系统,安装和部署较容易。

缺点:VMM的开发受限制于宿主机的OS接口,有些功能实现较困难或需要修改宿主机OS。

混合模型集两者的优点,既可以利用宿主机OS的现成设备驱动实现虚拟机的设备模型,又可以实现不同的安全模型,他的典型代表是微软公司的Hyper - V 和 Citrix 公司的 Xen 开源 Hypervisor。 


 

三、虚拟监视器的类型

3.1Type1虚拟机监视器


Type1虚拟机监视器也称为原生或裸机虚拟机监视器,可直接安装在硬件上,将硬件拆分为多个虚拟机,我们可以在其中安装虚拟机操作系统。虚拟机管理软件有助于管理此虚拟机监视器,允许根据当前资源要求在物理服务器之间自动移动虚拟机操作系统。
Type1虚拟机监视器的优势
容错:当实例所在的物理服务器出现故障时,虚拟机管理软件会将实例自动迁移到可用的服务器上,我们甚至可能都注意不到物理硬件出现故障用户不会遇到任何宕机,并且可以在维护和操作人员方便的时间修理或更换发生故障的硬件。
RAM容量的超量/动态分配:在服务器上运行多个实例时,分配给虚拟机的总RAM可以大于底层硬件的总物理内存容量。

RAM代表随机存储器(Random Access Memory),是一种计算机[硬件]组件,也被称为内存。 RAM用于临时存储正在运行的程序和数据,以便系统可以快速读取和写入数据,从而提高计算机的性能。 RAM是易失性存储器,这意味着当计算机关闭时,所有存储在RAM中的数据都将被删除。


 

 3.2Type2虚拟机监视器


Type2虚拟机监视器也称为主机虚拟机监视器,它安装在主机操作系统中,其优点是不需要虚拟机管理控制台。Type2虚拟机监视器不支持RAM的动态/动态分配,因此在为虚拟机分配资源时需要小心。


📝全文总结

本文主要讲解:
    本文主要从虚拟技术的发展历史开始,主要介绍了虚拟机的三种模型:监控模型、宿主模型、混合模型。

    今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,Ailleen 的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!
 

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

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

相关文章

万宾科技智能井盖传感器,预防城市道路安全

随着城市交通的不断发展和城市化进程的加速推进,城市道路安全问题日益凸显。市政井盖作为城市道路的一部分,承担着重要的交通安全保障职责。然而传统的市政井盖管理方式存在许多不足。针对这些问题政府需要采取适当的措施,补足传统管理方式的…

react原理及合成事件原理

文章目录 react的理解react创建组件的三种写法react的工作原理初始化的渲染流程。页面更新的流程。diffing 算法计算更新视图diff策略 react合成事件原理一、React合成事件的概念二、React合成事件的原理三、React合成事件的优势四、React合成事件的使用方法五、总结 react的理…

小型机加工工厂MES系统选型指南

随着制造业的不断发展,越来越多的企业开始关注生产过程的管理和优化。对于小型机加工工厂来说,选择一款合适的MES系统(制造执行系统)能够显著提高生产效率、降低成本、优化资源利用,从而在激烈的市场竞争中脱颖而出。 …

HTTP之常见问答

1:HTTP/1.1 如何优化? :尽量避免发送 HTTP 请求;通过缓存技术,使用请求的 Etag 参数来处理判断缓存过期等问题,类似304状态码就是告诉客户端,缓存有效还能继续使用 :在需要发送 HTTP…

创建域名邮箱邮件地址的方法与步骤

如何创建域名邮箱邮件地址?使用Zoho Mail创建域名邮箱邮件地址的步骤简单易懂,操作便捷。从其他邮箱迁移到Zoho Mail的过程也相当顺畅,您可以轻松为所有员工创建具有企业邮箱域名的电子邮件地址。 步骤1:添加并验证您的域名 首先&#xff0c…

rook-ceph部署

rook是云原生存储编排器,本身不提供存储。 下载 git clone --single-branch --branch v1.11.4 https://github.com/rook/rook.git cd rook/deploy/examples 修改镜像地址images.txt operator方式部署rook kubectl apply -f crds.yaml -f common.yaml -f operator…

动态顺序表

目录 一、动态顺序表结构定义 二、动态顺序表初始化 三、动态顺序表打印 四、动态顺序表尾插 五、封装扩容函数 六、动态顺序表头插 七、动态顺序表的尾删 八、动态顺序表的头删 九、动态顺序表任意位置插入 十、动态顺序表任意位置删除 十一、动态顺序表销毁 十二、…

【计算机网络学习之路】网络基础1

文章目录 前言一. 计算机网络发展局域网和广域网 二. 网络协议三. OSI七层模型四. TCP/IP四层(五层)模型五. 计算机体系结构与网络协议栈六. 协议形式及局域网通信数据包封装与分用 七. 跨网络通信八. MAC地址与网络通信的理解结束语 前言 本系列文章是…

人工智能带来的各方面影响

近年来,人工智能(AI)技术在各个领域中的应用越来越广泛,已经开始对我们的生活方式、社会和经济结构产生深远的影响。 1.人工智能家庭化。人工智能技术使我们的生活变得更加便利和智能化。在家庭日常中,智能家居、智能…

什么是深度学习

一、深度学习的发展历程 1.1 Turing Testing (图灵测试) 图灵测试是人工智能是否真正能够成功的一个标准,“计算机科学之父”、“人工智能之父”英国数学家图灵在1950年的论文《机器会思考吗》中提出了图灵测试的概念。即把一个人和一台计算机分别放在两个隔离的房…

【SpringBoot3+Vue3】四【基础篇】-前端(vue基础)

目录 一、项目前置知识 二、使用vscode创建 三、vue介绍 四、局部使用vue 1、快速入门 1.1 需求 1.2 准备工作 1.3 操作 1.3.1 创建html 1.3.2 创建初始html代码 1.3.3 参照官网import vue 1.3.4 创建vue应用实例 1.3.5 准备div 1.3.6 准备用户数据 1.3.7 通过…

C++循环队列(模板类)

C循环队列(模板类) 一、简介二、具体实现 一、简介 循环队列是一种基于数组实现的队列数据结构,其特点是队尾和队头通过模运算相连,形成一个环形结构。这种设计可以有效地利用数组空间,避免因出队操作导致队列空间的浪…

【SQL】简单博客开发代码

前几天做到一些CMS的题&#xff0c;涉及一些sql的代码审计&#xff0c;于是尝试着自己开发一个连接数据库的博客&#xff0c;加深一遍理解 简单实现了登录&#xff0c;验证&#xff0c;登出&#xff0c;目录&#xff0c;增删改查等功能 下面贴代码 conn.php <?phpsessi…

传输层协议 - TCP(Transmission Control Protocol)

文章目录&#xff1a; TCP 协议关于可靠性TCP 协议段格式序号与确认序号六个标志位16位窗口大小 确认应答&#xff08;ACK&#xff09;机制超时重传机制连接管理机制连接建立&#xff08;三次握手&#xff09;连接终止&#xff08;四次挥手&#xff09;TIME_WAIT 状态CLOSE_WAI…

ifconfig

ifconfig ifconfig 是用于配置和显示系统网络接口信息的命令。以下是 ifconfig 输出中常见的一些术语的解释&#xff1a; 网卡&#xff08;Network Interface Card&#xff0c;NIC&#xff09;&#xff1a;网卡是计算机连接到网络的硬件设备&#xff0c;也称为网络适配器或网卡…

V8引擎隐藏类(VIP课程)

上一章我们讲了V8如何存储的对象&#xff0c;其中提到了隐藏类&#xff0c;这一章我们来看看隐藏类到底做了什么。 为什么要讲V8&#xff1f;&#xff1f;&#xff1f;&#xff1f; 隐藏类是V8引擎在运行时自动生成和管理的数据结构&#xff0c;用于跟踪对象的属性和方法 隐藏…

Transformers库总体介绍

Transformers库是什么 Transformers 库是一个在自然语言处理&#xff08;NLP&#xff09;领域广泛使用的强大库&#xff0c;提供了一套全面的工具和预训练模型&#xff0c;用于执行各种 NLP 任务。以下是 transformers 库提供的主要功能&#xff1a; 1.预训练模型&#xff1a…

利用多核的Rust快速Merkle tree

1. 引言 利用多核的Rust快速Merkle tree&#xff0c;开源代码见&#xff1a; https://github.com/anoushk1234/fast-merkle-tree&#xff08;Rust&#xff09; 其具有如下属性&#xff1a; 可调整为任意高度构建root复杂度为O(n)提供了插入和获取叶子节点的方法获取某叶子节…

【嵌入式】将PDF转成PNG

客户给了一个PDF文档,转成PNG后放在项目中 PDF_FILE=$1 OUT_FILE=$2 TMP_FILE=./tmp/ rm -rf ${TMP_FILE} mkdir ${TMP_FILE} gs -sDEVICE=png256 -o "${TMP_FILE}%02d.png" -r144

比Postman强在哪里

Postman的受众对象主要是广大开发人员&#xff0c;调测使用&#xff0c;它并不能完全满足专业测试人员需求&#xff0c;而自动化测试平台可以 1&#xff0c;Postman&#xff0c;Jmter是单机版软件&#xff0c;类似打游戏你和电脑PK&#xff0c;而很多时候是要联网和其他人团队作…