First page Back Continue Last page Summary Graphics
Virtual machine vs. virtual OS
UML is technically a virtual OS rather than a virtual machine
- No machine emulation layer
UML can talk directly to host OS
- pseudo-terminals can log to the host
- syslog can go directly to the host
- invisible to root
- root can't interfere
Here, I make a distinction between a virtual OS, which UML is, and a virtual machine, such as VMWare or Bochs, and describe its significance.
A virtual machine separates the host and guest OSes with a hardware emulation layer. This allows a standard OS kernel to run on top of another, but it also isolates them.
UML, as a virtual OS, is aware of the host OS and is able to use all of its capabilities. UML takes advantage of this by having its pseudo-terminals logging directly to files on the host. Similarly, syslog output can go directly to the host by tying the /dev/log socket to a socket on the host. These logging mechanisms are invisible to anyone inside UML, including root, and there is nothing that root inside UML can do to interfere with it.