Cygwin ( / ˈ s ɪ ɡ w ɪ n / SIG -win ) [ 3 ] es un entorno tipo Unix y una interfaz de línea de comandos (CLI) gratuitos y de código abierto para Microsoft Windows . El proyecto también proporciona un repositorio de software con paquetes de código abierto . Cygwin permite compilar y ejecutar código fuente de sistemas operativos tipo Unix en Windows. Cygwin ofrece integración nativa de aplicaciones basadas en Windows.
El emulador de terminal mintty es la interfaz de línea de comandos predeterminada que se proporciona para interactuar con el entorno. La estructura del directorio de instalación de Cygwin imita el sistema de archivos raíz de los sistemas tipo Unix, con directorios como /bin, /home, /etc, /usr, y /var.
Cygwin se publica bajo la Licencia Pública General Reducida de GNU versión 3. [ 4 ] Fue desarrollado originalmente por Cygnus Solutions , [ 5 ] [ 6 ] que posteriormente fue adquirida por Red Hat (ahora parte de IBM ), para portar la cadena de herramientas de GNU a Win32 , incluyendo el GNU Compiler Suite . En lugar de reescribir las herramientas para usar el entorno de ejecución de Win32 , Cygwin implementó un entorno compatible con POSIX en forma de una DLL. [ 7 ]
El lema de la marca es " Obtén esa sensación de Linux, en Windows ", aunque Cygwin no tiene Linux en su nombre. [ 8 ]
Historia
Cygwin comenzó en 1995 como un proyecto de Steve Chamberlain, un ingeniero de Cygnus que observó que Windows NT y 95 usaban COFF como formato de archivo objeto , y que GNU ya incluía soporte para x86 y COFF, así como la biblioteca C newlib . Pensó que sería posible rediseñar GCC y producir un compilador cruzado que generara ejecutables que pudieran ejecutarse en Windows. Posteriormente se desarrolló un prototipo. Chamberlain inició el compilador en un sistema Windows para emular Unix y permitir la ejecución del script de shell de configuración de GNU .
Inicialmente, Cygwin se llamaba Cygwin32 . [ 6 ] [ nota 1 ] Cuando Microsoft registró la marca comercial Win32, se eliminó el "32" para convertirse simplemente en Cygwin .
En 1999, Cygnus ofreció Cygwin 1.0 como producto comercial . [ 9 ] No se han publicado versiones posteriores, sino que se ha confiado en continuas publicaciones de código abierto.
Geoffrey Noer fue el líder del proyecto de 1996 a 1999. [ 10 ] [ 11 ] Christopher Faylor fue el líder de 1999 a 2004; dejó Red Hat y se convirtió en colíder con Corinna Vinschen. [ 12 ] [ 13 ] Corinna Vinschen ha sido la líder del proyecto desde mediados de 2014 hasta la fecha (a septiembre de 2024). [ 14 ]
Desde el 23 de junio de 2016, la versión 2.5.2 de la biblioteca Cygwin se licenció bajo la Licencia Pública General Reducida de GNU (LGPL) versión 3. [ 15 ]
Descripción
Cygwin se proporciona en dos versiones: la versión completa de 64 bits y una versión reducida de 32 bits , cuya versión final se lanzó en 2022. [ 16 ] Cygwin consta de una biblioteca que implementa la API de llamadas al sistema POSIX en términos de llamadas al sistema de Windows para permitir la ejecución de una gran cantidad de programas de aplicación equivalentes a los de los sistemas Unix , y una cadena de herramientas de desarrollo GNU (que incluye GCC y GDB ). Los programadores han portado el Sistema X Window , K Desktop Environment 3 , GNOME , [ 17 ] Apache y TeX . Cygwin permite instalar inetd , syslogd , sshd , Apache y otros demonios como servicios estándar de Windows . Los programas Cygwin tienen acceso completo a la API de Windows y otras bibliotecas de Windows.
Los programas de Cygwin se instalan ejecutando el programa "setup" de Cygwin [ 18 ] , que los descarga desde repositorios en Internet.
La biblioteca API de Cygwin está licenciada bajo la Licencia Pública General Reducida de GNU versión 3 (o posterior), con una excepción que permite la vinculación con cualquier software libre y de código abierto cuya licencia se ajuste a la Definición de Código Abierto . [ 19 ]
Cygwin consta de dos partes:
- Una biblioteca de enlace dinámico en forma de biblioteca estándar C que actúa como una capa de compatibilidad para la API POSIX y
- Una colección de herramientas y aplicaciones de software que proporcionan una apariencia y sensación similares a las de Unix . [ 20 ]
Cygwin admite enlaces simbólicos POSIX , representándolos como archivos de texto plano con el atributo del sistema establecido. Cygwin 1.5 los representaba como accesos directos del Explorador de Windows , pero esto se cambió por razones de rendimiento y corrección POSIX. Cygwin también reconoce los puntos de unión NTFS y los enlaces simbólicos, y los trata como enlaces simbólicos POSIX, pero no los crea. Se admite la API POSIX para el manejo de listas de control de acceso (ACL). [ 21 ]
Detalles técnicos
Una versión específica de Cygwin del mountcomando Unix permite montar rutas de Windows como "sistemas de archivos" en el espacio de archivos Unix. Los puntos de montaje iniciales se pueden configurar en /etc/fstab, que tiene un formato muy similar al de los sistemas Unix, excepto que las rutas de Windows aparecen en lugar de los dispositivos. Los sistemas de archivos se pueden montar en modo binario (por defecto) o en modo texto, lo que permite la conversión automática entre finales LF y CRLF (lo que solo afecta a los programas que abren archivos sin especificar explícitamente el modo texto o binario).
Cygwin 1.7 introdujo una compatibilidad integral con las configuraciones regionales POSIX , y la codificación Unicode UTF-8 se convirtió en la predeterminada.
La llamada al sistema fork para duplicar un proceso está completamente implementada, pero no se pudo utilizar la estrategia de optimización de copia en escritura . [ 22 ] [ 23 ] [ 24 ]
La interfaz de usuario predeterminada de Cygwin es el intérprete de comandos bash que se ejecuta en el emulador de terminal mintty . [ 25 ] La DLL también implementa dispositivos de pseudoterminal (pty), y Cygwin incluye varios emuladores de terminal basados en ellos, como rxvt /urxvt y xterm . La versión de GCC que viene con Cygwin tiene varias extensiones para crear DLL de Windows, como especificar si un programa es de modo ventana o de consola. El soporte para compilar programas que no requieren la capa de compatibilidad POSIX proporcionada por la DLL de Cygwin solía estar incluido en el GCC predeterminado, pero a partir de 2014, es proporcionado por compiladores cruzados aportados por el proyecto MinGW-w64 .
Paquetes de software
La selección de paquetes base de Cygwin es de aproximadamente 100 MB, [ 26 ] que contiene los shells bash (usuario interactivo) y dash (instalación) y las utilidades principales de manipulación de archivos y texto. Hay paquetes adicionales disponibles como instalaciones opcionales dentro del programa "setup" de Cygwin y el administrador de paquetes ("setup-x86_64.exe" – 64 bits). [ 27 ] El proyecto Cygwin Ports proporcionó paquetes adicionales que no estaban disponibles en la propia distribución de Cygwin. Algunos ejemplos incluían GNOME , K Desktop Environment 3 , la base de datos MySQL y el lenguaje de scripting PHP . La mayoría de los puertos han sido adoptados por mantenedores voluntarios como paquetes de Cygwin, y Cygwin Ports ya no recibe mantenimiento. Cygwin se distribuye con GTK+ y Qt .
El proyecto Cygwin/X permite que los programas gráficos de Unix muestren sus interfaces de usuario en el escritorio de Windows, tanto para programas locales como remotos.
Véase también
- Mingw-w64 : herramientas de línea de comandos gratuitas y de código abierto para crear binarios nativos de Windows.
- ReactOS : sistema operativo gratuito e incompleto similar a Windows NT.
- Subsistema de Windows para Linux : una función para un entorno Linux en Windows.
- Wine (software) – Software de compatibilidad con Windows
Notas
- ↑ No confundir con elproyecto actual GnuWin32 .
Referencias
- ↑ "cygwin 3.6.6-1" . 9 de enero de 2026. Consultado el 22 de enero de 2026 .
- ↑ "Términos de licencia de Cygwin" . Archivado del original el 28 de julio de 2012. Consultado el 15 de diciembre de 2022 .
- ↑ Hall, Larry (14 de septiembre de 2004). "Re: ¿Cómo se pronuncia?" . Cygwin (Lista de correo). Archivado del original el 30 de agosto de 2011. Recuperado el 10 de octubre de 2007 .
- ↑ "Biblioteca Cygwin ahora disponible bajo la Licencia Pública General Reducida de GNU" . Red Hat . Archivado del original el 24 de junio de 2016. Recuperado el 23 de junio de 2016 .
- ↑ "Una breve historia del proyecto Cygwin" . Cygwin . 2 de febrero de 2018. Archivado del original el 8 de enero de 2020. Consultado el 10 de enero de 2020 .
- 1 2 "Cygwin32: Una capa de portabilidad gratuita de Win32 para aplicaciones UNIX" . USENIX . 3 de agosto de 1998. Archivado del original el 11 de enero de 2020. Recuperado el 10 de enero de 2020 .
- ↑ "(Resuelto) Subsistema Linux vs Cygwin vs MobaXterm" . Foro de ayuda técnica de How-To Geek . 24 de enero de 2017. Archivado del original el 20 de febrero de 2023. Consultado el 15 de marzo de 2019 .
- ↑ "Cygwin" . www.cygwin.com . Consultado el 11 de marzo de 2024 .
- ↑ "Cygwin unifica las aplicaciones de Unix y Windows" . Google Books . 15 de noviembre de 1999. Archivado del original el 20 de febrero de 2023. Consultado el 13 de enero de 2020 .
- ↑ Delorie, DJ (17 de febrero de 1999). "fyi: quién hace qué" . Cygwin (Lista de correo). Archivado del original el 14 de febrero de 2004. Recuperado el 13 de enero de 2020 .
- ↑ Noer, Geoffrey (19 de febrero de 1999). "Una despedida parcial..." Cygwin (Lista de correo). Archivado del original el 2 de febrero de 2004. Recuperado el 13 de enero de 2020 .
- ↑ Faylor, Christopher (31 de marzo de 2004). "Cambiar de trabajo" . Cygwin (Lista de correo). Archivado del original el 6 de septiembre de 2015. Recuperado el 13 de enero de 2020 .
- ↑ Faylor, Christopher (31 de julio de 2014). "Christopher Faylor – Retirada del proyecto" . Cygwin (Lista de correo). Archivado del original el 17 de diciembre de 2014. Recuperado el 2 de mayo de 2015 .
- ↑ "Cygwin Notables" . www.cygwin.com . Consultado el 10 de septiembre de 2024 .
- ↑ "Biblioteca Cygwin ahora disponible bajo la Licencia Pública General Reducida de GNU" . www.redhat.com . Archivado del original el 16 de junio de 2021. Consultado el 27 de mayo de 2021 .
- ↑ Turney, Jon (25 de noviembre de 2022). "Fin de vida útil de Cygwin x86" . Recuperado el 14 de septiembre de 2023 .
- ↑ "Puertos de Cygwin" . Archivado del original el 11 de mayo de 2015. Consultado el 2 de mayo de 2015 .
- ↑ Delorie, DJ (17 de abril de 2000). "Nueva versión de Cygwin Net" . Cygwin (Lista de correo). Archivado del original el 20 de diciembre de 2014. Recuperado el 10 de enero de 2020 .
- ↑ "¿Cuáles son los términos de la licencia?" . Cygwin . Archivado del original el 28 de julio de 2012.
- ↑ "Preguntas frecuentes sobre Cygwin" . cygwin.com . Archivado del original el 7 de mayo de 2021. Consultado el 7 de enero de 2021 .
- ↑ Vinschen, Corinna (16 de enero de 2016). "Actualizado: Cygwin 2.4.0-1" . Anuncios de Cygwin (Lista de correo). Archivado del original el 11 de enero de 2020. Recuperado el 11 de enero de 2020 .
- ↑ "Preguntas frecuentes de Cygwin: ¿Cómo se implementa fork()?" . cygwin.com . Archivado del original el 20 de octubre de 2010 . Consultado el 10 de octubre de 2010 .
- ↑ "Aspectos destacados de la funcionalidad de Cygwin: Creación de procesos" . Archivado del original el 30 de diciembre de 2014. Consultado el 24 de diciembre de 2014 .
- ↑ Blake, Eric (15 de enero de 2009). "Bash no inicia las aplicaciones directamente" . Cygwin (Lista de correo). Archivado del original el 13 de junio de 2011. Recuperado el 10 de octubre de 2010 .
- ↑ "Capítulo 2: Configuración de Cygwin" . cygwin.com . Consultado el 17 de marzo de 2025 .
- ↑ "Instalación y actualización de paquetes de Cygwin" . Cygwin . Archivado del original el 10 de enero de 2020. Consultado el 11 de enero de 2020 .
- ↑ "Lista de paquetes de Cygwin" . Cygwin . Archivado del original el 5 de febrero de 2016. Consultado el 11 de enero de 2020 .
Enlaces externos
- Software de 1995
- Capas de compatibilidad
- Herramientas de programación
- Compiladores libres y de código abierto
- Software de emulación gratuito
- Software libre programado en C
- Software libre programado en C++
- Software Red Hat
- Administración del sistema
- emuladores de Unix
- Software gratuito exclusivo para Windows
- Software que utiliza la Licencia Pública General de GNU.