当前位置: 首页 > news >正文

虚拟化和容器

文章目录

  • 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.lryc.cn/news/158739.html

相关文章:

  • LeetCode-78-子集
  • js对象转json文件
  • 【免费模板】2023数学建模国赛word+latex模板免费分享
  • 基于HBuilder X平台下的 驾校报名考试管理系统 uniapp 微信小程序3n9o5
  • 电商3D资产优化管线的自动化
  • Android 大图显示优化方案-加载Gif 自定义解码器
  • Leetcode.664 奇怪的打印机
  • 正中优配:散户怎么实现T+0?散户在股市上怎么变相T+0?
  • ZooInspector
  • 2023高教社杯 国赛数学建模B题思路 - 多波束测线问题
  • 【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(9 月 4 日论文合集)
  • 游戏优化注意点
  • 【unity3D】如何修改相机的默认视角
  • Docker的初级使用
  • minimumLineSpacing和minimumInteritemSpacing问题研究
  • 【操作系统】聊聊Linux内存工作机制
  • MySQL索引的类型有哪些?
  • 【JavaScript】在指定dom元素前面创建标签元素
  • ARMv8 TTBRx寄存器
  • C51智能小车(循迹、跟随、避障、测速、蓝牙、wifie、4g、语音识别)总结
  • 回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测
  • Kubernetes(k8s)部署高可用多主多从的Redis集群
  • 算法专题:前缀和
  • bs4库爬取天气预报
  • l8-d8 TCP并发实现
  • 编写中间件以用于 Express 应用程序
  • 【2023年数学建模国赛】D题解题思路
  • python爬虫之正则表达式学习
  • 智慧能源方案:TSINGSEE青犀AI算法中台在能源行业的应用
  • 达梦数据库awr报告收集