An Introduction to the Palacios Virtual Machine Monitor—Release 1.0

Palacios is a virtual machine monitor (VMM) from the V3VEE Project that is available for public use as a community resource. Palacios is highly configurable and designed to be embeddable into different host operating systems, such as Linux and the Kitten lightweight kernel. Palacios is a non-paravirtualized VMM that makes extensive use of the virtualization extensions in modern Intel and AMD x86 processors. Palacios is a compact codebase, consisting of ∼ 96, 000 lines of C and assembly of which ∼ 40, 000 are in the core VMM, and the remainder are in virtual devices, extensions, an overlay network, and other optional features. Palacios is designed to be easy to understand and readily configurable for different environments. It is unique in being designed to be embeddable into other OSes instead of being implemented in the context of a specific OS. This document describes the overall structure of Palacios and how it works, with a focus on the Linux kernel module variation (other embeddings, such as for Kitten and Minix are documented separately). We also explain how to download and run Palacios, develop within it, and extend it. The author list reflects the writers of this technical report. The Palacios codebase has numerous contributors, as described briefly in Section 16 and on the V3VEE web site (v3vee.org). This project is made possible by support from the National Science Foundation (NSF) via grants CNS-0709168 (Northwestern University), CNS-0707365 (University of New Mexico), and the Department of Energy (DOE) via DE-SC0005343 (Northwestern University, University of Pittsburgh, University of New Mexico, Sandia National Labs, and Oak Ridge National Labs). Initial support for the development of Palacios was provided to Northwestern University via a subcontract from Oak Ridge National Laboratory on grant DE-AC05-00OR22725. Sandia National Laboratory provided seed funding to Northwestern University for multicore guest support. Jack Lange was partially supported by a Symantec Research Labs Fellowship.

[1]  Peter A. Dinda,et al.  Towards Virtual Networks for Virtual Machine Grid Computing , 2004, Virtual Machine Research and Technology Symposium.

[2]  Gil Neiger,et al.  Intel virtualization technology , 2005, Computer.

[3]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX Annual Technical Conference, FREENIX Track.

[4]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.