虚拟化和容器

文章目录

  • 1 介绍
    • 1.1 简介
    • 1.2 虚拟化工作原理
    • 1.3 两大核心组件:QEMU、KVM
      • QEMU
      • KVM
    • 1.4 发展历史
    • 1.5 虚拟化类型
    • 1.6 云计算与虚拟化
    • 1.7 Hypervisor
      • Hypervisor分为两大类
    • 1.8 虚拟化 VS 容器
  • 2 虚拟化应用
    • docker
      • docker 与虚拟机的区别
    • K8S
    • wine
  • 参考

1 介绍

1.1 简介

虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。

1.2 虚拟化工作原理

在这里插入图片描述

1.3 两大核心组件:QEMU、KVM

QEMU

  • QEMU是I/O控制的模块,可以理解为队列,核心目的是调用资源内核中的资源,需要把KVM逻辑分割出来的资源运输给QEMU,再给虚拟机。
  • QEMU它并不是直接调用,而是用I/O方式调用,QEMU把资源调用来的过程借用ioctl,QEMU借助libvirt这个工具调用ioctl,再通过接口,给虚拟机应用程序。

KVM

  • 用来逻辑分割物理资源,抽象化为虚拟化资源,根据VMM里的配置,会逻辑分割出多少G,给应用程序,去进行虚拟化。
  • 只接受来自QEMU的请求指令。对于应用程序直接过来的敏感指令会拦截,然后通过接口发给QEMU,让QEMU判断是否需要执行,可以的话,再下来,不可以的话,打回去,不执行该敏感指令。

1.4 发展历史

在这里插入图片描述
1974年,两位计算机科学家Gerald Popek 和 Robert Goldberg发表了一篇重要的论文《虚拟化第三代体系结构的正式要求》,在这篇论文中提出了虚拟化的三个基本条件:

  • 等价性:程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异)
  • 安全性:虚拟机彼此隔离,与宿主计算机隔离
  • 性能:绝大多数情况下虚拟机中的代码指令应该直接在物理CPU中执行,少部分特殊指令可由VMM参与。

1.5 虚拟化类型

全虚拟化:将物理硬件资源全部通过软件的方式抽象化,最后进行调用
半虚拟化:需要修改操作系统
全虚拟化:【KVM】产品vmware—ce
半虚拟化:【EXSI】workststion vsphere

1.6 云计算与虚拟化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SaaS: Software-as-a-Service(软件即服务)
PaaS: Platform-as-a-Service(平台即服务)
IaaS: Infrastructure-as-a-Service(基础设施即服务)

1.7 Hypervisor

Hypervisor,汉译为“超级监督者”,也叫做VMM(Virtual Machine Monitor,虚拟机监视器),它是一类软件的统称。

Hypervisor分为两大类

  • Type I: 直接凌驾于硬件之上,构建出多个隔离的操作系统环境
  • Type II: 依赖于宿主操作系统,在其上构建出多个隔离的操作系统环境pp

在这里插入图片描述
像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。

1.8 虚拟化 VS 容器

在这里插入图片描述

2 虚拟化应用

docker

Docker是创建容器的工具,属于轻量级虚拟机。
Docker能够运行Windows实际上是通过QEMU完成的,Docker做的事情只是把QEMU的这个环境打包成一个独立的环境。
在这里插入图片描述

docker 与虚拟机的区别

不同点Docker容器虚拟机
启动速度快(几秒)慢(几分钟)
行性能接近原生(直接在内核中运行)运行于Hypervisor上,50%左右损失
磁盘占用小,设置几十kb(根据镜像层的情况)非常大(GB)
并发性一台宿主机可以启动成百上千个容器最多几十个虚拟机
隔离性进程级别资源隔离、限制
操作系统主要支持Linux主要支持Linux
封装程度打包项目代码和依赖关系,共享宿主机内核完整的操作系统,与宿主机隔离

K8S

K8S,就是Kubernetes,中文意思是舵手或导航员。Kubernetes这个单词很长,所以大家把中间8个字母缩写成8,就成了K8S。
在这里插入图片描述

wine

Wine完成的目标是“在Linux系统上,运行Windows应用程序“。
Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是將 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。

参考

1、Docker:简单了解虚拟化和容器概念
2、看懂云计算、虚拟化和容器,这一篇就够啦!
3、虚拟化软件Docker、Wine、Qemu、KVM有什么区别?
4、懂了!VMware/KVM/Docker原来是这么回事儿
5、系统–车载系统
6、机器人开发–OS系统介绍
7、ubuntu虚拟机中使用QEMU搭建ARM64环境
8、Wine(ubuntu)

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

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

相关文章

springBoot对接Apache POI 实现excel下载和上传

搭建springboot项目 此处可以参考 搭建最简单的SpringBoot项目_Steven-Russell的博客-CSDN博客 配置Apache POI 依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.2</version> </…

FastChat工作原理解析

在了解FastChat如何完成大模型部署前&#xff0c;先了解下Huggingface提供的Transformer库。Hugggingface提供的Transformer库 Hugging Face 的 Transformers 库是一个用于自然语言处理&#xff08;NLP&#xff09;任务的 Python 库&#xff0c;旨在简化和加速使用预训练语言模…

手写Spring:第5章-注入属性和依赖对象

文章目录 一、目标&#xff1a;注入属性和依赖对象二、设计&#xff1a;注入属性和依赖对象三、实现&#xff1a;注入属性和依赖对象3.0 引入依赖3.1 工程结构3.2 注入属性和依赖对象类图3.3 定义属性值和属性集合3.3.1 定义属性值3.3.2 定义属性集合 3.4 Bean定义补全3.5 Bean…

android 注解详解

1&#xff0c;注解的概念 注解现在广泛的应用于android的各个开源框架中&#xff0c;不理解注解&#xff0c;我们就无法更好的提升我们的架构能力。那么什么是注解呢&#xff1f;注解&#xff08;Annotation&#xff09;&#xff0c;是JDK5.0 引入的一种注释机制。 注解是元数…

go的iris框架进行本地资源映射到服务端

我这里使用的是HandleDirapi,有其他的请补充 package mainimport ("github.com/kataras/iris/v12" )type Hello struct{Status int json:"status"Message string json:"message" }func main(){app : iris.New()//第一个api:相当于首页app.Get(&q…

飞猪店铺小管家软件需求分析说明书

飞猪店铺小管家软件 项目背景&#xff1a; 在飞猪店铺运营过程中&#xff0c;客服人数不足导致客服团队忙不过来&#xff0c;容易出现订票信息错误&#xff0c;进而客户无法顺利参观景点&#xff0c;频繁投诉。这种情况不仅影响客户体验&#xff0c;还可能导致商家因赔付而承受…

出行类APP商业化路径解决方案

当下市场主流的商业化路径和方法相比于之前区别不大&#xff0c;开发者们都是在现有商业化体系下&#xff0c;制定更加详细、优质的策略&#xff0c;以期获得更高利益。 出行类App用户结构分析 年龄层次&#xff1a;出行类App用户的年龄分布比较广泛&#xff0c;主要集中在20…

苹果电脑版虚拟机推荐 VMware Fusion Pro for mac(vm虚拟机)

VMware Fusion Pro是一款功能强大的虚拟化软件&#xff0c;专为Mac用户设计。它允许用户在Mac上创建、运行和管理虚拟机&#xff0c;以便同时运行多个操作系统和应用程序。 以下是VMware Fusion Pro的一些主要特点和功能&#xff1a; 1. 多操作系统支持&#xff1a;VMware Fu…

MySQL--数据库基础

数据库分类 数据库大体可以分为 关系型数据库 和 非关系型数据库 常用数据类型 数值类型&#xff1a; 分为整型和浮点型&#xff1a; 字符串类型 日期类型

试图替代 Python 的下一代AI编程语言:Mojo

文章目录 为什么叫 Mojo &#xff1f;Python 家族的一员&#xff0c;MojoPython 的好处&#xff1a;Python 兼容性Python 的问题移动和服务器部署&#xff1a;Python 子集和其他类似 Python 的语言&#xff1a; Mojo 是一种创新的编程语言&#xff0c;结合了 Python 的可用性和…

组件以及组件间的通讯

组件 & 组件通讯 :::warning 注意 阅读本文章之前&#xff0c;你应该先要了解 ESM 模块化的 import export&#xff0c;如需要请查看 ESM 模块化。 ::: 上一篇有介绍到什么是组件化&#xff0c;就是把一个页面拆分成若干个小模块&#xff0c;然后重新组成一个页面。其中的…

BL110设备支持Modbus TCP协议接入

随着物联网技术的不断发展&#xff0c;越来越多的工业设备被连接到云平台上&#xff0c;以实现远程监控和管理。在这篇文章中&#xff0c;我们将介绍如何方便用户快速把多种工业设备接入几个主流的云平台&#xff0c;如华为云 IoT、AWS IoT、阿里云 IoT、ThingsBoard、金鸽云等…

基于 Transformation-Equivariant 的自动驾驶 3D 目标检测

论文地址&#xff1a;https://arxiv.org/abs/2211.11962 论文代码&#xff1a;https://github.com/hailanyi/TED 论文背景 三维场景中的物体分布有不同的方向。普通探测器不明确地模拟旋转和反射变换的变化。需要大的网络和广泛的数据增强来进行鲁棒检测。 equivariant netw…

项目01—基于nignx+keepalived双vip的负载均衡高可用Web集群

文章目录 一.项目介绍1.拓扑图2.详细介绍 二.前期准备1.项目环境2.IP划分 三. 项目步骤1.ansible部署软件环境1.1 安装ansible环境1.2 建立免密通道1.3 批量部署nginx 2.配置NFS服务器和负载均衡器搭建keepalived2.1 修改nginx的index.html界面2.2 nginx实现七层负载均衡2.4 使…

《C++设计模式》——创建型

前言 创建型为了创建东西才是有用的&#xff0c;创建型设计模式使用的场景&#xff1a; 1、创建一个东西&#xff1b; 2、可重复利用&#xff1b; 3、灵活性高&#xff0c;代码可因地制宜。 Factory Method(工厂模式) 工厂模式将目的将创建对象的具体过程屏蔽隔离起来&#…

三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍

三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍 三维模型3DTile格式的轻量化处理旨在减少模型的存储空间和提高渲染性能。以下是一些推荐的工具软件&#xff0c;可以用于实现这个目的&#xff1a; MeshLab&#xff1a;MeshLab是一个开源的三维模型处理软件&#xff0c…

RBTree(红黑树)模拟实现(插入)

目录 红黑树的性质 红黑树的模拟插入 叔叔存在且为红色 叔叔不存在 旋转情况​​​​​​​ 叔叔存在且为黑色 总结 插入实现 节点 插入逻辑 左单旋 右单旋 红黑树是一颗平衡搜索二叉树&#xff0c;但是红黑树并不像 AVL 树一样是高度平衡二叉树&#xff0c;任意一…

自动化运维——ansible (五十二) (01)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、概述 1.1 为什么要用自动化运维软件 1.2 自动化运维 1.3 自动化运维要注意的方面 1.4 自动化运维主要关注的方面 1.5 常见的开源自动化运维软件 1.6 自动化运维软件…

华为OD机试 - 单词接龙 - 数据结构map、list (Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、输入示例1、输入&#xff1a;2、输出3、说明 五、解题思路1、核心思想&#xff1a;2、核心算法是构建一个map&#xff1a; 六、Java算法源码七、效果展示1、输入2、输出3、说明4、没有移除后再次拼接的情况&#xff0c;改…

Vue中实现3D得球自动旋转

具体实现 安装echarts 在终端下安装echarts npm install -D echarts 安装echarts-gl 在终端下安装echarts-gl npm install -D echarts-gl earth3D组件 earth3D.vue <template><div class"globe3d-earth-container" ><div class"globe3d-earth&qu…