De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

Linux en modo de usuario ( UML ) [1] permite que varios sistemas operativos virtuales basados ​​en el kernel de Linux (conocidos como invitados) se ejecuten como una aplicación dentro de un sistema Linux normal (conocido como host). Como cada invitado es solo una aplicación normal que se ejecuta como un proceso en el espacio del usuario , este enfoque proporciona al usuario una forma de ejecutar múltiples máquinas Linux virtuales en una sola pieza de hardware, ofreciendo cierto aislamiento, generalmente sin afectar la configuración o estabilidad del entorno del host. .

Aplicaciones

Numerosas cosas se vuelven posibles mediante el uso de UML. [2] Se pueden ejecutar servicios de red desde un entorno UML y permanecer totalmente aislado del sistema Linux principal en el que se ejecuta el entorno UML. [3] [4] [5] [6] [7] Los administradores pueden usar UML para configurar honeypots , [8] que permiten probar la seguridad de las computadoras o la red. UML puede servir para probar y depurar software nuevo sin afectar negativamente al sistema host. UML también se puede utilizar para la enseñanza y la investigación, proporcionando un entorno de red Linux realista con un alto grado de seguridad.

En entornos UML, las versiones del kernel de host e invitado no necesitan coincidir, por lo que es completamente posible probar una versión "de vanguardia " de Linux en modo de usuario en un sistema que ejecuta un kernel mucho más antiguo. UML también permite que la depuración del kernel se realice en una máquina, donde otras herramientas de depuración del kernel (como kgdb ) requieren dos máquinas conectadas con un cable de módem nulo .

Algunos proveedores de alojamiento web ofrecen servidores virtuales con tecnología UML a precios más bajos que los verdaderos servidores dedicados . Cada cliente tiene acceso de root en lo que parece ser su propio sistema, mientras que en realidad una computadora física se comparte entre muchas personas.

libguestfs ha soportado un backend UML desde la versión 1.24 [9] como alternativa al uso de QEMU o KVM.

Integración en el kernel de Linux

La aplicación de invitado UML (un ELF binario de Linux ) estaba disponible originalmente como parche para algunas versiones de Kernel por encima de 2.2.x, y el host con cualquier versión de kernel por encima de 2.2.x la admitía fácilmente en el modo hilo (es decir, no SKAS3) .

A partir de Linux 2.6.0, está integrado en el árbol de fuentes principal del kernel . Se implementó un método para ejecutar un espacio de direcciones del kernel separado (SKAS) que no requiere parches del kernel del host. Esto mejora el rendimiento y la seguridad con respecto al antiguo enfoque de Traced Thread, en el que los procesos que se ejecutan en UML comparten el mismo espacio de direcciones desde el punto de vista del host, lo que hace que la memoria dentro de UML no esté protegida por la unidad de gestión de memoria . A diferencia del UML actual que usa SKAS, el software con errores o malicioso dentro de un UML que se ejecuta en un host que no sea SKAS podría leer el espacio de memoria de otros procesos UML o incluso la memoria del kernel de UML. [ cita requerida ]

Comparación con otras tecnologías

Linux en modo de usuario generalmente se considera [¿ por quién? ] para tener un rendimiento más bajo que algunas tecnologías de la competencia, como Xen y OpenVZ . [ cita requerida ] El trabajo futuro para agregar soporte para la virtualización x86 a UML puede reducir esta desventaja.

A menudo se cita como una fortaleza de Xen (una tecnología de la competencia) la compatibilidad con el almacenamiento local de subprocesos (TLS). Esto ahora también es compatible con los últimos kernels de UML. Xen se concentra en virtualizar toda la máquina y, por lo tanto, todos los sistemas que se ejecutan en una máquina Xen son realmente máquinas virtuales. En UML, la máquina host no está virtualizada de ninguna manera, y solo los sistemas invitados son verdaderas máquinas virtuales. Esto permite el acceso directo de invitados UML a los sistemas de archivos y hardware del host, donde es común mapear un directorio de host (por ejemplo, / uml / root/ ).

Plataformas compatibles

UML se diseñó originalmente para el conjunto de instrucciones x86 , pero también se ha adaptado a otros, incluidos IA-64 y PowerPC .

Ver también

Referencias

  1. ^ "Página de inicio del kernel de Linux en modo de usuario" . 4 de abril de 2008.
  2. Landley, Rob (16 de diciembre de 2009). "Cómo UML rápido y sucio de Rob" . Consultado el 29 de agosto de 2019 .
  3. ^ "Modo de usuario de red virtual-Linux" . 2012-02-13 . Consultado el 29 de agosto de 2019 .
  4. ^ "Netkit: características" . 2009-12-03 . Consultado el 29 de agosto de 2019 .
  5. ^ Jean-Vincent Loddo y Luca Saiu. "Marionnet: un laboratorio de red virtual" . Consultado el 29 de agosto de 2019 .CS1 maint: uses authors parameter (link)
  6. ^ "Documentación de Cloonix: v03-04" . 2019-06-01 . Consultado el 29 de agosto de 2019 .
  7. ^ "¡Bienvenido a GINI! Un kit de herramientas para construir microinternets a nivel de usuario" . Universidad McGill . 2009-09-28 . Consultado el 29 de agosto de 2019 .
  8. ^ "UML como honeypot" . 2007-07-13 . Consultado el 29 de agosto de 2019 .
  9. ^ Richard WM Jones (11 de agosto de 2013). "Backend experimental de Linux en modo de usuario para libguestfs" . Consultado el 29 de agosto de 2019 .

Enlaces externos

  • Documentación oficial
  • Núcleos UML listos para usar
  • Ejecutar Debian dentro de Debian con Linux en modo de usuario
  • Linuxzoo: UML de acceso gratuito en línea