Máquinas virtuales vs Cygwin

Respuestas:

20

Las máquinas virtuales y Cygwin responden dos preguntas diferentes.

Las máquinas virtuales son para cuando desea ejecutar múltiples sistemas operativos al mismo tiempo. Es como tener dos computadoras sin el gasto de comprar dos conjuntos de hardware.

Cygwin está destinado a dar a Windows una serie de herramientas de Unix, para que los geeks de Unix puedan usar Windows de manera más efectiva (aunque diría que Cygwin en realidad no lo hace muy bien), y para proporcionar algunas herramientas que tienen mejores características que Windows proporciona por su cuenta. No creo que la caracterización de Cygwin proporcionando un "entorno similar a Linux" sea particularmente precisa. (Cygwin en realidad está destinado a proporcionar un entorno de desarrollo POSIX más completo para Windows y, al hacerlo, proporciona una serie de utilidades. Sin embargo, el resultado final para los usuarios finales es que simplemente proporciona herramientas).

De hecho, hay una especie de tercera opción, Cooperative Linux , que creo que realmente hace proporcionar un ambiente similar a Linux dentro de Windows. Realmente ejecuta el kernel de Linux como un proceso dentro de Windows. Hay algunas distribuciones que se ejecutan debajo de él; y Linux me viene a la mente. Con estos sistemas, en realidad tiene un entorno Linux que puede interactuar más directamente con su entorno Windows que una máquina virtual.

wfaulk
fuente
2
Cygwin es un montón de utilidades en realidad es simplemente un efecto secundario. Está pensado principalmente como un entorno similar a Linux para el software, no para el usuario, por lo que tiene las API apropiadas envueltas en emulación. Con coLinux, el kernel de Linux se ejecuta como un controlador de dispositivo dentro del kernel de Windows, no como un proceso.
Joey el
3
Solo instalo cygwin para poder tener un shell decente para trabajar en mis archivos de Windows. Me perdería sin encontrar, grep, sed y es de mal gusto.
Nifle
1
@Johannes: la página web de coLinux dice que "coLinux siempre utiliza un solo proceso del sistema operativo host para todos sus procesos de Linux, administrando de forma privada su programación, recursos y fallas". AFAICR, funciona como un servicio, no como un controlador.
wfaulk
4

Todavía es útil para ejecutar herramientas de Unix como rsync, que desea operar en los archivos en el cuadro de Windows en lugar de estar atascado en una máquina virtual. También puede usar el programador de Windows para iniciar trabajos con las herramientas.

andynormancx
fuente
1
Sin embargo, prefiero tomar compilaciones nativas que instalar cygwin.
Joey el
2
Sin embargo, no todo está disponible en versiones nativas.
quack quijote
2

En lo que a mí respecta, Cygwin es un concepto diferente. A diferencia de la máquina virtual, proporciona una DLL que emula un entorno / capa de Linux, que puede ejecutar y construir un programa Linux en una máquina Windows. Por ejemplo, si desea usar alguna biblioteca que solo se distribuye como código fuente y está destinada para el sistema Linux incorporado, ¿qué sucede si desea usar esta biblioteca en Visual Studio? No puede usar VS para compilarlo, ya que depende de las dependencias de Linux, por lo que necesita Cygwin en esta situación.

Peiti Li
fuente