Abstract
Virtualization technology has been a hot topic in recent years due to the prevalence of cloud computing. However, many have shifted their focus from server side virtualization to embedded virtualization to enhance security and boost system reliability, increase software portability and support execution of heterogeneous OSs. We have implemented ARMvisor, a KVM based hypervisor that is capable of virtualizing ARMv6 architecture. Memory virtualization is known to be the most complicated part in the design of a hypervisor. The correctness of in-directed memory translation in guest virtual machines must be ensured while isolating virtualization machines from accessing the hypervisor. In this thesis, we will cover several design strategies we have adopted for memory virtualization in ARMvisor for ARMv6 MMU. We use shadow page tables to translate guest virtual address to host physical address. ARM’s domain is used to efficiently transform and de-privilege guest VMs in user mode. We further propose paravirtualization techniques including PT modification hypercalls and ASID re-mapping to optimize the performance. The evaluation of benchmarks in both LMBench and MiBench will be demonstrated in the thesis.