[hypervisor]-AArch64 (hypervisor)Virtualization学习笔记
主流的操作系統都有一個假設,就是這個系統有一個特權模式下的os,之上在跑多個非特權模式的APP.
而ARM的虛擬化技術就是在同一個系統上共存多個操作系統. 實現這種虛擬core需要硬件的擴展(加速虛擬機之間的切換)和hypervisor軟件層的實現.
Virtualization是一個允許多個操作系統共享一套硬件的程序, 下面是一個支持Virtualization的軟件框圖
實現Virtualization需要使用一下several architectural features:
? A dedicated Exception level (EL2) for hypervisor code.
? Support for trapping exceptions that change the core context or state.
? Support for routing exceptions and virtual interrupts.
? Two-stage memory translation, where the second stage is for the hypervisor to isolate the guest operating systems.
? A dedicated exception for Hypervisor Call (HVC).
When hypervisor code in EL2 is executing in AArch64, there are dedicated registers available,including:
? Exception return state registers: SPSR_EL2 and ELR_EL2.
? Stack pointer: SP_EL2 (and SP_EL0).
Hypervisor software
? Memory management.
? Device emulation.
? Device assignment.
? Exception handling.
? Instruction trapping.
? Managing virtual exceptions.
? Interrupt controller management.
? Scheduling.
? Context switching.
? Memory translation.
? Managing multiple virtual address spaces
總結
以上是生活随笔為你收集整理的[hypervisor]-AArch64 (hypervisor)Virtualization学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: optee内核中栈的介绍(二)
- 下一篇: optee内核中栈的介绍(一)