next up previous
Next: Design and implementation Up: User-mode Linux Previous: Introduction

Devices

All devices accessible inside the virtual machine are themselves virtual. They are constructed from the appropriate abstractions provided by the host. UML supports the full range of devices expected of a Linux box:

Consoles and serial lines
UML has a main console, which is typically the window in which it was run, as well as virtual consoles and serial lines, which are exactly analogous to their counterparts on a physical machine. However, on a physical machine, consoles and serial ports are different physical devices. On UML, there is no real distinction, so they share most of their code. Both can be attached to a variety of host devices, including ttys, ptys, pts devices, xterms, sockets, and already-existing file descriptors.
Block devices
UML has a single block driver which provides access to anything on the host which can be mounted. Normally, it is used to mount filesystems from images in files in the host filesystem. However, it may also be used to provide access to host block devices such as CD-ROMs, floppies, or raw disk partitions.
Network devices
There is a single network driver which, through a number of backends, provides UML network access via a number of host mechanisms. These include slip, ethertap, TUN/TAP, and a socket to a routing daemon. The slip backend is able to exchange IP packets with the host and other machines with the host as router. The ethertap and TUN/TAP backends exchange ethernet frames with the host and outside network. The routing daemon may be used to set up a totally virtual ethernet with no connection with the host or physical network, as well as a virtual network which is connected to the physical net through the daemon.


next up previous
Next: Design and implementation Up: User-mode Linux Previous: Introduction
Jeff Dike 2001-05-04