stringtranslate.com

Cygwin

Cygwin ( / ˈ s ɪ ɡ w ɪ n / SIG -win ) [3] es un entorno gratuito y de código abierto similar a Unix y una interfaz de línea de comandos para Microsoft Windows . El proyecto también proporciona un repositorio de software que contiene muchos paquetes de código abierto . Cygwin permite compilar y ejecutar código fuente para sistemas operativos tipo Unix en Windows. Cygwin proporciona integración nativa de aplicaciones basadas en Windows. [4]

El emulador de terminal Mintty es la interfaz de línea de comandos predeterminada que se proporciona para interactuar con el entorno. [5] El diseño del directorio de instalación de Cygwin imita el sistema de archivos raíz de 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. [6] Fue desarrollado originalmente por Cygnus Solutions , [7] [8] que luego fue adquirida por Red Hat (ahora parte de IBM ), para portar la cadena de herramientas de Linux a Win32 , incluido GNU Compiler Suite . En lugar de reescribir las herramientas para usar el entorno de ejecución Win32, Cygwin implementó un entorno compatible con POSIX en forma de DLL. [9]

El lema de la marca es "Consigue esa sensación de Linux en Windows". [10]

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, y la biblioteca C newlib . Pensó que sería posible reorientar GCC y producir un compilador cruzado que generara ejecutables que pudieran ejecutarse en Windows. Posteriormente se desarrolló un prototipo. Chamberlain arrancó el compilador en un sistema Windows, para emular Unix y permitir que se ejecutara el script de configuración de GNU .

Inicialmente, Cygwin se llamaba gnuwin32 . [nota 1] Cuando Microsoft registró la marca Win32, el "32" se eliminó para convertirse simplemente en Cygwin .

En 1999, Cygnus ofreció Cygwin 1.0 como producto comercial. [11] Las versiones posteriores no se han publicado, sino que se basan en lanzamientos continuos de código abierto.

Geoffrey Noer fue el líder del proyecto de 1996 a 1999. [12] [13] Christopher Faylor fue el líder de 1999 a 2004; Dejó Red Hat y se convirtió en codirector de Corinna Vinschen. [14] [15] Corinna Vinschen ha sido la líder del proyecto desde mediados de 2014 hasta la fecha (al 30 de marzo de 2023). [dieciséis]

Desde el 23 de junio de 2016, la versión 2.5.2 de la biblioteca Cygwin obtuvo la licencia GNU Lesser General Public License (LGPL) versión 3. [17]

Descripción

Cygwin se proporciona en dos versiones: la versión completa de 64 bits y una versión simplificada de 32 bits, cuya versión final se lanzó en 2022. [18] Cygwin consta de una biblioteca que implementa la API de llamadas al sistema POSIX en términos de Windows. llamadas al sistema 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 (incluidos GCC y GDB ). Los programadores han portado X Window System , K Desktop Environment 3 , GNOME , [19] 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 Cygwin se instalan ejecutando el programa "setup" [20] de Cygwin , que los descarga desde repositorios en Internet.

La biblioteca API Cygwin tiene la licencia GNU Lesser General Public License versión 3 (o posterior), con una excepción para permitir el enlace a cualquier software gratuito y de código abierto cuya licencia se ajuste a la Definición de código abierto . [21]

Cygwin consta de dos partes:

  1. Una biblioteca de enlaces dinámicos en forma de biblioteca estándar C que actúa como una capa de compatibilidad para la API POSIX y
  2. Una colección de herramientas y aplicaciones de software que brindan una apariencia similar a Unix . [4]

Cygwin admite enlaces simbólicos POSIX , representándolos como archivos de texto sin formato con el conjunto de atributos del sistema. Cygwin 1.5 los representaba como accesos directos del Explorador de Windows , pero esto se cambió por razones de rendimiento y corrección de POSIX. Cygwin también reconoce puntos de unión NTFS y enlaces simbólicos y los trata como enlaces simbólicos POSIX, pero no los crea. Se admite la API POSIX para manejar listas de control de acceso (ACL). [22]

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 a 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 (de forma predeterminada) o en modo texto, lo que permite la conversión automática entre terminaciones LF y CRLF (lo que sólo afecta a los programas que abren archivos sin especificar explícitamente texto o modo binario).

Cygwin 1.7 introdujo soporte integral para 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 . [23] [24] [25]

La DLL Cygwin contiene un controlador de consola que emula una terminal estilo Unix dentro de la consola de Windows . La interfaz de usuario predeterminada de Cygwin es el shell bash que se ejecuta en la consola Cygwin. La DLL también implementa dispositivos pseudo terminales (pty). Cygwin viene con varios emuladores de terminal basados ​​en ellos, incluidos mintty , rxvt /urxvt y xterm . La versión de GCC que viene con Cygwin tiene varias extensiones para crear archivos DLL de Windows, como especificar si un programa es un programa en modo ventana o consola. El soporte para compilar programas que no requieren la capa de compatibilidad POSIX proporcionada por Cygwin DLL solía incluirse en el GCC predeterminado, pero a partir de 2014 , lo proporcionan compiladores cruzados aportados por el proyecto MinGW-w64 .

Paquetes de programas

La selección del paquete base de Cygwin es de aproximadamente 100 MB, [26] y 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 desde el programa de "configuración" de Cygwin y el administrador de paquetes ("setup-x86_64.exe" – 64 bits). [27] El proyecto Cygwin Ports proporcionó [ ¿cuándo? ] paquetes adicionales que no estaban disponibles en la propia distribución Cygwin. Los ejemplos incluyeron GNOME , K Desktop Environment 3 , la base de datos MySQL y el lenguaje de programación PHP . La mayoría de los puertos han sido adoptados por mantenedores voluntarios como paquetes Cygwin, y los puertos Cygwin ya no reciben mantenimiento. Cygwin se envía 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.

Ver también

Notas

  1. ^ No confundir con el proyecto GnuWin32 actual .

Referencias

  1. ^ "cygwin 3.5.3-1". 3 de abril de 2024 . Consultado el 18 de abril de 2024 .
  2. ^ "Términos de la licencia de Cygwin". Archivado desde el original el 28 de julio de 2012 . Consultado el 15 de diciembre de 2022 .
  3. ^ Hall, Larry (14 de septiembre de 2004). "Re: ¿Cómo se pronuncia?". Cygwin (lista de correo). Archivado desde el original el 30 de agosto de 2011 . Consultado el 10 de octubre de 2007 .
  4. ^ ab "Preguntas frecuentes sobre Cygwin". cygwin.com . Archivado desde el original el 7 de mayo de 2021 . Consultado el 7 de enero de 2021 .
  5. ^ "Cygwin". www.cygwin.com . Archivado desde el original el 21 de noviembre de 2015 . Consultado el 21 de noviembre de 2015 .
  6. ^ "La biblioteca Cygwin ahora está disponible bajo la licencia pública general reducida de GNU". Sombrero rojo . Archivado desde el original el 24 de junio de 2016 . Consultado el 23 de junio de 2016 .
  7. ^ "Una breve historia del proyecto Cygwin". Cygwin . 2 de febrero de 2018. Archivado desde el original el 8 de enero de 2020 . Consultado el 10 de enero de 2020 .
  8. ^ "Cygwin32: una capa de portabilidad Win32 gratuita para aplicaciones UNIX". USENIX . 3 de agosto de 1998. Archivado desde el original el 11 de enero de 2020 . Consultado el 10 de enero de 2020 .
  9. ^ "(Resuelto) Subsistema Linux vs Cygwin vs MobaXterm". Foro de ayuda técnica de How-To Geek . 24 de enero de 2017. Archivado desde el original el 20 de febrero de 2023 . Consultado el 15 de marzo de 2019 .
  10. ^ "Cygwin". www.cygwin.com . Consultado el 11 de marzo de 2024 .
  11. ^ "Cygwin une aplicaciones de Unix y Windows". Libros de Google . 15 de noviembre de 1999. Archivado desde el original el 20 de febrero de 2023 . Consultado el 13 de enero de 2020 .
  12. ^ Delorie, DJ (17 de febrero de 1999). "para tu información: quién hace qué". Cygwin (lista de correo). Archivado desde el original el 14 de febrero de 2004 . Consultado el 13 de enero de 2020 .
  13. ^ Noer, Geoffrey (19 de febrero de 1999). "Un adiós parcial..." Cygwin (Lista de correo). Archivado desde el original el 2 de febrero de 2004 . Consultado el 13 de enero de 2020 .
  14. ^ Faylor, Christopher (31 de marzo de 2004). "Cambiando trabajos". Cygwin (lista de correo). Archivado desde el original el 6 de septiembre de 2015 . Consultado el 13 de enero de 2020 .
  15. ^ Faylor, Christopher (31 de julio de 2014). "Christopher Faylor - Retirada del proyecto". Cygwin (lista de correo). Archivado desde el original el 17 de diciembre de 2014 . Consultado el 2 de mayo de 2015 .
  16. ^ "Notables de Cygwin". cygwin.com . Archivado desde el original el 26 de marzo de 2024 . Consultado el 30 de marzo de 2023 .
  17. ^ "La biblioteca Cygwin ahora está disponible bajo la licencia pública general reducida de GNU". www.redhat.com . Archivado desde el original el 16 de junio de 2021 . Consultado el 27 de mayo de 2021 .
  18. ^ Turney, Jon (25 de noviembre de 2022). "Fin de vida útil de Cygwin x86" . Consultado el 14 de septiembre de 2023 .
  19. ^ "Puertos Cygwin". Archivado desde el original el 11 de mayo de 2015 . Consultado el 2 de mayo de 2015 .
  20. ^ Delorie, DJ (17 de abril de 2000). "Nueva versión de Cygwin Net". Cygwin (lista de correo). Archivado desde el original el 20 de diciembre de 2014 . Consultado el 10 de enero de 2020 .
  21. ^ "¿Cuáles son los términos de la licencia?". Cygwin . Archivado desde el original el 28 de julio de 2012.
  22. ^ Vinschen, Corinna (16 de enero de 2016). "Actualizado: Cygwin 2.4.0-1". Anuncios de Cygwin (lista de correo). Archivado desde el original el 11 de enero de 2020 . Consultado el 11 de enero de 2020 .
  23. ^ "Preguntas frecuentes sobre Cygwin: ¿Cómo se implementa fork()?". cygwin.com . Archivado desde el original el 20 de octubre de 2010 . Consultado el 10 de octubre de 2010 .
  24. ^ "Aspectos destacados de la funcionalidad de Cygwin: creación de procesos". Archivado desde el original el 30 de diciembre de 2014 . Consultado el 24 de diciembre de 2014 .
  25. ^ Blake, Eric (15 de enero de 2009). "Bash no inicia las aplicaciones directamente". Cygwin (lista de correo). Archivado desde el original el 13 de junio de 2011 . Consultado el 10 de octubre de 2010 .
  26. ^ "Instalación y actualización de paquetes Cygwin". Cygwin . Archivado desde el original el 10 de enero de 2020 . Consultado el 11 de enero de 2020 .
  27. ^ "Lista de paquetes Cygwin". Cygwin . Archivado desde el original el 5 de febrero de 2016 . Consultado el 11 de enero de 2020 .

enlaces externos