User-mode Linux
Encyclopedia
User-mode Linux enables multiple virtual Linux
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 excellent security and safety without affecting the host environment's configuration or stability.
services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs. Administrators can use UML to set up 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 server
s for lower prices than true dedicated servers
. Each customer has root access on what appears to be their own system, while in reality one physical computer is shared between many people.
binary ELF
) was originally available as a 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
2.6.0, it is integrated into the main 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.
and OpenVZ
. 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.
processors, but has also been ported to other architectures including IA-64 and PowerPC
; the only currently working port is to the x86-64
architecture.
User-mode Linux (UML) enables multiple virtual Linux
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 excellent security and safety without affecting the host environment's configuration or stability.
services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs. Administrators can use UML to set up 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 server
s for lower prices than true dedicated servers
. Each customer has root access on what appears to be their own system, while in reality one physical computer is shared between many people.
binary ELF
) was originally available as a 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
2.6.0, it is integrated into the main 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.
and OpenVZ
. 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.
processors, but has also been ported to other architectures including IA-64 and PowerPC
; the only currently working port is to the x86-64
architecture.
User-mode Linux (UML) enables multiple virtual Linux
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 excellent security and safety without affecting the host environment's configuration or stability.
services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs. Administrators can use UML to set up 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 server
s for lower prices than true dedicated servers
. Each customer has root access on what appears to be their own system, while in reality one physical computer is shared between many people.
binary ELF
) was originally available as a 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
2.6.0, it is integrated into the main 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.
and OpenVZ
. 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.
processors, but has also been ported to other architectures including IA-64 and PowerPC
; the only currently working port is to the x86-64
architecture.
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
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
User space
A conventional computer operating system usually segregates virtual memory into kernel space and user space. Kernel space is strictly reserved for running the kernel, kernel extensions, and most device drivers...
, this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering excellent security and safety without affecting the host environment's configuration or stability.
Applications of UML
Numerous things become possible through the use of UML. One can run networkComputer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....
services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs. Administrators can use UML to set up honeypot
Honeypot (computing)
In computer terminology, a honeypot is a trap set to detect, deflect, or in some manner counteract attempts at unauthorized use of information systems...
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
Bleeding edge
Bleeding edge technology is technology that is so new that it could have a high risk of being unreliable and may incur greater expense in order to use it...
" 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
KGDB
KGDB is a debugger for the Linux kernel. It requires two machines that are connected via a serial connection. The serial connection may either be an RS-232 interface using a null modem cable, or via the UDP/IP networking protocol .KGDB was originally implemented as a patch to Linux kernel, but it...
) require two machines connected with a null modem
Null modem
Null modem is a communication method to connect two DTEs directly using an RS-232 serial cable. The name stems from the historical use of the RS-232 cable to connect two teleprinter devices to modems in order to communicate with one another; null modem communication was possible by instead using...
cable.
Some web hosting providers offer UML-powered virtual server
Virtual server
Virtual server may refer to:* Virtual private server, a method of server hosting using virtual machines.* Virtual hosting, a method that servers such as webservers use to host more than one domain name on the same computer....
s for lower prices than true dedicated servers
Dedicated hosting service
A dedicated hosting service, dedicated server, or managed hosting service is a type of Internet hosting in which the client leases an entire server not shared with anyone. This is more flexible than shared hosting, as organizations have full control over the server, including choice of operating...
. Each customer has 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 LinuxLinux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
binary ELF
Executable and Linkable Format
In computing, the Executable and Linkable Format is a common standard file format for executables, object code, shared libraries, and core dumps. First published in the System V Application Binary Interface specification, and later in the Tool Interface Standard, it was quickly accepted among...
) was originally available as a patch
Patch (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...
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
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
2.6.0, it is integrated into the main 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
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
. 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.
Comparison with other technologies
User-mode Linux is generally considered to have lower performance than some competing technologies, such as XenXen
Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently....
and OpenVZ
OpenVZ
OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, Virtual Private Servers , or Virtual Environments...
. Future work in adding support for x86 virtualization
X86 virtualization
In computing, x86 virtualization is the facility that allows multiple operating systems to simultaneously share x86 processor resources in a safe and efficient manner, a facility generically known as hardware virtualization...
to UML may reduce this disadvantage.
Often cited as a strength of Xen
Xen
Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently....
(a competing technology) is support for Thread Local Storage
Thread-local storage
Thread-local storage is a computer programming method that uses static or global memory local to a thread.This is sometimes needed because normally all threads in a process share the same address space, which is sometimes undesirable...
(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.
Supported platforms
UML was originally designed for x86X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
processors, but has also been ported to other architectures including IA-64 and PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
; the only currently working port is to the x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
architecture.
External links
- User-mode Linux Kernel Home Page
- Rob's quick and dirty UML howto
- More recent Kernels and filesystems
- Running Debian inside of Debian with User-Mode Linux
- Linuxzoo - Online free access UMLs
- Armin M. Warda: Virtual Labs with User Mode Linux 2004
- Virtual Network User Mode Linux (VNUML) - Virtual network scenarios based on UML
- NetKit - Emulating a Virtual Network using UML
- http://www.class='greylink1' onMouseover='ShowPop("5615",this,"marionnet.gif", event)' onMouseout='HidePop("5615")' href="/topics/Marionnet">marionnetMarionnetMarionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup...
.org Marionnet] - Another network emulator based on UML - Cloonix-Net - Virtual Network emulation using UML
- GINI - Virtual network based teaching toolkit using UML
Historical links
These are either out of date or unavailable:- UML Kernel and Root File System Images, main mirror of http://moreira.dnsalias.net/my_uml/pool_h01/
- User-mode Linux wiki
User-mode Linux (UML) enables multiple virtual Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
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
User space
A conventional computer operating system usually segregates virtual memory into kernel space and user space. Kernel space is strictly reserved for running the kernel, kernel extensions, and most device drivers...
, this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering excellent security and safety without affecting the host environment's configuration or stability.
Applications of UML
Numerous things become possible through the use of UML. One can run networkComputer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....
services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs. Administrators can use UML to set up honeypot
Honeypot (computing)
In computer terminology, a honeypot is a trap set to detect, deflect, or in some manner counteract attempts at unauthorized use of information systems...
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
Bleeding edge
Bleeding edge technology is technology that is so new that it could have a high risk of being unreliable and may incur greater expense in order to use it...
" 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
KGDB
KGDB is a debugger for the Linux kernel. It requires two machines that are connected via a serial connection. The serial connection may either be an RS-232 interface using a null modem cable, or via the UDP/IP networking protocol .KGDB was originally implemented as a patch to Linux kernel, but it...
) require two machines connected with a null modem
Null modem
Null modem is a communication method to connect two DTEs directly using an RS-232 serial cable. The name stems from the historical use of the RS-232 cable to connect two teleprinter devices to modems in order to communicate with one another; null modem communication was possible by instead using...
cable.
Some web hosting providers offer UML-powered virtual server
Virtual server
Virtual server may refer to:* Virtual private server, a method of server hosting using virtual machines.* Virtual hosting, a method that servers such as webservers use to host more than one domain name on the same computer....
s for lower prices than true dedicated servers
Dedicated hosting service
A dedicated hosting service, dedicated server, or managed hosting service is a type of Internet hosting in which the client leases an entire server not shared with anyone. This is more flexible than shared hosting, as organizations have full control over the server, including choice of operating...
. Each customer has 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 LinuxLinux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
binary ELF
Executable and Linkable Format
In computing, the Executable and Linkable Format is a common standard file format for executables, object code, shared libraries, and core dumps. First published in the System V Application Binary Interface specification, and later in the Tool Interface Standard, it was quickly accepted among...
) was originally available as a patch
Patch (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...
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
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
2.6.0, it is integrated into the main 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
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
. 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.
Comparison with other technologies
User-mode Linux is generally considered to have lower performance than some competing technologies, such as XenXen
Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently....
and OpenVZ
OpenVZ
OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, Virtual Private Servers , or Virtual Environments...
. Future work in adding support for x86 virtualization
X86 virtualization
In computing, x86 virtualization is the facility that allows multiple operating systems to simultaneously share x86 processor resources in a safe and efficient manner, a facility generically known as hardware virtualization...
to UML may reduce this disadvantage.
Often cited as a strength of Xen
Xen
Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently....
(a competing technology) is support for Thread Local Storage
Thread-local storage
Thread-local storage is a computer programming method that uses static or global memory local to a thread.This is sometimes needed because normally all threads in a process share the same address space, which is sometimes undesirable...
(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.
Supported platforms
UML was originally designed for x86X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
processors, but has also been ported to other architectures including IA-64 and PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
; the only currently working port is to the x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
architecture.
External links
- User-mode Linux Kernel Home Page
- Rob's quick and dirty UML howto
- More recent Kernels and filesystems
- Running Debian inside of Debian with User-Mode Linux
- Linuxzoo - Online free access UMLs
- Armin M. Warda: Virtual Labs with User Mode Linux 2004
- Virtual Network User Mode Linux (VNUML) - Virtual network scenarios based on UML
- NetKit - Emulating a Virtual Network using UML
- http://www.class='greylink1' onMouseover='ShowPop("44933",this,"marionnet.gif", event)' onMouseout='HidePop("44933")' href="/topics/Marionnet">marionnetMarionnetMarionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup...
.org Marionnet] - Another network emulator based on UML - Cloonix-Net - Virtual Network emulation using UML
- GINI - Virtual network based teaching toolkit using UML
Historical links
These are either out of date or unavailable:- UML Kernel and Root File System Images, main mirror of http://moreira.dnsalias.net/my_uml/pool_h01/
- User-mode Linux wiki
User-mode Linux (UML) enables multiple virtual Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
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
User space
A conventional computer operating system usually segregates virtual memory into kernel space and user space. Kernel space is strictly reserved for running the kernel, kernel extensions, and most device drivers...
, this approach provides the user with a way of running multiple virtual Linux machines on a single piece of hardware, offering excellent security and safety without affecting the host environment's configuration or stability.
Applications of UML
Numerous things become possible through the use of UML. One can run networkComputer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....
services from a UML environment and remain totally sequestered from the main Linux system in which the UML environment runs. Administrators can use UML to set up honeypot
Honeypot (computing)
In computer terminology, a honeypot is a trap set to detect, deflect, or in some manner counteract attempts at unauthorized use of information systems...
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
Bleeding edge
Bleeding edge technology is technology that is so new that it could have a high risk of being unreliable and may incur greater expense in order to use it...
" 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
KGDB
KGDB is a debugger for the Linux kernel. It requires two machines that are connected via a serial connection. The serial connection may either be an RS-232 interface using a null modem cable, or via the UDP/IP networking protocol .KGDB was originally implemented as a patch to Linux kernel, but it...
) require two machines connected with a null modem
Null modem
Null modem is a communication method to connect two DTEs directly using an RS-232 serial cable. The name stems from the historical use of the RS-232 cable to connect two teleprinter devices to modems in order to communicate with one another; null modem communication was possible by instead using...
cable.
Some web hosting providers offer UML-powered virtual server
Virtual server
Virtual server may refer to:* Virtual private server, a method of server hosting using virtual machines.* Virtual hosting, a method that servers such as webservers use to host more than one domain name on the same computer....
s for lower prices than true dedicated servers
Dedicated hosting service
A dedicated hosting service, dedicated server, or managed hosting service is a type of Internet hosting in which the client leases an entire server not shared with anyone. This is more flexible than shared hosting, as organizations have full control over the server, including choice of operating...
. Each customer has 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 LinuxLinux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
binary ELF
Executable and Linkable Format
In computing, the Executable and Linkable Format is a common standard file format for executables, object code, shared libraries, and core dumps. First published in the System V Application Binary Interface specification, and later in the Tool Interface Standard, it was quickly accepted among...
) was originally available as a patch
Patch (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...
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
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
2.6.0, it is integrated into the main 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
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
. 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.
Comparison with other technologies
User-mode Linux is generally considered to have lower performance than some competing technologies, such as XenXen
Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently....
and OpenVZ
OpenVZ
OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system. OpenVZ allows a physical server to run multiple isolated operating system instances, known as containers, Virtual Private Servers , or Virtual Environments...
. Future work in adding support for x86 virtualization
X86 virtualization
In computing, x86 virtualization is the facility that allows multiple operating systems to simultaneously share x86 processor resources in a safe and efficient manner, a facility generically known as hardware virtualization...
to UML may reduce this disadvantage.
Often cited as a strength of Xen
Xen
Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently....
(a competing technology) is support for Thread Local Storage
Thread-local storage
Thread-local storage is a computer programming method that uses static or global memory local to a thread.This is sometimes needed because normally all threads in a process share the same address space, which is sometimes undesirable...
(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.
Supported platforms
UML was originally designed for x86X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
processors, but has also been ported to other architectures including IA-64 and PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
; the only currently working port is to the x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
architecture.
External links
- User-mode Linux Kernel Home Page
- Rob's quick and dirty UML howto
- More recent Kernels and filesystems
- Running Debian inside of Debian with User-Mode Linux
- Linuxzoo - Online free access UMLs
- Armin M. Warda: Virtual Labs with User Mode Linux 2004
- Virtual Network User Mode Linux (VNUML) - Virtual network scenarios based on UML
- NetKit - Emulating a Virtual Network using UML
- http://www.class='greylink1' onMouseover='ShowPop("82993",this,"marionnet.gif", event)' onMouseout='HidePop("82993")' href="/topics/Marionnet">marionnetMarionnetMarionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup...
.org Marionnet] - Another network emulator based on UML - Cloonix-Net - Virtual Network emulation using UML
- GINI - Virtual network based teaching toolkit using UML
Historical links
These are either out of date or unavailable:- UML Kernel and Root File System Images, main mirror of http://moreira.dnsalias.net/my_uml/pool_h01/
- User-mode Linux wiki