User-mode Linux: Difference between revisions

Content deleted Content added
Bender the Bot (talk | contribs)
m HTTP to HTTPS for SourceForge
 
(15 intermediate revisions by 11 users not shown)
Line 30:
| genre = [[Virtualization]]
| license = [[GNU General Public License]]
| website = {{URL|httphttps://user-mode-linux.sourceforge.net/}}
}}
'''User-mode Linux''' ('''UML''') is an architectural [[porting|port]] of the [[Linux kernel]] to its own [[system call]] interface, which 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). A Linux kernel compiled for the ''um'' architecture can then boot as a process under another Linux kernel, entirely in [[user space]], without affecting the host environment's configuration or stability.
 
'''User-mode Linux''' ('''UML''') is a [[virtualization]] system for the [[Linux]] operating system based on an architectural [[porting|port]] of the [[Linux kernel]] to its own [[system call]] interface, which 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). A Linux kernel compiled for the ''um'' architecture can then boot as a process under another Linux kernel, entirely in [[User space and kernel space|user space]], without affecting the host environment's configuration or stability.
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 some isolation, generally without affecting the host environment's configuration or stability.
 
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.
 
== Applications ==
Line 44 ⟶ 45:
| last=Landley
| date=2009-12-16
| access-date=20192023-08-2908}}</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>{{cite web
| url=https://web.dit.upm.es/vnumlwiki/
| title=Virtual Network User-Mode-Linux
| date=2012-02-13
| access-date=20192023-08-2908}}</ref><ref>{{cite web
| url=http://wiki.netkit.org/index.php/Features
| title=Netkit: Features
| date=2009-12-03
| access-date=20192023-08-29}}</ref><ref>{{cite web08
| archive-date=2020-05-11
| archive-url=https://web.archive.org/web/20200511195253/http://wiki.netkit.org/index.php/Features
| url-status=dead
}}</ref><ref>{{cite web
| url=http://www.marionnet.org/site/?en
| title=Marionnet: a virtual network laboratory
| authorsauthor1=Jean-Vincent Loddo & |author2=Luca Saiu
| access-date=20192023-08-2908}}</ref><ref>{{cite web
| url=https://clownix.net/doc_stored/build-03-04/singlehtml/index.html
| title=Cloonix Documentation: v03-04
| date=2019-06-01
| access-date=20192023-08-2908}}</ref><ref>{{cite web
| url=https://www.cs.mcgill.ca/~anrl/gini/
| title=Welcome to GINI! A Toolkit for Constructing User-Level Micro Internets
| date=2009-09-28
| publisher=[[McGill University]]
| access-date=20192023-08-2908}}</ref> Administrators can use UML to set up [[honeypot (computing)|honeypot]]s,<ref>{{cite web
| url=httphttps://user-mode-linux.sourceforge.net/old/honeypots.html
| title=UML as a honeypot
| date=2007-07-13
| access-date=20192023-08-2908}}</ref> 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 don't need to 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.
Line 85 ⟶ 90:
The UML guest application (a [[Linux kernel|Linux]] binary [[Executable and Linkable Format|ELF]]) was originally available as a [[patch (computing)|patch]] for some Kernel 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 [[Linux kernel|Linux]] 2.6.0, it is integrated into the main [[kernel (computeroperating sciencesystem)|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.<ref>{{CitationCite book |title=User Mode Linux |last=Dike |first=Jeff needed|date=October2006-04-12 2012|publisher=[[Prentice Hall]] |isbn=9780131865051 |pages=197}}</ref>
 
== Comparison with other technologies ==
Line 98 ⟶ 103:
== See also ==
* [[L4Linux]]
* [[CoLinuxcoLinux]]
* [[MkLinux]]