2__ __ _ _ _____ _ _ _
3\ \/ /___ _ __ | || | |___ | _ _ _ __ ___| |_ __ _| |__ | | ___
4 \ // _ \ '_ \ | || |_ / /____| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
5 / \ __/ | | | |__ _| / /_____| |_| | | | \__ \ || (_| | |_) | | __/
6/_/\_\___|_| |_| |_|(_)_/ \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
12What is Xen?
15Xen is a Virtual Machine Monitor (VMM) originally developed by the
16Systems Research Group of the University of Cambridge Computer
17Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen
18is freely-distributable Open Source software, released under the GNU
19GPL. Since its initial public release, Xen has grown a large
20development community, spearheaded by xen.org (http://www.xen.org).
22This file contains some quick-start instructions to install Xen on
23your system. For more information see http:/www.xen.org/ and
29First, this is just a quick-start guide. For more comprehensive
30information see the INSTALL file and the Xen wiki at
31http://wiki.xenproject.org and in particular
34Second, there are a number of prerequisites for building a Xen source
35release. Make sure you have all the following installed, either by
36visiting the project webpage or installing a pre-built package
37provided by your OS distributor:
38 * GCC v4.1 or later
39 * GNU Make
40 * GNU Binutils
41 * Development install of zlib (e.g., zlib-dev)
42 * Development install of Python v2.3 or later (e.g., python-dev)
43 * Development install of curses (e.g., libncurses-dev)
44 * Development install of openssl (e.g., openssl-dev)
45 * Development install of x11 (e.g. xorg-x11-dev)
46 * Development install of uuid (e.g. uuid-dev)
47 * Development install of yajl (e.g. libyajl-dev)
48 * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
50 * Development install of GLib v2.0 (e.g. libglib2.0-dev)
51 * Development install of Pixman (e.g. libpixman-1-dev)
52 * pkg-config
53 * bridge-utils package (/sbin/brctl)
54 * iproute package (/sbin/ip)
55 * GNU bison and GNU flex
56 * GNU gettext
57 * 16-bit x86 assembler, loader and compiler (dev86 rpm or bin86 & bcc debs)
58 * ACPI ASL compiler (iasl)
59 * Libc multiarch package (e.g. libc6-dev-i386 / glibc-devel.i686).
60 Required when building on a 64-bit platform to build
61 32-bit components which are enabled on a default build.
63In addition to the above there are a number of optional build
64prerequisites. Omitting these will cause the related features to be
65disabled at compile time:
66 * Development install of Ocaml (e.g. ocaml-nox and
67 ocaml-findlib). Required to build ocaml components which
68 includes the alternative ocaml xenstored.
69 * cmake (if building vtpm stub domains)
70 * markdown
71 * figlet (for generating the traditional Xen start of day banner)
72 * systemd daemon development files
73 * Development install of libnl3 (e.g., libnl-3-200,
74 libnl-3-dev, etc). Required if network buffering is desired
75 when using Remus with libxl. See docs/README.remus for detailed
78Second, you need to acquire a suitable kernel for use in domain 0. If
79possible you should use a kernel provided by your OS distributor. If
80no suitable kernel is available from your OS distributor then refer to
81http://wiki.xen.org/wiki/XenDom0Kernels for suggestions for
82suitable kernels to use.
83If you are looking to compile a Dom0 kernel from source, please refer to
86[NB. Unless noted otherwise, all the following steps should be
87performed with root privileges.]
891. Download and untar the source tarball file. This will be a
90 file named xen-unstable-src.tgz, or xen-$version-src.tgz.
91 You can also pull the current version from the git or mercurial
92 repositories at http://xenbits.xen.org/
94 # tar xzf xen-unstable-src.tgz
96 Assuming you are using the unstable tree, this will
97 untar into xen-unstable. The rest of the instructions
98 use the unstable tree as an example, substitute the
99 version for unstable.
1012. cd to xen-unstable (or whatever you sensibly rename it to).
1033. For the very first build, or if you want to destroy build trees,
104 perform the following steps:
106 # ./configure
107 # make world
108 # make install
110 See the documentation in the INSTALL file for more info.
112 This will create and install onto the local machine. It will build
113 the xen binary (xen.gz), the tools and the documentation.
115 You can override the destination for make install by setting DESTDIR
116 to some value.
1184. To rebuild an existing tree without modifying the config:
119 # make dist
121 This will build and install xen, tools, and docs into the local dist/
124 You can override the destination for make install by setting DISTDIR
125 to some value.
127 make install and make dist differ in that make install does the
128 right things for your local machine (installing the appropriate
129 version of udev scripts, for example), but make dist includes all
130 versions of those scripts, so that you can copy the dist directory
131 to another machine and install from that distribution.
133xenstore: xenstored and oxenstored
136Xen uses a configuration database called xenstore  to maintain configuration
137and status information shared between domains. A daemon is implemented as part
138of xenstore to act as an interface for access to the database for dom0 and
139guests. Two xenstored daemons are supported, one written in C which we refer
140to as the xenstored (sometimes referred to as cxenstored), and another written
141in Ocaml called oxenstored. Details for xenstore and the different
142implementations can be found on the wiki's xenstore reference guide  and
143the xenstored  page. You can choose which xenstore you want to enable as
144default on a system through configure:
146 ./configure --with-xenstored=xenstored
147 ./configure --with-xenstored=oxenstored
149By default oxenstored will be used if the ocaml development tools are found.
150If you enable oxenstored the xenstored will still be built and installed,
151the xenstored used can be changed through the configuration file:
157You can change the preferred xenstored you want to use in the configuration
158but since we cannot stop the daemon a reboot will be required to make the
159change take effect.
165Python Runtime Libraries
168Various tools, such as pygrub, have the following runtime dependencies:
170 * Python 2.3 or later.
171 URL: http://www.python.org/
172 Debian: python
174Intel(R) Trusted Execution Technology Support
177Intel's technology for safer computing, Intel(R) Trusted Execution Technology
178(Intel(R) TXT), defines platform-level enhancements that provide the building
179blocks for creating trusted platforms. For more information, see
182Intel(R) TXT support is provided by the Trusted Boot (tboot) module in
183conjunction with minimal logic in the Xen hypervisor.
185Tboot is an open source, pre- kernel/VMM module that uses Intel(R) TXT to
186perform a measured and verified launch of an OS kernel/VMM.
188The Trusted Boot module is available from
189http://sourceforge.net/projects/tboot. This project hosts the code in a
190mercurial repo at http://tboot.sourceforge.net/hg/tboot.hg and contains
191tarballs of the source. Instructions in the tboot README describe how
192to modify grub.conf to use tboot to launch Xen.
194There are optional targets as part of Xen's top-level makefile that will
195download and build tboot: install-tboot, build-tboot, dist-tboot, clean-tboot.
196These will download the latest tar file from the SourceForge site using wget,
197then build/install/dist according to Xen's settings.