As ARM CPUs grow in performance and ubiquity across phones, netbooks, and embedded computers, providing virtualization support for ARM-based devices is increasingly important. We present KVM/ARM, a KVM-based virtualization solution for ARM-based devices that can run virtual machines with nearly unmodified operating systems. Because ARM is not virtualizable, KVM/ARM uses lightweight paravirtualization, a script-based method to automatically modify the source code of an operating system kernel to allow it to run in a virtual machine. Lightweight paravirtualization is architecture specific, but operating system independent. It is minimally intrusive, completely automated, and requires no knowledge or understanding of the guest operating system kernel code. By leveraging KVM, which is an intrinsic part of the Linux kernel, KVM/ARM’s code base can be always kept in line with new kernel releases without additional maintenance costs, and can be easily included in most Linux distributions. We have implemented a KVM/ARM prototype based on the Linux kernel used in Google Android, and demonstrated its ability to successfully run nearly unmodified Linux guest operating systems.
[1]
Gerald J. Popek,et al.
Formal requirements for virtualizable third generation architectures
,
1974,
SOSP '73.
[2]
Robert P. Goldberg,et al.
Survey of virtual machine research
,
1974,
Computer.
[3]
Marianne Shaw,et al.
Denali: Lightweight Virtual Machines for Distributed and Networked Applications
,
2001
.
[4]
HarrisTim,et al.
Xen and the art of virtualization
,
2003
.
[5]
Tal Garfinkel,et al.
Virtual machine monitors: current technology and future trends
,
2005,
Computer.
[6]
Ole Agesen,et al.
A comparison of software and hardware techniques for x86 virtualization
,
2006,
ASPLOS XII.
[7]
A. Kivity,et al.
kvm : the Linux Virtual Machine Monitor
,
2007
.
[8]
Sang-Bum Suh,et al.
Xen on ARM: System Virtualization Using Xen Hypervisor for ARM-Based Secure Mobile Phones
,
2008,
2008 5th IEEE Consumer Communications and Networking Conference.