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