网站建设 的销售图片做语音聊天网站要多少钱
文章目录
- 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)
