UML is a port of the Linux kernel. It differs from the other ports in being a port to an operating system's system call interface rather than to a hardware interface. It shares this property with the Linux/S390 port, which is a port of Linux to IBM's VM operating system. UML is a port of Linux to Linux.
I make a point of saying that UML is a full-blown Linux which implements its own scheduler and VM system and uses the host OS only for hardware emulation. This is because it is a common misperception that UML uses either the host's scheduler or VM system.