Cooperative Linux, abreviado como coLinux, es un software que permite a Microsoft Windows y a Linux ejecutarse en forma paralela en la misma computadora.
coLinux utiliza el concepto de una máquina virtual cooperativa (CVM). En contraste a máquinas virtuales tradicionales, la CVM comparte los recursos que ya existen en el sistema operativo principal. En las máquinas virtuales, los recursos son virtualizados para cada sistema operativo huésped. La CVM da a ambos sistemas operativos el poder para usar los recursos de forma paralela. La máquina virtual tradicional pone a cada sistema operativo huésped en una "caja de arena".
Vista general
El término "cooperativo" es utilizado para describir dos entidades que trabajan en paralelo. Cooperative Linux mantiene los dos Kernels diferentes de sistema operativo en dos grandes corrutinas. Cada núcleo tiene su propio contexto de CPU y de espacio de dirección de memoria, y cada núcleo decide cuando dar el control a su contraparte.
Sin embargo, mientras ambos núcleos tienen teóricamente el acceso completo al verdadero hardware, el hardware de las computadoras personales modernas no está diseñado para ser controlado por dos sistemas operativos diferentes al mismo tiempo. Por lo tanto el núcleo del SO principal se encarga delcontrol del hardware verdadero y el núcleo del SO huésped usa controladores especiales que se comunican con el SO principal y proporcionan varios dispositivos importantes al SO huésped. El anfitrión puede ser cualquier núcleo de sistema operativo que exporte primitivas básicas que permitan al Driver del Cooperative Linux funcionar simultáneamente en el modo CPL0 (anillo de acceso 0) y asignar memoria.
Historia
Dan Aloni comenzó originalmente el desarrollo de Linux Cooperativo, que se basó en el trabajo similar de Linux en Modo Usuario. El anuncio del desarrollo se realizó el 25 de enero de 2004. En julio de 2004 se presentó en el Simposio de Linux. La fuente fue liberada bajo la GNU General Public License.
Comparaciones
Linux cooperativo es claramente diferente de las soluciones tradicionales de virtualización como VMware, Plex86, Virtual PC, QEMU y de otros métodos como Xen, que trabajan generalmente haciendo funcionar al sistema operativo huésped en un modo de menor privilegio menos que el kernel del anfitrión.
Las únicas desventajas del enfoque CPL0 son la estabilidad y la seguridad. Si el huésped es inestable, es posible que bloquee o altere todo el sistema. En cuanto a seguridad, un superusuario de la máquina Cooperativa de Linux puede llegar a superusuario en el sistema anfitrión.