首页/操作系统/操作系统概述/虚拟机 🔗 在 Obsidian 中打开
操作系统 · 操作系统概述

虚拟机

重要度 ★★★★ 虚拟机虚拟化VMHypervisor
速查
虚拟机(VM)用虚拟化技术将一台物理机抽象为多台逻辑计算机。第一类 VMM(裸金属)直接运行在硬件上;第二类 VMM(宿主型)运行在宿主 OS 上。虚拟化本质是分时复用硬件。

基本概念

虚拟机(VM)是利用虚拟化技术将一台物理计算机抽象为多台逻辑计算机的技术。每台虚拟机拥有独立的虚拟硬件(CPU、内存、磁盘、网卡),可运行独立的操作系统。

核心组件Hypervisor / VMM(虚拟机监控器)是虚拟化的核心,负责资源抽象、隔离、调度

两类虚拟机监控器(VMM)

虚拟化层次结构 第一类(裸金属) Guest OS A / B / … VMM(裸金属,直接管硬件) 硬件 第二类(宿主型) Guest OS VMM(应用层) 宿主 OS 硬件
点击上方按钮查看两类 VMM 的层次位置
对比项第一类 VM第二类 VM
VMM 位置直接在硬件上在宿主 OS 上
性能高(接近原生)较低(多一层 OS)
典型用途服务器 / 云计算桌面开发 / 测试
代表产品ESXi、Xen、KVMVirtualBox、VMware Workstation
注意KVM 虽运行在 Linux 上,但利用硬件虚拟化(VT-x)直接管理硬件,属第一类 VMM

虚拟化方式

方式说明特点
全虚拟化VMM 完全模拟硬件,Guest OS 无需修改(二进制翻译)兼容性最好,开销中等
半虚拟化Guest OS 需修改,通过 Hypercall 直接与 VMM 交互性能较好,兼容性差
硬件辅助虚拟化CPU 提供 VT-x/AMD-V 指令集当前主流,兼顾性能与兼容

虚拟机 vs 容器

核心区别VM 有独立 OS 内核,隔离性强、开销大;容器共享宿主 OS 内核,启动快、开销小。
对比项全虚拟化半虚拟化
Guest OS 修改不需要需要
性能中等(二进制翻译开销)较好(直接调用)
兼容性好(任意 OS)差(需适配)

易错点

必记
  1. 第一类 VMM不是操作系统,但承担 OS 的部分功能(资源管理)。
  2. VM 的隔离性比容器强——VM 有独立 OS,容器共享内核。
  3. 全虚拟化中 Guest OS 不知道自己被虚拟化;半虚拟化中 Guest OS 知道
  4. KVM 运行在 Linux 上,但属第一类 VMM(利用硬件虚拟化)。
  5. 虚拟化本质是分时复用硬件,不是真正的"多台计算机"。

记忆卡片

第一类/第二类 VM 核心区别?
第一类 VMM 直接运行在硬件上(裸金属),第二类 VMM 运行在宿主 OS 上。
全/半虚拟化核心区别?
全虚拟化不修改 Guest OS(二进制翻译);半虚拟化需修改 Guest OS(Hypercall)。
VM 与容器主要区别?
VM 有独立 OS 内核(强隔离、开销大);容器共享宿主内核(轻量、弱隔离)。
VMM 的三个基本功能?
资源抽象、资源隔离、资源调度。
KVM 是第几类 VMM?
第一类——虽运行在 Linux 上,但利用硬件虚拟化直接管理硬件。
虚拟化本质?
分时复用硬件资源,不是真正的多台计算机。

交互动画 · VMware 第二类虚拟化层次

手动模式
安装/运行 宿主操作系统(如 Windows)VMM 是它之上的一个普通进程 VMware Workstation(VMM 虚拟机监控器)拦截、模拟客户机的特权指令与中断 特权指令截获 VM1:Windows 客户机虚拟 C: 盘 · 虚拟网卡 · 虚拟 CPU VM2:Linux 客户机虚拟 D: 盘 · 虚拟网卡 · 虚拟 CPU I/O 重定向 物理硬件:CPU · 内存 · 磁盘 · 网卡被两个虚拟机分时复用
应用 → 客户 OS(虚拟 CPU)→ VMM 进程 → 宿主 OS → 硬件
点击「播放」或「下一步」,自底向上搭建 VMware 第二类虚拟机栈
第二类 VMM 运行于宿主 OS 之上:安装简单,但多一层开销
变量配色:宿主层 · VMM 层 · 客户机层,高亮即当前讲解层。

相关知识点

os-concepts-and-features

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。