ARM虚拟化技术的实现

  1. 主流的操作系统都有一个假设,就是这个系统有一个特权模式之下的OS,之上在跑多个非特权模式的APP;而ARM的虚拟化技术就是在同一个系统上共存多个操作系统,实现这种虚拟技术需要硬件的扩展(加速虚拟机之间的切换)和Hypervisor软件层的提供一些必要的功能。
  2. 硬件扩展:
  • 用于处理虚拟化代码的异常级别EL2;
  • 支持捕获更改内核上下文或状态的异常;
  • 支持路由异常和虚拟中断;
  • 两阶段的内存地址转换,其中第二阶段为hypervisor用来隔离客户端操作系统;
  • hypervisor call(hvc)的专用异常;
  • 需要一些专用的寄存器:SPSR_EL2 ELR_EL2 SP_EL2
  1. Hypervisor软件层:
  • memory management
  • device emulation 设备仿真
  • device assignment 设备分配
  • exception handing
  • instruction trapping
  • managing virtual execptions
  • interrupt controller management
  • scheduling
  • context switching
  • memory translation
  • managing multiple virtual address spaces

ARM虚拟化技术的实现