Cygwin un Linux en Windows

Cygwin es una colección de herramientas desarrollada por Cygnus Solutions para proporcionar un comportamiento similar a los sistemas Unix enMicrosoft Windows. Su objetivo es portar software que ejecuta en sistemas POSIX a Windows con una recompilación a partir de sus fuentes. Aunque los programas portados funcionan en todas las versiones de Windows, su comportamiento es mejor en Windows NT, Windows XP yWindows Server 2003.

En la actualidad, el paquete está mantenido principalmente por trabajadores de Red Hat. Se distribuye habitualmente bajo los términos de la GPLcon la excepción de que permite ser enlazada con cualquier tipo de software libre cuya licencia esté de acuerdo con la definición de software libre. También es posible adquirir una licencia con costo para distribuirla bajo otros tipos de licencia.

Cygwin en si son dos cosas: 
  • Una librería dll (cygwin1.dll) que proporciona una capa de emulación de POSIX a las aplicaciones que hagan uso de ella. 
  • Una muy importante colección de herramientas migradas de Linux fácilmente usando la librería anterior. 
Con Cygwin tenemos en un entorno unificado la mayoría de las aplicaciones de consola de Linux y, además, como lleva también una implementación del X.org (Cygwin/X), también muchas aplicaciones gráficas. Hay incluso GNOME sobre Cygwin (CyGNOME) y KDE sobre cygwin

Para dar una idea de lo que lleva cygwin, podemos citar algunos de los programas que lleva la distribución estándar: gcc, bash, sed, awk, bzip2, wget, apache, ssh, sshd, perl, vim, emacs, latex, pine, netcat, rsync, rpm, dpkg, mc, cpio, curl, gv, fvwm, twm, xfig, xterm… Cygwin Package List.

Todas las aplicaciones de la distribución estándar se pueden instalar, desinstalar y actualizar desde el programa de instalación, que resulta muy sencillo y cómodo: 


Y aunque algunas de las herramientas que proporciona Cygwin ya se han portado de forma nativa a Windows, como el Perl, el LaTeX, o las utilidades de línea de comandos, en general resulta mucho más cómodo trabajar en este entorno unificado donde se pueden usar paths estilo Windows y paths estilo UNIX y se gestiona mejor los diferentes finales de línea que usan Windows y UNIX (UNIX usa LF y Windows CR+LF). El precio es pérdida de rendimiento: como no puede ser de otra forma, una versión nativa es más rápida que otra que funciona sobre una capa de emulación de POSIX.

La apariencia normal del Cygwin es una aplicación de texto dentro de una ventana de terminal de Windows, a menos que usemos el Cygwin/X: