Appearance
虚拟机
考情分析
虚拟机是近年新增考点,了解两类虚拟机的区别即可。🔥 低频。
云服务器上一台物理机同时跑着几十个用户的 OS 实例,它们互不干扰——这种"一台机器变多台"的魔法是怎么实现的?
虚拟机的概念
虚拟机(Virtual Machine, VM):通过软件模拟,在一台物理机上运行多个相互隔离的虚拟计算机,每个虚拟机都可以运行独立的操作系统。
虚拟机监控程序(VMM / Hypervisor):管理虚拟机的软件层,负责将物理资源分配给各虚拟机。
两类虚拟机
第一类(Type 1):直接运行在硬件上
| 特点 | 说明 |
|---|---|
| VMM 位置 | 直接运行在硬件上 |
| 性能 | 高(无宿主 OS 开销) |
| 典型产品 | VMware ESXi, Xen |
| 应用场景 | 数据中心、云计算 |
第二类(Type 2):运行在宿主 OS 上
| 特点 | 说明 |
|---|---|
| VMM 位置 | 运行在宿主 OS 之上 |
| 性能 | 较低(多了一层 OS) |
| 典型产品 | VMware Workstation, VirtualBox |
| 应用场景 | 个人开发、测试 |
两类 VMM 对比
| 比较 | Type 1 | Type 2 |
|---|---|---|
| 运行在 | 硬件之上 | 宿主 OS 之上 |
| 性能 | 高 | 较低 |
| 管理复杂度 | 高 | 低(安装方便) |
| Guest OS 权限 | VMM 模拟特权指令 | 依赖宿主 OS |
虚拟化的关键问题
特权指令的处理
Guest OS 在虚拟机中运行在用户态,无法执行特权指令。解决方案:
| 方法 | 说明 |
|---|---|
| 陷入-模拟 | Guest OS 执行特权指令时产生异常,VMM 捕获并模拟执行——类似于小孩(Guest OS)以为自己在开车,其实方向盘没接真的轮子,大人(VMM)在后面真正控制 |
| 二进制翻译 | VMM 扫描 Guest OS 代码,替换敏感指令 |
| 半虚拟化 | 修改 Guest OS 源码,将敏感操作替换为对 VMM 的调用 |
| 硬件辅助 | CPU 提供硬件虚拟化支持(Intel VT-x / AMD-V) |
虚拟机 vs 进程
| 比较 | 虚拟机 | 进程 |
|---|---|---|
| 隔离级别 | OS 级别隔离 | 进程级别隔离 |
| 运行内容 | 完整的操作系统 | 单个程序 |
| 资源消耗 | 大(需要独立 OS) | 小 |
| 启动速度 | 慢 | 快 |
考研高频考点
- 🔥🔥 Type 1 vs Type 2 VMM 的区别
- 🔥 虚拟机中 Guest OS 运行在用户态,特权指令需要 VMM 处理
- 🔥 虚拟化的核心问题:敏感指令的处理
概述章节到此结束。从下一章开始进入操作系统的核心主题——进程管理,首先来看"进程"这个概念是怎么被提出的,以及进程与程序的本质区别。