QEMU和KVM

虚拟化概述

  • 虚拟化的例子
    • 进程 –> 一个操作系统,运行多个应用程序
    • 模拟器 –> 一个指令集的CPU,运行多个指令集的应用程序
      • 比如QEMU、Bochs模拟器
    • 编程语言虚拟机 –> 虚拟指令集(字节码),实现跨平台的应用程序
      • 比如Java虚拟机、Python虚拟机
    • 系统虚拟化 –> 对整个计算机系统进行虚拟化
      • 比如VMware Workstation、VirtualBox、HyperV、Xen
  • 系统虚拟化的实现
    • 硬件虚拟化
      • 比如Intel VT-x、AMD-V
      • CPU提供虚拟化指令集
    • Linux内核的KVM
      • 作为虚拟机监控器(Virtual Machine Monitor,VMM)
      • KVM提供用户态创建虚拟机的接口
    • 用户态的应用程序
      • 比如QEMU
      • 模拟计算机系统中的更多设备等

QEMU和KVM的架构