Linux cooperativo


Cooperative Linux , abreviado como coLinux , es un software que permite que Microsoft Windows y el kernel de Linux se ejecuten simultáneamente en paralelo en la misma máquina. [2]

Cooperative Linux utiliza el concepto de máquina virtual cooperativa (CVM). A diferencia de las máquinas virtuales tradicionales , CVM comparte recursos que ya existen en el sistema operativo host . En los hosts de VM tradicionales, los recursos se virtualizan para cada sistema operativo (invitado). El CVM brinda a ambos sistemas operativos un control completo de la máquina host, mientras que la VM tradicional establece cada sistema operativo invitado en un estado sin privilegios para acceder a la máquina real.

El término "cooperativa" se utiliza para describir dos entidades que trabajan en paralelo. En efecto, Cooperative Linux convierte los dos núcleos de sistemas operativos diferentes en dos grandes corrutinas . Cada núcleo tiene su propio contexto de CPU completo y espacio de direcciones, y cada núcleo decide cuándo devolver el control a su socio.

Sin embargo, si bien ambos núcleos teóricamente tienen acceso completo al hardware real, el hardware de PC moderno no está diseñado para ser controlado por dos sistemas operativos diferentes al mismo tiempo. Por lo tanto, el kernel del host tiene el control del hardware real y el kernel invitado contiene controladores especiales que se comunican con el host y proporcionan varios dispositivos importantes al sistema operativo invitado. El host puede ser cualquier kernel de SO que exporte primitivas básicas que permitan que el controlador portátil Cooperative Linux se ejecute en modo CPL0 (anillo 0) y asigne memoria. [3]

Dan Aloni inició originalmente el desarrollo de Linux cooperativo basado en un trabajo similar con Linux en modo de usuario . Anunció el desarrollo el 25 de enero de 2004. [4] En julio de 2004 presentó un artículo en el Simposio de Linux. [5] La fuente fue publicada bajo la Licencia Pública General GNU . Desde entonces, otros desarrolladores han contribuido con varios parches y adiciones al software.

Linux cooperativo es significativamente diferente de la virtualización x86 completa , que generalmente funciona ejecutando el sistema operativo invitado en un modo menos privilegiado que el del kernel del host y con todos los recursos delegados por el kernel del host. En contraste, Cooperative Linux ejecuta un kernel de Linux especialmente modificado que es Cooperative en el sentido de que asume la responsabilidad de compartir recursos con el kernel de NT y no instigar condiciones de carrera .


Synaptic y nautilus ejecutándose en Windows