Appearance
题目
关于虚拟化技术,下列说法错误的是( )。
错因
A
把"虚拟机里只能跑应用"误当成事实。虚拟机的核心定位就是为客户机操作系统(Guest OS)提供一个"看起来是真硬件"的执行环境——VMware/VirtualBox/Hyper-V 上跑 Windows、Linux 都是日常操作。否则虚拟机的存在意义就消失了一大半。这一项明显是对的,不应误选为"错误说法"。
B
把"虚拟机=虚拟硬件资源切片"和"主机只有一套硬件"绑死了。一台物理主机的 CPU、内存可以被 VMM 切分给多个虚拟机轮流使用——云厂商动辄一台服务器上跑几十台 VM 就是这个原理。"一对一"的限制不存在。
D
把"虚拟机必须和宿主同 ISA"和"虚拟化"等同了。纯虚拟化(如 KVM、VMware ESXi)确实要求 Guest 与 Host 同 ISA,靠特权指令陷入处理;但更广义的"虚拟机技术"包含 ISA 仿真器(如 QEMU 的 system-mode 全仿真),可以在 x86 主机上跑 ARM/RISC-V/MIPS 的 OS——靠软件解码每条目标指令再用宿主指令模拟出来,速度慢但跨 ISA。所以"模拟多种 ISA"在虚拟机技术的语境下成立。
总解析
核心知识点:VMM 的特权级。
为了让 VMM 能截获 Guest OS 试图执行的特权指令(修改页表、关中断、I/O 等),VMM 必须运行在比 Guest OS 更高的特权级——Guest OS 自以为在 Ring 0,但实际上被 VMM"降级"或被硬件虚拟化扩展(Intel VT-x / AMD-V)放在 root mode(俗称 Ring -1)下托管。如果 VMM 与 Guest OS 同特权级,Guest OS 一执行特权指令就直接生效,VMM 拦不住,整个虚拟化机制瓦解。
逐项判定:
| 选项 | 论断 | 对错 | 理由 |
|---|---|---|---|
| A | OS 可以在虚拟机上运行 | ✓ | 虚拟机的本质就是为 Guest OS 提供"虚拟硬件" |
| B | 一台主机支持多个虚拟机 | ✓ | 云计算的基本前提,CPU/内存按时分/空分切片 |
| C | VMM 与 OS 特权级相同 | ✗ | VMM 必须高于 Guest OS(root mode / Ring -1),否则无法截获特权指令 |
| D | 可模拟多种 ISA | ✓ | 含义涵盖 QEMU 等仿真器,软件全仿真即可跨 ISA |
两条经典口诀:
- "VMM 是 OS 之上的 OS"——它的特权级严格高于 Guest OS
- "虚拟机 ≠ 同构虚拟机"——同构(KVM 等)和异构(QEMU 仿真)都属于虚拟机技术
题目问"错误的",反向措辞要看清。最终答案是 C。