aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README204
1 files changed, 13 insertions, 191 deletions
diff --git a/README b/README
index b56495a69c..a45e7f3213 100644
--- a/README
+++ b/README
@@ -8,203 +8,25 @@ __ __ ____ ___
###############################
University of Cambridge Computer Laboratory
-28 October 2004
+29 October 2004
-http://www.cl.cam.ac.uk/netos/xen
+http://www.cl.cam.ac.uk/netos/xen/
About the Xen Virtual Machine Monitor
=====================================
-"Xen" is a Virtual Machine Monitor (VMM) originally developed by the
+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.
+Laboratory, as part of the UK-EPSRC funded XenoServers project.
-The XenoServers project aims to provide a "public infrastructure for
-global distributed computing", and Xen plays a key part in that,
-allowing us to efficiently partition a single machine to enable
-multiple independent clients to run their operating systems and
-applications in an environment providing protection, resource
-isolation and accounting. The project web page contains further
-information along with pointers to papers and technical reports:
-http://www.cl.cam.ac.uk/xeno
+The 2.0 release offers excellent performance, hardware support and
+enterprise-grade features such as live migration. Linux 2.6, 2.4 and
+NetBSD 2.0 are already available for Xen, with more operating system
+ports on the way.
-Xen has since grown into a project in its own right, enabling us to
-investigate interesting research issues regarding the best techniques
-for virtualizing resources such as the CPU, memory, disk and network.
-The project has been bolstered by support from Intel Research
-Cambridge, and HP Labs, who are now working closely with us.
-
-Xen enables multiple operating system images to execute concurrently
-on the same hardware with very low performance overhead --- much lower
-than commercial offerings for the same x86 platform.
-
-This is achieved by requiring OSs to be specifically ported to run on
-Xen, rather than allowing unmodified OS images to be used. Crucially,
-only the OS needs to be changed -- all of the user-level application
-binaries, libraries etc can run unmodified. Hence the modified OS
-kernel can typically just be dropped into any existing OS distribution
-or installation.
-
-Xen currently runs on the x86 architecture, but could in principle be
-ported to others. In fact, it would have been rather easier to write
-Xen for pretty much any other architecture as x86 is particularly
-tricky to handle. A good description of Xen's design, implementation
-and performance is contained in our October 2003 SOSP paper, available
-at http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf
-[update: work to port Xen to x86_64 and IA64 is underway]
-
-To date five different operating systems have been ported to run on
-Xen 2.0: Linux 2.4/2.6, NetBSD, FreeBSD and Plan 9.
-
-The Linux 2.4 and 2.6 ports works very well -- we regularly use them
-to host complex applications such as PostgreSQL, Apache, BK servers
-etc. It runs every user-space applications we've tried. We refer to
-our version of Linux ported to run on Xen as "XenLinux", although
-really it's just standard Linux ported to a new virtual CPU
-architecture that we call xen-x86.
-
-NetBSD has been ported to Xen by Christian Limpach, and will hopefully
-soon become part of the standard release. Work on a FreeBSD port has
-been started by Kip Macy, and we hope to see this complete for the 2.0
-release. Ron Minnich has been working on Plan 9.
-
-A version of Windows XP was ported to an earlier version of Xen, but
-can not be released due to licensing restrictions. We are
-investigating alternative approaches to getting Windows XP/2003
-running on Xen, but have no firm timetable as yet.
-
-So, for the moment, you only get to run Linux 2.4/2.6 and NetBSD on
-Xen, but we hope this will change before long. Even running multiple
-copies of the same OS can be very useful, as it provides a means of
-containing faults to one OS image, and also for providing performance
-isolation between the various OS, enabling you to either restrict, or
-reserve resources for, particular VM instances.
-
-It's also useful for development -- each version of Linux can have
-different patches applied, enabling different kernels to be tried
-out. For example, the "vservers" patch used by PlanetLab applies
-easily to our ported version of Linux.
-
-We've successfully booted over 128 copies of Linux on the same machine
-(a dual CPU hyperthreaded Xeon box) but we imagine that it would be
-more normal to use some smaller number, perhaps 10-20.
-
-A common question is "how many virtual machines can I run on hardware
-xyz?". The answer is very application dependent, but the rule of thumb
-is that you should expect to be able to run the same workload under
-multiple guest OSs that you could run under a single Linux instance,
-with an additional overhead of a few MB per OS instance.
-
-One key feature in this new release of Xen is `live migration'. This
-enables virtual machines instances to be dynamically moved between
-physical Xen machines, with typical downtimes of just a few tens of
-milliseconds. This is really useful for admins that want to take a
-node down for maintenance, or to load balance a large number of
-virtual machines across a cluster.
-
-
-Hardware support
-================
-
-Xen is intended to be run on server-class machines, and the current
-list of supported hardware very much reflects this, avoiding the need
-for us to write drivers for "legacy" hardware. It is likely that some
-desktop chipsets will fail to work properly with the default Xen
-configuration: specifying 'noacpi' or 'ignorebiostables' when booting
-Xen may help in these cases.
-
-Xen requires a "P6" or newer processor (e.g. Pentium Pro, Celeron,
-Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron).
-Multiprocessor machines are supported, and we also have basic support
-for HyperThreading (SMT), although this remains a topic for ongoing
-research. We're also working on an AMD x86_64 port (though Xen should
-run on Opterons in 32-bit mode just fine).
-
-Xen can currently use up to 4GB of memory. It's possible for x86
-machines to address more than that (64GB), but it requires using a
-different page table format (3-level rather than 2-level). We
-currently don't support the 3-level format, as we are concentrating
-our efforts on an x86_64 port that will provide a better solution to
-large memory configurations.
-
-In contrast to previous Xen versions, in Xen 2.0 device drivers run
-within a privileged guest OS rather than within Xen itself. This means
-that we should be compatible with almost the full set of device
-hardware supported by Linux. The default XenLinux build contains
-support for relatively modern server-class network and disk hardware,
-but you can add suppport for other hardware by configuring your
-XenLinux kernel in the normal way (e.g. "make xconfig").
-
-
-Building Xen and XenLinux
-=========================
-
-The public master BK repository for the 2.0 release lives at:
-bk://xen.bkbits.net/xen-2.0.bk
-
-To fetch a local copy, install the BitKeeper tools, then run:
-'bk clone bk://xen.bkbits.net/xen-2.0.bk'
-
-You can do a complete build of Xen, the control tools, and the
-XenLinux kernel images with "make world". This can take 10 minutes
-even on a fast machine. If you're on an SMP machine you may wish to
-give the '-j4' argument to make to get a parallel build. All of the
-files that are built are placed under the ./install directory. You
-can then install everything to the standard system directories
-(e.g. /boot, /usr/bin, /usr/lib/python/ etc) by typing "make install".
-
-Take a look in install/boot/:
- install/boot/xen.gz The Xen 'kernel' (formerly image.gz)
- install/boot/vmlinuz-2.4.27-xen0 Domain 0 XenLinux kernel (xenolinux.gz)
- install/boot/vmlinuz-2.4.27-xenU Unprivileged XenLinux kernel
-
-The difference between the two Linux kernels that are built is
-due to the configuration file used for each. The "U" suffixed
-unprivileged version doesn't contain any of the physical hardware
-device drivers, so is 30% smaller and hence may be preferred for
-your non-privileged domains.
-
-The install/boot directory will also contain the config files
-used for building the XenLinux kernels, and also versions of Xen
-and XenLinux kernels that contain debug symbols (xen-syms and
-vmlinux-syms-2.4.27-xen0) which are essential for interpreting crash
-dumps.
-
-Inspect the Makefile if you want to see what goes on during a
-build. Building Xen and the tools is straightforward, but XenLinux is
-more complicated. The makefile needs a 'pristine' linux kernel tree
-which it will then add the Xen architecture files to. You can tell the
-makefile the location of the appropriate linux compressed tar file by
-setting the LINUX_SRC environment variable
-(e.g. "LINUX_SRC=/tmp/linux-2.4.27.tar.gz make world") or by placing
-the tar file somewhere in the search path of LINUX_SRC_PATH which
-defaults to ".:..". If the makefile can't find a suitable kernel tar
-file it attempts to download it from kernel.org, but this won't work
-if you're behind a firewall.
-
-After untaring the pristine kernel tree, the makefile uses the
-'mkbuildtree' script to add the Xen patches the kernel. "make world"
-then build two different XenLinux images, one with a "-xen0" extension
-which contains hardware device drivers and is intended to be used in
-the first virtual machine ("domain 0"), and one with a "-xenU"
-extension that just contains virtual-device drivers. The latter can be
-used for all non hardware privileged domains, and is substantially
-smaller than the other kernel with its selection of hardware drivers.
-
-If you don't want to use bitkeeper to download the source, you can
-download prebuilt binaries and src tar balls from the project
-downloads page: http://www.cl.cam.ac.uk/netos/xen/downloads/
-
-
-Using the domain control tools
-==============================
-
-Before starting domains you'll need to start the node management
-daemon: "xend start".
-The primary tool for starting and controlling domains is "xm".
-"xm help <cmd>" will tell you how to use it.
-
-Further documentation is in the docs/ directory. Postscript, PDF and
-HTML versions of the user manual can be found in the ps/, pdf/ and
-html/ subdirectories.
+Xen is freely-distributable Open Source software, released under the
+GNU GPL.
+For full documentation, see the Xen User Manual in docs/pdf/user.pdf
+(after running make -C docs) or the Documentation page on the Xen
+website.