User-mode Linux is a port of the Linux kernel to Linux. A rationale for doing this can follow from viewing a computer running Linux to be a ``hardware platform'' in the sense of considering whether it is capable of running a full-featured operating system. From this point of view, the special capabilities that would normally be provided by the processor, such as privileged instructions, special registers, and special memory regions, are instead provided by the Linux system call interface. The question that is immediately raised is whether that interface provides everything needed to implement Linux.
UML proves that the answer is ``yes''. It is a full-fledged port of the Linux kernel. It occupies a location in the kernel source tree3 alongside the other ports, it implements the same interface as the other ports, and the generic (architecture-independent) kernel can't tell that there's anything different about this one. UML makes almost no changes in the generic kernel, and the changes that it does make are invisible to the other ports.