Xen is a hypervisor virtual machine that runs multiple open-source operating systems.

(or whatever the name of the RPM is).

Installing Xen from source is more complicated, as it involves patching and recompiling the Linux kernel. Installing from source is not covered in this article, and is described thoroughly in the Xen User Manual (www.cl.cam.ac.uk/Research/SRG/netos/xen/documentation.html).

Configuring the Bootloader

After Xen has been installed, we need to configure the bootloader. For GRUB users, edit the menu.lst file, and add this entry:

title Xen
kernel /boot/xen-3.0.gz dom0_mem=32768 module
-->/boot/vmlinuz-2.6-xen0 root=/dev/hda7 ro console=tty0

vmlinuz-2.6-xen0 is the kernel image that would have been installed by the tarball binaries or RPM; if you install from source, replace the name of the image here.

Also be sure to replace the name of the root filesystem to suit your system (in this example, it is root=/dev/hda7).

For LILO users, do the following:


After Xen has been installed and configured, you are now ready to boot in to Xen and start your first virtual machine.

After rebooting and starting your Xen installation, which resembles a normal Linux startup, log in to Domain0. That is the most-privileged domain in a Xen system.

From here, users can create virtual machines that will run guest operating systems, and start and stop virtual machines.

To create a new virtual machine, you need to define a configuration file for it. Xen comes with two default configuration files in the /etc/xen directory named xmexample1/ amd xmexample2/. The configuration files contain many parameters, but fortunately, many of them are optional. You need only a few configured parameters to get your virtual machine running. Some important parameters include:

  • Kernel: which kernel to boot.

  • Root: the root filesystem.

  • Disk: on which disk partition the system is installed.

  • Memory: define how much memory the virtual machine should use.

A sample configuration file may look like this:

kernel = '/boot/vmlinuz-'

disk = [ 'phy:hda1,hda1,w' ]

root = '/dev/hda1 ro'

memory = 128

After declaring a configuration file for the virtual machine, you can boot up the machine by typing the following:

bash# xm create -c /root/myOSconf vmid=1

where myOsconf is the name of the configuration file.

After this, a new window will pop up, and you will see a normal Linux startup until you reach the login screen, and from there you can enjoy your new guest OS.


Xen is mature, open-source virtualization software that creates many new opportunities for organizations in reducing their total cost of ownership and providing more dependable and high-availability applications. Commodity x86-based systems provide all of this, with a minimum cost of porting an operating system to Xen.

The developers of Xen have tested Xen against other popular virtualization solutions, such as VMware Workstation and user-mode Linux. In all tests conducted, Xen out-performed the other approaches—in standard benchmark tests, such as Spec Int200, Spec Web99, dbench and many more. The results were published in a research paper, available at www.cl.cam.ac.uk/Research/SRG/netos/papers/2003-xensosp.pdf.

Irfan Habib has been an open-source enthusiast for five years. He has great interest in distributed computing technologies, in which he does full-time research, and he loves to explore new solutions to common problems in computing. Comments can be sent to him at irfan.habib@gmail.com.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Mr. Habib: You mention in

moschlegel's picture

Mr. Habib:

You mention in the article:

"VMware's approach does have one large advantage over Xen's approach. VMware is capable of virtualizing proprietary operating systems. As I discuss later in this article, you have to port an operating system's kernel to Xen for it to work with Xen. You cannot run an operating system on Xen otherwise."

I'm not sure this is exactly correct, in the case of Xen running
on a cpu with AMD-v or Intel VT hardware extentions, you can
run proprietary OS's raw with no porting of the guest OS to xen.
In the case of AMD, you'd have to use a AM2 or later chip or
with Intel any of the recent Core 2, Xeon or other chips with
Vanderpool support.
Mark Schlegel

Geek Guide
The DevOps Toolbox

Tools and Technologies for Scale and Reliability
by Linux Journal Editor Bill Childers

Get your free copy today

Sponsored by IBM

Upcoming Webinar
8 Signs You're Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th
Moderated by Linux Journal Contributor Mike Diehl

Sign up now

Sponsored by Skybot