annotate README @ 16806:edc95d23493b

xenctx/x86: fix format for readability and add information
Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jan 18 15:27:02 2008 +0000 (2008-01-18)
parents 26fb702fd8cf
children 4b1bbcf18eb5
rev   line source
keir@16275 1 #################################
keir@16275 2 __ __ _____ ____
keir@16275 3 \ \/ /___ _ __ |___ / |___ \
keir@16275 4 \ // _ \ '_ \ |_ \ __) |
keir@16275 5 / \ __/ | | | ___) | / __/
keir@16275 6 /_/\_\___|_| |_| |____(_)_____|
keir@16275 7
keir@16275 8 #################################
cl349@9840 9
keir@16275 10 http://www.xen.org/
cl349@9840 11
cl349@9840 12 What is Xen?
cl349@9840 13 ============
cl349@9840 14
cl349@9840 15 Xen is a Virtual Machine Monitor (VMM) originally developed by the
cl349@9840 16 Systems Research Group of the University of Cambridge Computer
cl349@9840 17 Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen
cl349@9840 18 is freely-distributable Open Source software, released under the GNU
cl349@9840 19 GPL. Since its initial public release, Xen has grown a large
cl349@9840 20 development community, spearheaded by XenSource Inc, a company created
cl349@9840 21 by the original Xen development team to build enterprise products
cl349@9840 22 around Xen.
cl349@9840 23
keir@16275 24 The 3.2 release offers excellent performance, hardware support and
cl349@9840 25 enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and
cl349@9840 26 live relocation of VMs. This install tree contains source for a Linux
kfraser@14883 27 2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris are
kfraser@14883 28 available from the community.
cl349@9840 29
cl349@9840 30 This file contains some quick-start instructions to install Xen on
cl349@9840 31 your system. For full documentation, see the Xen User Manual. If this
cl349@9840 32 is a pre-built release then you can find the manual at:
cl349@9840 33 dist/install/usr/share/doc/xen/pdf/user.pdf
cl349@9840 34 If you have a source release, then 'make -C docs' will build the
cl349@9840 35 manual at docs/pdf/user.pdf.
cl349@9840 36
cl349@9840 37 Quick-Start Guide - Pre-Built Binary Release
cl349@9840 38 ============================================
cl349@9840 39
cl349@9840 40 [NB. Unless noted otherwise, all the following steps should be
cl349@9840 41 performed with root privileges.]
cl349@9840 42
cl349@9840 43 1. Install the binary distribution onto your filesystem:
cl349@9840 44
cl349@9840 45 # sh ./install.sh
cl349@9840 46
cl349@9840 47 Among other things, this will install Xen and Xen-ready Linux
cl349@9840 48 kernel files in /boot, kernel modules and Python packages in /lib,
cl349@9840 49 and various control tools in standard 'bin' directories.
cl349@9840 50
cl349@9840 51 2. Configure your bootloader to boot Xen and an initial Linux virtual
cl349@9840 52 machine. Note that Xen currently only works with GRUB and pxelinux
cl349@9840 53 derived boot loaders: less common alternatives such as LILO are
cl349@9840 54 *not* supported. You can most likely find your GRUB menu file at
cl349@9840 55 /boot/grub/menu.lst: edit this file to include an entry like the
cl349@9840 56 following:
cl349@9840 57
keir@16275 58 title Xen 3.2 / XenLinux 2.6
keir@16275 59 kernel /boot/xen-3.2.gz console=vga
cl349@9840 60 module /boot/vmlinuz-2.6-xen root=<root-dev> ro console=tty0
cl349@9840 61 module /boot/initrd-2.6-xen.img
cl349@9840 62
cl349@9840 63 NB: Not all kernel configs need an initial ram disk (initrd), but
cl349@9840 64 if you do specify one you'll need to use the 'module' grub directive
cl349@9840 65 rather than 'initrd'.
cl349@9840 66
cl349@9840 67 The linux command line takes all the usual options, such as
cl349@9840 68 root=<root-dev> to specify your usual root partition (e.g.,
kaf24@10068 69 /dev/hda1).
cl349@9840 70
cl349@9840 71 The Xen command line takes a number of optional arguments described
cl349@9840 72 in the manual. The most common is 'dom0_mem=xxxM' which sets the
cl349@9840 73 amount of memory to allocate for use by your initial virtual
cl349@9840 74 machine (known as domain 0). Note that Xen itself reserves about
cl349@9840 75 32MB memory for internal use, which is not available for allocation
kaf24@10068 76 to virtual machines.
cl349@9840 77
keir@16275 78 3. Reboot your system and select the "Xen 3.2 / XenLinux 2.6" menu
cl349@9840 79 option. After booting Xen, Linux will start and your initialisation
cl349@9840 80 scripts should execute in the usual way.
cl349@9840 81
cl349@9840 82 Quick-Start Guide - Source Release
cl349@9840 83 ==================================
cl349@9840 84
cl349@9840 85 First, there are a number of prerequisites for building a Xen source
cl349@9840 86 release. Make sure you have all the following installed, either by
cl349@9840 87 visiting the project webpage or installing a pre-built package
cl349@9840 88 provided by your Linux distributor:
kfraser@14883 89 * GCC v3.4 or later
cl349@9840 90 * GNU Make
cl349@9840 91 * GNU Binutils
cl349@9840 92 * Development install of zlib (e.g., zlib-dev)
cl349@9840 93 * Development install of Python v2.3 or later (e.g., python-dev)
kfraser@10797 94 * Development install of curses (e.g., libncurses-dev)
kfraser@14168 95 * Development install of openssl (e.g., openssl-dev)
kfraser@14168 96 * Development install of x11 (e.g. xorg-x11-dev)
cl349@9840 97 * bridge-utils package (/sbin/brctl)
cl349@9840 98 * iproute package (/sbin/ip)
cl349@9840 99 * hotplug or udev
cl349@9840 100
cl349@9840 101 [NB. Unless noted otherwise, all the following steps should be
cl349@9840 102 performed with root privileges.]
cl349@9840 103
cl349@9840 104 1. Download and untar the source tarball file. This will be a
cl349@9840 105 file named xen-unstable-src.tgz, or xen-$version-src.tgz.
kfraser@15291 106 You can also pull the current version from the mercurial
kfraser@15291 107 repository at http://xenbits.xensource.com/
cl349@9840 108
cl349@9840 109 # tar xzf xen-unstable-src.tgz
cl349@9840 110
cl349@9840 111 Assuming you are using the unstable tree, this will
cl349@9840 112 untar into xen-unstable. The rest of the instructions
cl349@9840 113 use the unstable tree as an example, substitute the
cl349@9840 114 version for unstable.
cl349@9840 115
cl349@9840 116 2. cd to xen-unstable (or whatever you sensibly rename it to).
cl349@9840 117
cl349@9840 118 On Linux:
cl349@9840 119
cl349@9840 120 3. For the very first build, or if you want to destroy existing
cl349@9840 121 .configs and build trees, perform the following steps:
cl349@9840 122
cl349@9840 123 # make world
cl349@9840 124 # make install
cl349@9840 125
kaf24@10068 126 This will create and install onto the local machine. It will build
cl349@9840 127 the xen binary (xen.gz), and a linux kernel and modules that can be
cl349@9840 128 used in both dom0 and an unprivileged guest kernel (vmlinuz-2.6.x-xen),
cl349@9840 129 the tools and the documentation.
cl349@9840 130
kaf24@10068 131 You can override the destination for make install by setting DESTDIR
cl349@9840 132 to some value.
cl349@9840 133
kaf24@10068 134 The make command line defaults to building the kernel vmlinuz-2.6.x-xen.
kaf24@10068 135 You can override this default by specifying KERNELS=kernelname. For
kaf24@10068 136 example, you can make two kernels - linux-2.6-xen0
kaf24@10068 137 and linux-2.6-xenU - which are smaller builds containing only selected
kaf24@10068 138 modules, intended primarily for developers that don't like to wait
cl349@9840 139 for a full -xen kernel to build. The -xenU kernel is particularly small,
cl349@9840 140 as it does not contain any physical device drivers, and hence is
cl349@9840 141 only useful for guest domains.
cl349@9840 142
cl349@9840 143 To make these two kernels, simply specify
cl349@9840 144
cl349@9840 145 KERNELS="linux-2.6-xen0 linux-2.6-xenU"
cl349@9840 146
cl349@9840 147 in the make command line.
cl349@9840 148
cl349@9840 149 4. To rebuild an existing tree without modifying the config:
cl349@9840 150 # make dist
cl349@9840 151
cl349@9840 152 This will build and install xen, kernels, tools, and
kaf24@10068 153 docs into the local dist/ directory.
cl349@9840 154
kaf24@10068 155 You can override the destination for make install by setting DISTDIR
cl349@9840 156 to some value.
cl349@9840 157
kaf24@10068 158 make install and make dist differ in that make install does the
kaf24@10068 159 right things for your local machine (installing the appropriate
kaf24@10068 160 version of hotplug or udev scripts, for example), but make dist
kaf24@10068 161 includes all versions of those scripts, so that you can copy the dist
cl349@9840 162 directory to another machine and install from that distribution.
cl349@9840 163
cl349@9840 164 5. To rebuild a kernel with a modified config:
cl349@9840 165
cl349@9840 166 # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig)
cl349@9840 167 # make linux-2.6-xen-build
cl349@9840 168 # make linux-2.6-xen-install
cl349@9840 169
cl349@9840 170 Depending on your config, you may need to use 'mkinitrd' to create
kaf24@10068 171 an initial ram disk, just like a native system e.g.
kfraser@15291 172 # depmod 2.6.18-xen
kfraser@15291 173 # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18-xen.img 2.6.18-xen
kfraser@15291 174
kfraser@15291 175 Other systems may requires the use of 'mkinitramfs' to create the
kfraser@15291 176 ram disk.
kfraser@15291 177 # depmod 2.6.18-xen
kfraser@15291 178 # mkinitramfs -o initrd-2.6.18-xen.img 2.6.18-xen
ewan@14706 179
ewan@14706 180
ewan@14706 181 Python Runtime Libraries
ewan@14706 182 ========================
ewan@14706 183
ewan@14706 184 Xend (the Xen daemon) has the following runtime dependencies:
ewan@14706 185
ewan@14706 186 * Python 2.3 or later.
ewan@14706 187 In many distros, the XML-aspects to the standard library
ewan@14706 188 (xml.dom.minidom etc) are broken out into a separate python-xml package.
ewan@14706 189 This is also required.
ewan@14706 190
ewan@14706 191 URL: http://www.python.org/
ewan@14706 192 Debian: python, python-xml
ewan@14706 193
ewan@14706 194 * For optional SSL support, pyOpenSSL:
ewan@14706 195 URL: http://pyopenssl.sourceforge.net/
ewan@14706 196 Debian: python-pyopenssl
ewan@14706 197
ewan@14706 198 * For optional PAM support, PyPAM:
ewan@14706 199 URL: http://www.pangalactic.org/PyPAM/
ewan@14706 200 Debian: python-pam
tom@14833 201
tom@14833 202 * For optional XenAPI support in XM, PyXML:
tom@14833 203 URL: http://pyxml.sourceforge.net
tom@14833 204 YUM: PyXML
keir@16275 205
keir@16275 206
keir@16275 207 Intel(R) Trusted Execution Technology Support
keir@16275 208 =============================================
keir@16275 209
keir@16275 210 Intel's technology for safer computing, Intel(R) Trusted Execution Technology
keir@16275 211 (Intel(R) TXT), defines platform-level enhancements that provide the building
keir@16275 212 blocks for creating trusted platforms. For more information, see
keir@16275 213 http://www.intel.com/technology/security/.
keir@16275 214
keir@16275 215 Intel(R) TXT support is provided by the Trusted Boot (tboot) module in
keir@16275 216 conjunction with minimal logic in the Xen hypervisor.
keir@16275 217
keir@16275 218 Tboot is an open source, pre- kernel/VMM module that uses Intel(R) TXT to
keir@16275 219 perform a measured and verified launch of an OS kernel/VMM.
keir@16275 220
keir@16275 221 The Trusted Boot module is available from
keir@16275 222 http://sourceforge.net/projects/tboot. This project hosts the code in a
keir@16275 223 mercurial repo at http://tboot.sourceforge.net/hg/tboot.hg and contains
keir@16275 224 tarballs of the source. Instructions in the tboot README describe how
keir@16275 225 to modify grub.conf to use tboot to launch Xen.
keir@16275 226
keir@16275 227 There are optional targets as part of Xen's top-level makefile that will
keir@16275 228 downlaod and build tboot: install-tboot, build-tboot, dist-tboot, clean-tboot.
keir@16275 229 These will download the latest tar file from the SourceForge site using wget,
keir@16275 230 then build/install/dist according to Xen's settings.