¿Cuáles son las diferencias entre Windows Bash y Cygwin?

65

¿Cuáles son las diferencias entre Windows Bash y Cygwin?

La nueva actualización de Windows con "Linux" Bash es nueva, pero ¿qué diferencias hay en Cygwin que podrían hacer que elija una sobre la otra?

Martijn van Wezel
fuente
1
Supongo que Windows Bash está mejor integrado y mejor soportado por Microsoft.
Panther
2
Creo que esta pregunta es sobre el tema, ya que Windows Bash es un producto compatible con Canonical. Puede estar fuera de tema como tal vez una opinión en lugar de un apoyo.
Panther

Respuestas:

65

Cygwin es una gran herramienta si quieres vivir completamente en Windows y quieres manejar / automatizar tareas de Windows con scripts de bash. Sin embargo, Cygwin no puede ejecutar binarios de Linux no modificados.

Ahí es donde entra WSL:

El Subsistema de Windows para Linux (WSL) es una nueva capa del kernel de Windows que tiene como objetivo proporcionar un alto grado de compatibilidad con el kernel de Linux ABI. Esto permite que los binarios nativos, no modificados, ELF64 de Linux se ejecuten en WSL.

Así es como WSL puede ejecutar una distribución de usuario de Ubuntu original, y cualquier paquete que descargue de apt-get, o paquetes .deb desde otro lugar, sin ningún cambio.

El objetivo de WSL es permitir que los desarrolladores que trabajan en Windows puedan ejecutar muchas de las herramientas y trabajar en muchos proyectos, que dependen de los binarios, características, comportamientos, diseño del sistema de archivos, modelo de proceso, etc. de Linux.

Si bien WSL aún se encuentra en una etapa temprana de su implementación, estamos trabajando arduamente para mejorar la amplitud y profundidad de nuestras implementaciones de syscall para mejorar de manera constante la capacidad de WSL de ejecutar un conjunto cada vez mayor de herramientas y admitir un número cada vez mayor de nodos Ruby, Java , etc. paquetes y proyectos.


Actualización: 2017-09-07

Desde que escribimos lo anterior, hemos enviado Windows 10 Creators Update que mejora MASIVAMENTE la compatibilidad de WSL con MUCHAS de las herramientas que querrá / necesitará ejecutar.

El desarrollo también ha continuado sin cesar y hemos estado enviando compilaciones de Win10 Insiders en los últimos meses camino al envío de Fall Creators Update (FCU) en octubre de 2017.

En FCU, estamos agregando la capacidad de instalar y ejecutar más de una distribución lado a lado: Ubuntu, openSUSE y SLES están actualmente disponibles, con Fedora y otros en camino. WSL ahora también admite comunicaciones serie USB y el montaje de almacenamiento USB y recursos compartidos de red, junto con otras mejoras en nuestras llamadas al sistema que mejoran la compatibilidad con más herramientas.


Actualización: 2019-08-22

Han pasado un par de años muy ocupados desde que primero anunciamos y lanzamos WSL, luego agregamos soporte para múltiples distribuciones a través de la tienda y anunciamos WSL v1.0 HTH.

En Build 2019, anunciamos el nuevo Windows Terminal ( video de sesión de Terminal aquí ) y WSL 2 ( video de sesión de WSL 2 aquí ) que presenta un enfoque completamente nuevo para ejecutar Linux en Windows.

Para obtener más detalles y futuras actualizaciones, asegúrese de visitar el blog de Windows Command-Line cada dos semanas, donde publicaremos muchas noticias relacionadas.

Rich Turner
fuente
9
He sido un usuario de Cygwin por años. WSL es una idea fantástica que generalmente funciona bien ... sin embargo, en esta etapa, la velocidad de acceso a los archivos es lenta. Diré prohibitivamente lento. Hacer incluso operaciones de tamaño mediano con algo como GIT toma del orden de más de 30 segundos versus sub segundo en Cygwin. Esperemos que puedan arreglar eso.
Damien Sawyer
9
El rendimiento del disco es un problema conocido: estamos trabajando en algunas mejoras de rendimiento para Win10 CU, con mejoras más sustanciales más adelante en 2017.
Rich Turner
3
Fantástico. No puedo esperar Será un gran producto :-)
Damien Sawyer
2
@DamienSawyer han pasado más de 6 meses. ¿Han disminuido sus quejas de velocidad o siguen siendo las mismas?
WinEunuuchs2Unix
3
@RichTurner luego ejecutaré la actualización: D
Martijn van Wezel el
15

Subsistema de Windows para Linux

He estado usando WSL en Windows 10 durante unos meses. Finalmente puedo arrancar en Windows para jugar y aún acceder al bash prompt y ejecutar CLI y muchos programas GUI. Existen limitaciones como ninguno de los directorios virtuales familiares del kernel de Linux. Se requiere planificación para compartir el mismo script Bash entre Ubuntu y WSL en una máquina de arranque dual.

Hay muchas cosas que me gustaría ver mejoradas, pero puedo vivir con eso tal como está durante un año más o menos.

Fuente cerrada

Una cosa para recordar es que Microsoft es un sistema cerrado, y no te molesta que terceros escriban actualizaciones como disfrutas en Linux. Pero considerando todas las cosas, compra una nueva computadora portátil y viene con Windows 10 de todos modos, por lo que podría decir que es "gratis" al menos :)

Cygwin está controlado por Red Hat Linux, que tampoco es conocido por regalar cosas gratis. Su distribución Linux "gratuita" Fedora parece ser un "campo de pruebas" para algunos.

Ciclos de mantenimiento

Cygwin tiene 15 años de actualizaciones. Cabe destacar que el mismo gerente de proyecto ha estado en funcionamiento desde 2003. Hay muchos encargados de mantenimiento a tiempo completo y muchos más colaboradores voluntarios.

WSL proporciona actualizaciones importantes dos veces al año cada primavera y otoño. Hay actualizaciones menores semanales disponibles para aquellos en la lista de suscripción de Desarrolladores. Aunque Microsoft tiene recursos para atraer a miles de personas al desarrollo de WSL, parece que puede contar a los miembros del equipo con los dedos.

Problemas de velocidad

Verás muchas quejas sobre la velocidad de WSL. Por ejemplo, la pintura de pantalla tarda muchas veces más en Windows 10 en comparación con Ubuntu 16.04, es decir, puede ver el movimiento del cursor en Windows 10:

WSL bash startup.gif

La pantalla de inicio de WSL Bash tarda unos 5 segundos en pintarse. En comparación, es aproximadamente 1 1/2 segundos para la misma pantalla de inicio en Ubuntu 16.04:

Ubuntu terminal splash.gif

Cygwin tiene su propia cuota de quejas de velocidad con Bash .


Publicación original a continuación para referencia histórica.

La respuesta aquí es de un año, así que creo que una pequeña actualización está en orden. Con Windows 10 Home, si es Windows de 32 bits, significa que no ejecutará el subsistema Ubuntu / Windows de 64 bits como Microsoft nos dice aquí: ( subsistema Windows Linux en win10 HOME BASIC ).

Es como un sueño hecho realidad ejecutar Ubuntu en Windows con su soporte de juegos superior para Nvidia, pero antes de que se agote y compre una computadora portátil nueva (o usada), asegúrese de que tenga Windows 10 de 64 bits y no la versión doméstica de 32 bits si desea ejecutar cosas de Ubuntu / Linux de forma nativa en Windows. En los sitios web de Microsoft, en realidad se refieren a la edición de aniversario de Windows como un requisito previo para ejecutar Windows Subsystem for Linux.


Sin embargo, si no desea pagar $ 200 + para Windows 10 y tiene una computadora portátil más antigua con Windows 8.1 de 64 bits como yo, y tiene una computadora portátil aún más vieja con Windows Vista de 64 bits como lo hago yo, entonces Cygwin es la respuesta.

Cygwin admite más versiones de Windows en sus listas de sitios web :

Se puede esperar que Cygwin se ejecute en todas las versiones modernas de Windows. Estado de enero de 2016, esto incluye Windows Vista, Windows Server 2008 y todas las versiones posteriores de Windows hasta Windows 10 y Windows Server 2016. La versión de 32 bits de Cygwin también se ejecuta en el entorno WOW64 de 32 bits en las versiones lanzadas de 64 bits de Windows, la 64 versión de bit, por supuesto, solo en Windows de 64 bits.

Tenga en cuenta que Cygwin solo puede hacer tanto como admite el sistema operativo subyacente. Debido a esto, Cygwin se comportará de manera diferente y exhibirá diferentes limitaciones en las diferentes versiones de Windows.

WinEunuuchs2Unix
fuente
2
La pregunta es cuáles son las diferencias entre cygwin y bash para windows. Cygwin ni siquiera se menciona en tu respuesta. Por favor, aclare cómo esto responde la pregunta.
Seth
@Seth señalé cómo WSL es una versión específica, mientras que Cygwin se ejecuta en todas las versiones compatibles de Windows. Gracias por señalar mi descuido.
WinEunuuchs2Unix
1
Hemos dejado muy claro que WSL requiere Windows de 64 bits, y está disponible en cada SKU de Windows 10, excepto LTSB actual - WSL se agregará a la próxima versión de LTSB. WSL también se incluirá en Windows Server lanzado en otoño de 2017.
Rich Turner,
@RichTurner Su sitio web lo explica claramente. Lo que no está claro para mí (y no es tu culpa) es la razón por la cual el vendedor vende un i7 quad core 7700 con GPU Nvidia 1050 y 12 GB de RAM del sistema con Windows 10 en casa. Alguien eliminó el enlace original, pero aquí está . No explican que es de 32 bits. ¿Estás diciendo que cada Windows 10 es de 64 bits?
WinEunuuchs2Unix
1
Se vende como una PC para juegos. Como la mayoría de los jugadores no necesitan las características adicionales en Win10 Pro, optaron por Home para evitar que el cliente pague por algo que probablemente no necesitará. Windows 10 también viene en variantes de 32 bits para aquellos que lo desean, pero me ASOMBRARÍA si alguien vendiera una máquina con> 4 GB de RAM e instalara un sistema operativo de 32 bits ya que el sistema operativo y las aplicaciones que ejecuta no podrían para acceder a cualquier cosa> 4 GB.
Rich Turner