Downloading, Building, and Running the Palacios Virtual Machine Monitor

Overview

The Palacios VMM can be embedded into existing OSes, with current support for the Kitten HPC OS from Sandia National Labs and the GeekOS teaching OS from the University of Maryland. A minimalist configuration of GeekOS is included with Palacios. To use Palacios with Kitten, which we recommend for most uses, you will need to download Kitten separately.

System Requirements

To build Palacios, we recommend a standard Linux system with up-to-date gcc compiler and header files. In addition to the standard Linux compilation and development tools, the "syslinux" package is also needed to enable building guest images and bootable ISO images.

To run Palacios, you will need a real or emulated AMD x86/64 system with hardware support for virtualization (SVM); This includes most recent AMD Opteron processors as well as versios 0.9.1 or newer of the QEMU full system simulator. Nested paging support requires an AMD processor with hardware nested paging support, which is currently supported on AMD "Barcelona" or newer systems; on systems without nested paging, Palacios reverts to software shadow paging support.

Installation Steps

  1. Download the latest Palacios VM and Kitten host OS release

  2. Unpack Palacios and Kitten into the same directory
    > cd where-id-like-to-build
    > tar xzvf downloaded-file-location/palacios.tar.gz
    > tar xzvf downloaded-file-locaiton/kitten.tar.gz
    	
  3. Build 64-bit Palacios libraries for linking into Kitten host OS
    > make -C palacios/build palacios-full64
    	
  4. Configure and compile Kitten with Palacios by running 'make config'. The default config answers should be sufficient for most systems, with the exception that you want to include support for the palacios VMM when prompted, and you should provide a path to the ISO for the guest image (see details above).
    > make -C kitten config # or menuconfig (w/ ncurses) or xconfig (w/ X11)
    	
  5. Build the kitten palacios combination on a bootable iso image (built into kitten/arch/x86_64/boot/image.iso)
    > make -C kitten isoimage
    	
  6. Boot the resulting image.

Guest ISO images

You will need a guest ISO image to boot on Palacios (and to specify the path to that image in step 4 above). In addition to testing self-virtualization (booting Kitten on top of Kitten/Palacios), we have focused on supporting the following two Linux ISO images that we suggest people use for initial testing and exploration: