There are a number of bootable root filesystems available for
download. They cover most of the major distributions and a number of
more specialized, minor ones. They are compressed filesystem images
and typically are downloads of tens of megabytes, uncompressing to
several hundred megs.

If this is too large a download for you, the tomsrtbt filesystem is
small enough to be reasonable for almost everyone. For its size, it
provides an amazing number of tools.

Another possibility is to generate your own filesystem. There are a
number of separate projects which will let you create your own
filesystems from media. They are listed
here
. If you're an
absolute rank UML beginner, downloading one of the preinstalled
filesystems is the better way to go.

Antoine Martin has made a number of UML filesystems and kernel images
available
here
. These are more up to date than what's listed here, so
I'd recommend getting one of his.

This list contains a sample of the most popular filesystem images. To
see the full selection, click the the "whole list" link at the bottom
of the table.

If you are going to grab the standalone kernel or patch below, you
want to pay attention to this section. Otherwise, if you install the
RPM or deb, you can ignore it, since these utilities come with the
packages.

Ocassionally, a new UML needs a new version of one of the utilities.
So, if you don't install one of the packages, you should check the
changelog to see if you need anything new, and, if so, grab, build,
and install the tools from the tarball.

If you don't want to grab one of the packages, you can download
the precompiled kernel binary. In this case, it's up to you to make
sure you have the userspace tools you'll need, and to make sure that
they are up to date with the kernel, since they change occasionally.

This is the brand-new UML test suite. The main driver is test.pl,
which uses the Perl modules UML.pm and UML/*.pm. The tests themselves
are located under tests. Configuration is done in Config.pm. And
that's all the documentation which exists at the moment.

If you want to build UML from source, you can get the patch here; you
could also download the 2.4 ac tree, which has UML in it already, but
now it's no more up-to-date. The patch that's available from here
applies against the appropriate Linus pool. It will also likely apply
against nearby kernels, including his pre-patches, but there are no
guarantees. See
this page
for more
detailed instructions for building UML from source.

Again, if you go this route, you need to make sure that you have
the tools you'll need to fully use UML.

The patch is updated most frequently. I will release a patch for
every CVS update. These patches are named uml-patch-2.4.x-y.bz2. If
you want the latest UML, the latest of these patches is what you
should get.

Here are the 2.4 patches. If you're using the 2.4 kernel because you
think it's more stable, then this is the list you want.

These are the 2.6 patches, for 2.6 kernels earlier than 2.6.9;
starting from that version, an up-to-date UML is included in the
kernel itself, so you might probably use an unpatched 2.6 kernel to
build UML.

Also, these days, probably UML for Linux/2.6 is updated
more frequently and is stabler than UML for Linux/2.4 (it may be
different for you, it can depend a lot on your setup).

These are the patches that need to be applied to the host in order for
UML's new
skas mode
to
work. A given version of UML will look for a specific skas patch and
fall back to tt mode if it's not there. The bootup message will tell
you which version it's looking for in case you're not sure.

These are all against stock 2.4.19, except for the RH one, which is
against the stock RH8 kernel. They are fairly non-intrusive, so they
apply fairly cleanly to any related kernels, and especially to stock
kernels until release 2.4.24.

As of 2.4.25, this patch revision does not apply any more to the Linux
kernel. Also, you need a different patch for 2.6. You can find both
ones on the home page of Paolo Giarrusso, also known as Blaisorblade:
http://www.user-mode-linux.org/~blaisorblade/

This patches implement /dev/anon in the host. /dev/anon is a driver
from which UML can map its physical memory and which has some
advantages over tmpfs or other filesystems because it can free host
memory when it's not needed. However, currently this patch is not well
supported, and has shown to cause some stability problems. It will be
revived in the future, however.