Articulo de referencia

vkernel

Una arquitectura de núcleo virtual ( vkernel ) es un paradigma de virtualización de sistemas operativos donde el código del núcleo se puede compilar para ejecutarse en el espaci...

Una arquitectura de núcleo virtual ( vkernel ) es un paradigma de virtualización de sistemas operativos donde el código del núcleo se puede compilar para ejecutarse en el espacio de usuario , por ejemplo, para facilitar la depuración de varios componentes a nivel del núcleo, [ 3 ] [ 4 ] [ 5 ] además de la virtualización de propósito general y la compartimentación de los recursos del sistema . DragonFly BSD la utiliza en su implementación de vkernel desde DragonFly 1.7, [ 2 ] habiendo sido revelada por primera vez en septiembre de 2006 ( 2006-09 ) , [ 3 ] [ 6 ] y lanzada por primera vez en la rama estable con DragonFly 1.8 en enero de 2007 ( 2007-01 ) . [ 1 ] [ 7 ] [ 8 ] [ 9 ]    

El objetivo a largo plazo, además de facilitar el desarrollo del núcleo, es simplificar el soporte de clústeres de computadoras conectados a Internet sin comprometer la seguridad local . [ 3 ] [ 4 ]

Conceptos similares existen también en otros sistemas operativos; en Linux, un concepto de virtualización similar se conoce como Linux en modo usuario ; [ 10 ] [ 7 ] mientras que en NetBSD , desde el verano de 2007, ha sido el enfoque inicial de la infraestructura del núcleo rump . [ 11 ]

El concepto de núcleo virtual es prácticamente lo opuesto al de unikernel : con un vkernel , los componentes del núcleo se ejecutan en el espacio de usuario para facilitar el desarrollo y la depuración, con el apoyo de un núcleo de sistema operativo convencional; mientras que con un unikernel , los componentes del espacio de usuario se ejecutan directamente en el espacio del núcleo para un mayor rendimiento, con el apoyo de hardware baremetal o una pila de virtualización de hardware. Sin embargo, tanto los vkernels como los unikernels también pueden utilizarse para tareas similares, por ejemplo, para aislar software en un entorno virtualizado con una sobrecarga mínima. De hecho, el núcleo rump de NetBSD , que originalmente se centraba en ejecutar componentes del núcleo en el espacio de usuario, también se ha adaptado al ámbito de los unikernels (adoptando el nombre anykernel para dar soporte a ambos paradigmas).

El concepto de vkernel difiere de un jail de FreeBSD en que un jail solo está diseñado para el aislamiento de recursos y no puede utilizarse para desarrollar y probar nuevas funcionalidades del kernel en el espacio de usuario, ya que cada jail comparte el mismo kernel. [ 7 ] (Sin embargo, DragonFly también ofrece soporte para jails de FreeBSD . [ 7 ] )

En DragonFly, el vkernel puede considerarse una arquitectura informática de primera clase , comparable a i386 o amd64, y, según Matthew Dillon alrededor de 2007, puede utilizarse como punto de partida para portar DragonFly BSD a nuevas arquitecturas. [ 12 ]

El vkernel de DragonFly es compatible con el kernel del host a través de nuevas llamadas al sistema que ayudan a administrar el espacio de direcciones de memoria virtual ( vmspace ) — vmspace_create()et al., [ 3 ] [ 9 ] [ 13 ] así como extensiones a varias llamadas al sistema existentes como mmap's madvisemcontrol. [ 9 ] [ 14 ] [ 15 ]

Véase también

Referencias

  1. 1 2 "Notas de la versión de DragonFly 1.8.0" . DragonFly BSD . 30-01-2007 . Recuperado el 08-04-2019 .
  2. 1 2 Sascha Wildner (2007-01-08). "vkernel, vcd, vkd, vke — arquitectura de kernel virtual" . Manual de información miscelánea de DragonFly . DragonFly BSD .
    • "vkernel, vcd, vkd, vke - arquitectura de kernel virtual". Páginas del manual en línea de DragonFly .
  3. 1 2 3 4 Matthew Dillon (2006-09-02). "Coherencia de caché, agrupamiento y virtualización del kernel" . kernel@ (Lista de correo). DragonFly BSD .
  4. 1 2 Jeremy C. Reed, ed. (10 de febrero de 2007). "Respuestas de Matt Dillon sobre el núcleo virtual de DragonFly" . BSD Newsletter.com . Reed Media.net. Archivado del original el 24 de febrero de 2007.
  5. Daniel Lorch (10 de junio de 2009). "Portando el sistema de archivos HAMMER a Linux" (PDF) . UML ejecuta el kernel de Linux como un proceso de espacio de usuario, análogo a los kernels virtuales de DragonFly BSD... permite un ciclo rápido de recompilación y reinicio y se puede depurar fácilmente con gdb estándar.
    • Daniel Lorch (10 de junio de 2009). "Adaptación del sistema de archivos HAMMER a Linux" (PDF) . github .
  6. Matthew Dillon (2006). "sys/vkernel.h" . Referencia cruzada de BSD . DragonFly BSD .
  7. 1 2 3 4 David Chisnall (15 de junio de 2007). "DragonFly BSD: ¿UNIX para clústeres?" . InformIT . Prentice Hall Professional . Recuperado el 6 de marzo de 2019 .
  8. Aggelos Economopoulos (29-03-2010). "Un vistazo al núcleo virtual de DragonFly (parte 1)" . LWN.net . Recuperado el 08-04-2019 .
  9. 1 2 3 Aggelos Economopoulos (2010-04-16). "Un vistazo al núcleo virtual de DragonFly (parte 2)" . LWN.net . Recuperado el 2019-04-08 .
  10. Koen Vervloesem (21 de abril de 2010). "DragonFly BSD 2.6: hacia un sistema operativo de clúster libre" . LWN.net . Consultado el 7 de marzo de 2019 .
  11. Antti Kantee (05/08/2007). "CVS commit: src/sys/rump" . source-changes@ (Lista de correo). NetBSD . Introducción a los RUMPs: metaprogramas ejecutables en el espacio de usuario.
  12. Jeremy Andrews (06-08-2007). "Entrevista: Matthew Dillon" . KernelTrap . Archivado del original el 07-02-2012 . Recuperado el 03-03-2019 .
  13. Matthew Dillon (2006). "vm/vm_vmspace.c § sys_vmspace_create()" . Referencia cruzada de BSD . DragonFly BSD .
  14. "madvise, posix_madvise, mcontrol — dan consejos sobre el uso de la memoria" . Manual de llamadas al sistema de DragonFly . DragonFly BSD .
    • "madvise, posix_madvise, mcontrol - dan consejos sobre el uso de la memoria". Páginas del manual en línea de DragonFly .
  15. "kern/syscalls.master" . Referencia cruzada de BSD . DragonFly BSD .
  • Página de manual de vkernel(7)
  • Los núcleos virtuales de DragonFly