This method gives the user a way to run many virtual Linux machines on a single piece of hardware, allowing some isolation, typically without changing the configuration or stability of the host environment because each guest is just a regular application running as a process in user space.
UML can also be used for teaching and research, providing a realistic Linux networked environment with a high degree of safety.
Each customer has root access on what appears to be their own system, while in reality one physical computer is shared between many people.
This improves performance and security over the old Traced Thread approach, in which processes running in the UML share the same address space from the host's point of view, which leads the memory inside the UML to not be protected by the memory management unit.
[citation needed] Future work in adding support for x86 virtualization to UML may reduce this disadvantage.