stringtranslate.com

Linux en modo usuario

User-mode Linux ( UML ) es un sistema de virtualización para el sistema operativo Linux basado en un puerto arquitectónico del núcleo Linux a su propia interfaz de llamada del sistema , que permite que varios sistemas operativos virtuales basados ​​en el núcleo Linux (conocidos como invitados) se ejecuten como una aplicación dentro de un sistema Linux normal (conocido como el host). Un núcleo Linux compilado para la arquitectura um puede entonces arrancar como un proceso bajo otro núcleo Linux, completamente en el espacio de usuario , sin afectar la configuración o estabilidad del entorno del host.

Este método ofrece al usuario una forma de ejecutar muchas máquinas Linux virtuales en una única pieza de hardware, lo que permite cierto aislamiento, generalmente sin cambiar la configuración o la estabilidad del entorno del host porque cada invitado es simplemente una aplicación normal que se ejecuta como un proceso en el espacio del usuario.

Aplicaciones

Numerosas cosas se hacen posibles a través del uso de UML. [1] Uno puede ejecutar servicios de red desde un entorno UML y permanecer totalmente aislado del sistema Linux principal en el que se ejecuta el entorno UML. [2] [3] [4] [5] [6] Los administradores pueden usar UML para configurar honeypots , [7] 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, no es necesario que las versiones del núcleo del host y del invitado coincidan, por lo que es totalmente posible probar una versión de " vanguardia " de Linux en modo de usuario en un sistema que ejecuta un núcleo mucho más antiguo. UML también permite que la depuración del núcleo se realice en una sola máquina, mientras que otras herramientas de depuración del núcleo (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 servidores dedicados reales . Cada cliente tiene acceso raíz a lo que parece ser su propio sistema, mientras que en realidad una computadora física es compartida entre muchas personas.

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

Integración en el kernel de Linux

La aplicación invitada UML (un binario ELF de Linux ) estaba originalmente disponible como un parche para algunas versiones de kernel superiores a 2.2.x, y el host con cualquier versión de kernel superior a 2.2.x lo soportaba fácilmente en el modo de hilo (es decir, no SKAS3).

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

Comparación con otras tecnologías

En general, se considera [¿ quién lo considera? ] que el modo usuario de Linux tiene un rendimiento inferior al de algunas tecnologías competidoras, como Xen y OpenVZ . [ cita requerida ] El trabajo futuro para agregar soporte para virtualización x86 a UML puede reducir esta desventaja.

A menudo se cita como una fortaleza de Xen (una tecnología competidora) la compatibilidad con el almacenamiento local de subprocesos (TLS). Esto también se admite ahora en los últimos núcleos 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 anfitriona no está virtualizada de ninguna manera y solo los sistemas invitados son verdaderas máquinas virtuales. Esto permite que los invitados de UML tengan acceso directo a los sistemas de archivos y al hardware del host, donde es común mapear un directorio del host (por ejemplo, /uml/root/ ).

Plataformas compatibles

UML fue diseñado originalmente para el conjunto de instrucciones x86 , pero también se ha adaptado a otros, incluidos IA-64 y PowerPC . [ cita requerida ]

Véase también

Referencias

  1. ^ Landley, Rob (16 de diciembre de 2009). "El tutorial rápido y sencillo de Rob sobre UML" . Consultado el 8 de agosto de 2023 .
  2. ^ "Modo de usuario de red virtual Linux". 13 de febrero de 2012. Consultado el 8 de agosto de 2023 .
  3. ^ "Netkit: Características". 2009-12-03. Archivado desde el original el 2020-05-11 . Consultado el 2023-08-08 .
  4. ^ Jean-Vincent Loddo; Luca Saiu. «Marionnet: un laboratorio de redes virtuales» . Consultado el 8 de agosto de 2023 .
  5. ^ "Documentación de Cloonix: v03-04". 2019-06-01 . Consultado el 2023-08-08 .
  6. ^ "¡Bienvenidos a GINI! Un conjunto de herramientas para construir microinternets a nivel de usuario". Universidad McGill . 28 de septiembre de 2009. Consultado el 8 de agosto de 2023 .
  7. ^ "UML como honeypot". 13 de julio de 2007. Consultado el 8 de agosto de 2023 .
  8. ^ Richard WM Jones (11 de agosto de 2013). "Experimental User-Mode Linux backend for libguestfs" (Backend Linux experimental en modo usuario para libguestfs) . Consultado el 29 de agosto de 2019 .
  9. ^ Dike, Jeff (12 de abril de 2006). User Mode Linux (Modo de usuario Linux) . Prentice Hall . Pág. 197. ISBN. 9780131865051.

Enlaces externos