虚拟化和云
虚拟化的必要条件
每个包含在内核态和用户态的 CPU 都有一个特殊的指令集合,其中的指令在用户态和内核态执行的行为不同,例如进行 I/O 操作和修改 MMU 设置的指令,称之为 敏感指令。还有另一个指令集合,其中的指令在用户态执行时会导致陷入,称之为 特权指令。
如果操作系统发现自己处于用户态,就会做出错误的决策。在 Intel CPU 中引入 VT,在 AMD CPU 中引入 SVM,基本思想为创建可以运行虚拟机的容器,客户操作系统在容器中启动并持续运行,直到触发异常并陷入虚拟机管理程序,例如执行 I/O 指令时,会造成陷入的指令集合由虚拟机管理程序设置的硬件位图控制。有了这些扩展后,在 x86 平台实现经典的陷入并模拟虚拟机成为可能。
第一类和第二类虚拟机管理程序
CPU 虚拟化
内存虚拟化
嵌套页表的硬件支持
回收内存