mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Cloning and building a kernel as part of the Xen distribution implicitly advises that this kernel is the best kernel for all users and many users appear to be under this impression, even though there is no fundamental coupling between the Xen distribution and a particular domain 0 kernel. There are several choices available for domain 0 kernel, as well as other user specific variations in requirements e.g. for kernel configurations. It's not clear that whatever the xen build system happens to produce (which is really tailored to the needs of the automated build system) is best for anybody. Coupling the kernel build with the Xen build has proved problematic for stable Xen releases as it implicitly blesses the particular kernel (at a particular point in time) as a constituent part of the Xen release, while in reality the OS kernels are separate entities with their own release cycles which may or may not coincide with the maintenance of Xen stable branches. Therefore disable the building of a kernel as part of the Xen distribution by default and instead direct users to use an OS distribution provided kernel (properly packaged with security updates via the normal distribution mechanisms etc) where possible and give pointers to suitable resources providing guidance for cases where it is not. This decouples the implicit advice as to the best kernel at any moment from Xen's own release cycle and removes the implicit suggestion that only particular domain 0 kernel will do. The actual infrastructure is left in place since the automated test system (currently) relies on it (but always asks for the specific kernel variant it wants for a particular test). (I also tried to remove Linux-isms from the README's Quick start guide. In particular I'm not sure what was supposedly Linux specific about steps 3 and 4 therefore I have removed the suggestion that they are.) Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
154 lines
5.7 KiB
Plaintext
154 lines
5.7 KiB
Plaintext
#################################
|
|
__ __ _ _ _
|
|
\ \/ /___ _ __ | || | / |
|
|
\ // _ \ '_ \ | || |_ | |
|
|
/ \ __/ | | | |__ _|| |
|
|
/_/\_\___|_| |_| |_|(_)_|
|
|
|
|
#################################
|
|
|
|
http://www.xen.org/
|
|
|
|
What is Xen?
|
|
============
|
|
|
|
Xen is a Virtual Machine Monitor (VMM) originally developed by the
|
|
Systems Research Group of the University of Cambridge Computer
|
|
Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen
|
|
is freely-distributable Open Source software, released under the GNU
|
|
GPL. Since its initial public release, Xen has grown a large
|
|
development community, spearheaded by xen.org (http://www.xen.org).
|
|
|
|
The 4.1 release offers excellent performance, hardware support and
|
|
enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and
|
|
live relocation of VMs. Ports to Linux, NetBSD, FreeBSD and Solaris
|
|
are available from the community.
|
|
|
|
This file contains some quick-start instructions to install Xen on
|
|
your system. For full documentation, see the Xen User Manual. If this
|
|
is a pre-built release then you can find the manual at:
|
|
dist/install/usr/share/doc/xen/pdf/user.pdf
|
|
If you have a source release, then 'make -C docs' will build the
|
|
manual at docs/pdf/user.pdf.
|
|
|
|
Quick-Start Guide
|
|
=================
|
|
|
|
First, there are a number of prerequisites for building a Xen source
|
|
release. Make sure you have all the following installed, either by
|
|
visiting the project webpage or installing a pre-built package
|
|
provided by your OS distributor:
|
|
* GCC v3.4 or later
|
|
* GNU Make
|
|
* GNU Binutils
|
|
* Development install of zlib (e.g., zlib-dev)
|
|
* Development install of Python v2.3 or later (e.g., python-dev)
|
|
* Development install of curses (e.g., libncurses-dev)
|
|
* Development install of openssl (e.g., openssl-dev)
|
|
* Development install of x11 (e.g. xorg-x11-dev)
|
|
* bridge-utils package (/sbin/brctl)
|
|
* iproute package (/sbin/ip)
|
|
* hotplug or udev
|
|
* GNU bison and GNU flex
|
|
|
|
Second, you need to acquire a suitable kernel for use in domain 0. If
|
|
possible you should use a kernel provided by your OS distributor. If
|
|
no suitable kernel is available from your OS distributor then refer to
|
|
http://wiki.xen.org/xenwiki/XenDom0Kernels for suggestions for
|
|
suitable kernels to use.
|
|
|
|
[NB. Unless noted otherwise, all the following steps should be
|
|
performed with root privileges.]
|
|
|
|
1. Download and untar the source tarball file. This will be a
|
|
file named xen-unstable-src.tgz, or xen-$version-src.tgz.
|
|
You can also pull the current version from the mercurial
|
|
repository at http://xenbits.xen.org/
|
|
|
|
# tar xzf xen-unstable-src.tgz
|
|
|
|
Assuming you are using the unstable tree, this will
|
|
untar into xen-unstable. The rest of the instructions
|
|
use the unstable tree as an example, substitute the
|
|
version for unstable.
|
|
|
|
2. cd to xen-unstable (or whatever you sensibly rename it to).
|
|
|
|
3. For the very first build, or if you want to destroy build trees,
|
|
perform the following steps:
|
|
|
|
# make world
|
|
# make install
|
|
|
|
This will create and install onto the local machine. It will build
|
|
the xen binary (xen.gz), the tools and the documentation.
|
|
|
|
You can override the destination for make install by setting DESTDIR
|
|
to some value.
|
|
|
|
4. To rebuild an existing tree without modifying the config:
|
|
# make dist
|
|
|
|
This will build and install xen, tools, and docs into the local dist/
|
|
directory.
|
|
|
|
You can override the destination for make install by setting DISTDIR
|
|
to some value.
|
|
|
|
make install and make dist differ in that make install does the
|
|
right things for your local machine (installing the appropriate
|
|
version of hotplug or udev scripts, for example), but make dist
|
|
includes all versions of those scripts, so that you can copy the dist
|
|
directory to another machine and install from that distribution.
|
|
|
|
Python Runtime Libraries
|
|
========================
|
|
|
|
Xend (the Xen daemon) has the following runtime dependencies:
|
|
|
|
* Python 2.3 or later.
|
|
In many distros, the XML-aspects to the standard library
|
|
(xml.dom.minidom etc) are broken out into a separate python-xml package.
|
|
This is also required.
|
|
|
|
URL: http://www.python.org/
|
|
Debian: python, python-xml
|
|
|
|
* For optional SSL support, pyOpenSSL:
|
|
URL: http://pyopenssl.sourceforge.net/
|
|
Debian: python-pyopenssl
|
|
|
|
* For optional PAM support, PyPAM:
|
|
URL: http://www.pangalactic.org/PyPAM/
|
|
Debian: python-pam
|
|
|
|
* For optional XenAPI support in XM, PyXML:
|
|
URL: http://pyxml.sourceforge.net
|
|
YUM: PyXML
|
|
|
|
|
|
Intel(R) Trusted Execution Technology Support
|
|
=============================================
|
|
|
|
Intel's technology for safer computing, Intel(R) Trusted Execution Technology
|
|
(Intel(R) TXT), defines platform-level enhancements that provide the building
|
|
blocks for creating trusted platforms. For more information, see
|
|
http://www.intel.com/technology/security/.
|
|
|
|
Intel(R) TXT support is provided by the Trusted Boot (tboot) module in
|
|
conjunction with minimal logic in the Xen hypervisor.
|
|
|
|
Tboot is an open source, pre- kernel/VMM module that uses Intel(R) TXT to
|
|
perform a measured and verified launch of an OS kernel/VMM.
|
|
|
|
The Trusted Boot module is available from
|
|
http://sourceforge.net/projects/tboot. This project hosts the code in a
|
|
mercurial repo at http://tboot.sourceforge.net/hg/tboot.hg and contains
|
|
tarballs of the source. Instructions in the tboot README describe how
|
|
to modify grub.conf to use tboot to launch Xen.
|
|
|
|
There are optional targets as part of Xen's top-level makefile that will
|
|
download and build tboot: install-tboot, build-tboot, dist-tboot, clean-tboot.
|
|
These will download the latest tar file from the SourceForge site using wget,
|
|
then build/install/dist according to Xen's settings.
|