2 Downloading, Building, and Running the Palacios Virtual Machine Monitor
7 The Palacios VMM can be embedded into existing OSes, with current
8 support for the Kitten HPC OS from Sandia National Labs and the GeekOS
9 teaching OS from the University of Maryland. A minimalist configuration
10 of GeekOS is included with Palacios. To use Palacios with Kitten, which
11 we recommend for most uses, you will need to download Kitten separately.
16 To build Palacios, we recommend a standard Linux system with up-to-date
17 gcc compiler and header files. In addition to the standard Linux
18 compilation and development tools, the "syslinux" package is also needed
19 to enable building guest images and bootable ISO images.
21 To run Palacios, you will need a real or emulated AMD x86/64 system with
22 hardware support for virtualization (SVM); This includes most recent AMD
23 Opteron processors as well as versios 0.9.1 or newer of the QEMU full
24 system simulator. Nested paging support requires an AMD processor with
25 hardware nested paging support, which is currently supported on AMD
26 "Barcelona" or newer systems; on systems without nested paging, Palacios
27 reverts to software shadow paging support.
32 1. Download the latest Palacios VM and Kitten host OS release
33 * Palacios Release Site <http://www.v3vee.org/download>
34 * Kitten Release Site <https://software.sandia.gov/trac/kitten>
36 2. Unpack Palacios and Kitten into the same directory
38 > cd where-id-like-to-build
39 > tar xzvf downloaded-file-location/palacios.tar.gz
40 > tar xzvf downloaded-file-locaiton/kitten.tar.gz
43 3. Build 64-bit Palacios libraries for linking into Kitten host OS
45 > make -C palacios/build palacios-full64
48 4. Configure and compile Kitten with Palacios by running 'make
49 config'. The default config answers should be sufficient for most
50 systems, with the exception that you want to include support for
51 the palacios VMM when prompted, and you should provide a path to
52 the ISO for the guest image (see details above).
54 > make -C kitten config # or menuconfig (w/ ncurses) or xconfig (w/ X11)
57 5. Build the kitten palacios combination on a bootable iso image
58 (built into kitten/arch/x86_64/boot/image.iso)
60 > make -C kitten isoimage
63 6. Boot the resulting image.
66 > qemu-system-x86_64 -m 1024 -cdrom kitten/arch/x86_64/boot/image.iso
69 * For hardware, boot the kitten kernel
70 (kitten/arch/x86_64/boot/bzImage) as the kernel and the
71 init_task program (in kitten/init_task) as the initial
72 ramdisk. (The isoimage containing the guest OS is bundled up
73 as part of the init_task image).
78 You will need a guest ISO image to boot on Palacios (and to specify the
79 path to that image in step 4 above). In addition to testing
80 self-virtualization (booting Kitten on top of Kitten/Palacios), we have
81 focused on supporting the following two Linux ISO images that we suggest
82 people use for initial testing and exploration:
84 * 32-bit Puppy Linux version 3.0
85 <http://www.puppylinux.org/downloads/official-releases>
86 * 64-bit Finnix Linux version 92.0 <http://www.finnix.org/Download>