User-mode Linux: Difference between revisions

Content deleted Content added
No edit summary
Reverted 4 edits by 189.83.62.237 (talk) to last revision by ScotXW. (TW)
Line 1:
{{Infobox |Softwaresoftware
| name =
| title = User-mode Linux
Line 31:
| website = {{URL|http://user-mode-linux.sourceforge.net/}}
}}
"'''User -mode Linux"''' ('''UML''')<ref>{{cite web |url=http://user-mode-linux.sourceforge.net/ |title=User -mode Linux Kernel Home pagePage}}</ref> enables multiple virtual [[Linux kernel]]-based operating systems (known as guests) to run as an application within a normal Linux system (known as the host). As each guest is just a normal application running as a process in [[user space]], this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering security and safety{{Citation needed|date=September 2011}} without affecting the host environment's configuration or stability.
 
== Applications ==
[[File:Libvirt support.svg|thumb|300px|'''User -mode Linux''' is supported by [[libvirt]]]]
Numerous things become possible through the use of UML.<ref>[http://www.landley.net/code/UML.html Rob's quick and dirty UML howto]</ref> One can run [[computer network|network]] services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs.<ref>[http://www.dit.upm.es/vnuml Virtual Network User Mode Linux (VNUML): Virtual network scenarios based on UML]</ref><ref>[http://www.netkit.org NetKit: Emulating a Virtual Network using UML]</ref><ref>[http://www.marionnet.org Marionnet: Another network emulator based on UML]</ref><ref>[http://cloonix.net Cloonix-Net: Virtual Network emulation using UML]</ref><ref>[http://www.cs.mcgill.ca/~anrl/gini GINI: Virtual network based teaching toolkit using UML]</ref> Administrators can use UML to set up [[honeypot (computing)|honeypot]]s, which allow one to test the security of one's computers or network. UML can serve to test and debug new software without adversely affecting the host system. UML can also be used for teaching and research, providing a realistic Linux networked environment with a high degree of safety.
 
In [[UML]] environments, host and guest kernel versions need not match, so it is entirely possible to test a "[[bleeding edge]]" version of Linux in User-mode on a system running a much older kernel. UML also allows kernel debugging to be performed on one machine, where other kernel debugging tools (such as [[kgdb]]) require two machines connected with a [[null modem]] cable.
 
Some [[web hosting]] providers offer UML-powered [[virtual private server|virtual servers]] for lower prices than true [[dedicated hosting service|dedicated servers]]. Each customer has [[Root user|root]] access on what appears to be their own system, while in reality one physical computer is shared between many people.
 
== Integration into the Linux kernel ==
The UML guest application (a [[Gnu Linux |kernel|Linux]] binary [[Executable and Linkable Format|ELF]]) was originally available as a [[patch (computing)|patch]] for some kernelKernel versions above 2.2.x, and the host with any kernel version above 2.2.x supported it easily in the thread mode (i.e., non-SKAS3).
 
As of [[Gnu Linux |kernel|Linux]] 2.6.0, it is integrated into the main [[kernel (computer science)|kernel]] source tree. A method of running a separate kernel address space (SKAS) that does not require host kernel patching has been implemented. 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]]. Unlike the current UML using SKAS, buggy or malicious software inside a UML running on a non-SKAS host could be able to read the memory space of other UML processes or even the UML kernel memory.{{Citation needed|date=October 2012}}
 
== Comparison with other technologies ==
 
"User -mode Linux" is generally considered to have lower performance than some competing technologies, such as [[Xen]] and [[OpenVZ]]{{Citation needed|date=September 2011}}. Future work in adding support for [[x86 virtualization]] to UML may reduce this disadvantage.
 
Often cited as a strength of [[Xen]] (a competing technology) is support for [[thread-local storage]] (TLS). This is now also supported in the latest UML kernels. Xen concentrates on virtualizing the whole machine, and thus all systems running on a Xen machine are really virtual machines. In UML, the host machine is not virtualized in any way, and only guest systems are true virtual machines. This allows UML guest direct access to host filesystems and hardware, where it is common to map a host directory (e.g. /uml/root -> /).
Line 58:
== See also ==
* [[L4Linux]]
* [[GnuCoLinux]] Linux Kernel
* [[MkLinux]]
 
Line 67:
* [http://uml.devloop.org.uk/ More recent kernels and file systems]
* [http://eggdrop.ch/texts/uml/ Running Debian inside of Debian with User-Mode Linux]
* [http://linuxzoo.net/ Linuxzoo: Online free access UMLs]
* [http://www.user-mode-linux.org/~jdike/armin/Virtual-UML-Lab-Presentation.pdf Armin M. Warda: Virtual Labs with User Mode Linux, 2004]
 
{{Linux |kernel}}
 
[[Category:Free virtualization software]]
[[Category:Linux |Kernelkernel variant]]
[[Category:Virtualization-related software for Linux]]