1、基本模型
Hypervisor运行在一个新的非安全模式,称为Hyp模式,Hypervisor负责客户操作系统的切换
客户操作系统运行在非安全特权和非特权模式。
用于安全扩展的软件不需要任何改变,因为Hypervisor本身没有用到安全模式的任何状态。
2、虚拟化的扩展如下
非安全状态下的Hyp模式
中断处理
内存管理
load和store的模拟来提供虚拟外设的处理
一些trap用来处理Hypervisor相关的特殊情况。
Hyp模式,是一种在非安全状态下最高的一种模式,能够控制比其他模式更多的功能。为了更好的对arm的虚拟化
进行描述,我们采用如下术语:
内核模式,是指六种模式的集合,Supervisor, System , Abort, FIQ和IRQ,Undef
特权模式,是指七种模式的集合,Supervisor, System , Abort, FIQ和IRQ,Undef,以及Monitor
非特权模式,是指一种模式的集合,即 User
Hyp模式在CPSR和SPSR中的模式编码中为11010
与其他的模式相同,Hyp需要有自己的SP和SPSR来保存自己的栈指针和状态,但是对于bank LR寄存器,会有一定的问题。理论上
我们应该允许Hypervisor在任何时刻都可以接收中断。但是当hypervisor模式下,hypervisor自己的LR保存着过程返回直的时候,
这时候如果有中断和异常发生,则会导致LR的数据被中断或者异常的返回地址覆盖。
3、指令的扩展
一个新的指令ERET
ERET的功能在于在 Hyp模式下执行的时候,Spsr_hyp的内容赋给CPSR而ELR_Hyp的值赋给PC