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]
Autor (es) original (es) | Dan Aloni |
---|---|
Desarrollador (es) | Comunidad |
Versión inicial | 25 de enero de 2004 |
Lanzamiento final | |
Sistema operativo | Familia de Windows NT |
Tipo | Virtualización de plataforma |
Licencia | Licencia pública general GNU |
Sitio web | www |
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.
Descripción general
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 sistema operativo 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]
Historia
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 se publicó bajo la Licencia Pública General GNU . Desde entonces, otros desarrolladores han contribuido con varios parches y adiciones al software.
Comparaciones
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 .
Distribución
La mayoría de los cambios en el parche Cooperative Linux están en el árbol i386 , la única arquitectura compatible con Cooperative en el momento de escribir este artículo. Los otros cambios son principalmente adiciones de controladores virtuales: cobd (dispositivo de bloque), conet (red) y cocon (consola). La mayoría de los cambios en el árbol i386 involucran el código de inicialización y configuración. Es un objetivo del diseño del kernel cooperativo de Linux permanecer lo más cerca posible del kernel i386 independiente, de modo que todos los cambios se localicen y minimicen tanto como sea posible.
El paquete coLinux instala un puerto del kernel de Linux y un dispositivo de red virtual y puede ejecutarse simultáneamente bajo una versión del sistema operativo Windows como Windows 2000 o Windows XP . No utiliza una máquina virtual como VMware .
Debian , Ubuntu , Fedora y Gentoo son especialmente populares entre los usuarios de coLinux.
Debido a la estructura bastante inusual del hardware virtual, la instalación de distribuciones de Linux bajo coLinux es generalmente difícil. Por lo tanto, los usuarios en la mayoría de los casos usan una instalación de Linux existente en una partición real o una imagen de sistema de archivos ya preparada distribuida por el proyecto. Las imágenes del sistema de archivos se crean mediante una variedad de métodos, que incluyen tomar imágenes de un sistema Linux normal, encontrar formas de hacer que los instaladores se ejecuten con el hardware extraño, construir instalaciones a mano usando el administrador de paquetes o simplemente actualizar imágenes existentes usando herramientas como yum y apto . Una forma más fácil de obtener una imagen actualizada del sistema de archivos es usar QEMU para instalar Linux y "convertir" la imagen eliminando los primeros 63 bloques de 512 bytes como se describe en el wiki de coLinux.
Dado que coLinux no tiene acceso al hardware de gráficos nativo, los servidores X Window o X no se ejecutarán directamente en coLinux, pero se puede instalar [ cita requerida ] un servidor X en Windows, como Cygwin / X o Xming y usar KDE o GNOME y casi cualquier otra aplicación y distribución de Linux. Todos estos problemas se solucionan mediante el uso de distribuciones basadas en coLinux como andLinux , basado en Ubuntu, o TopologiLinux , basado en Slackware .
Hardware emulado
Limitaciones
- Aún no es compatible con Windows o Linux de 64 bits (ni utiliza más de 4 GB de memoria), pero la comunidad está desarrollando un puerto [6] . Un patrocinador estaba dispuesto a completar el puerto, pero el trabajo se canceló. [7]
- No es compatible con multiprocesador (SMP). Las aplicaciones Linux y el kernel subyacente solo pueden usar una CPU. [8]
Ver también
- WinLinux
- Cargador Win32
- Topologilinux , una distribución coLinux basada en Slackware
- andLinux , una distribución de coLinux basada en Ubuntu
- Virtualización de plataforma
- Comparación de software de virtualización de plataformas
- Cygwin
- MSYS
- Wubi
- Longene
- Chroot
- Subsistema de Windows para Linux
Referencias
- ^ a b https://www.colinux.org/?section=status
- ^ "sitio web principal de coLinux" . Archivado desde el original el 19 de mayo de 2018 . Consultado el 13 de abril de 2004 .
- ^ Página principal de coLinux en Wayback Machine (archivado el 4 de diciembre de 2015)
- ^ Dan Aloni anuncia Linux cooperativo
- ^ "Documento de Dan Aloni presentado en julio de 2004 en el Simposio de Linux" (PDF) . Archivado desde el original (PDF) el 30 de septiembre de 2018 . Consultado el 30 de marzo de 2008 .
- ^ Recursos e información de desarrollo de 64 bits
- ^ "Estado del puerto patrocinado de 64 bits" . Archivado desde el original el 1 de diciembre de 2017 . Consultado el 25 de noviembre de 2017 .
- ^ Preguntas frecuentes de coLinux
enlaces externos
- Página web oficial
- Linux cooperativo en SourceForge.net
- Virtualización con coLinux en Wayback Machine (archivado 2008-02-03)
- speedLinux en SourceForge.net
- Ubuntu Remix portátil en SourceForge.net