stringtranslate.com

Cigüeñal

Cygwin ( / ˈ s ɪ ɡ w ɪ n / SIG -win ) [3] es un entorno tipo Unix y una interfaz de línea de comandos (CLI) libre y de código abierto 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 (CLI) predeterminada proporcionada para interactuar con el entorno. [5] El diseño 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, /usry /var.

Cygwin se publica bajo la Licencia Pública General Reducida 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 GNU a Win32 , incluyendo 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 " Obtenga esa sensación de Linux en Windows ", aunque Cygwin no incluye Linux. [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 su 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 redirigir GCC y producir un compilador cruzado que generara ejecutables que pudieran ejecutarse en Windows. Más tarde se desarrolló un prototipo. Chamberlain instaló el compilador en un sistema Windows, para emular Unix y permitir que se ejecutara el script de shell de configuración de GNU .

Inicialmente, Cygwin se llamó 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] No se han publicado versiones posteriores, sino que se ha recurrido a lanzamientos continuos de código abierto.

Geoffrey Noer fue el líder del proyecto desde 1996 hasta 1999. [12] [13] Christopher Faylor fue el líder desde 1999 hasta 2004; dejó Red Hat y se convirtió en codirector junto con Corinna Vinschen. [14] [15] Corinna Vinschen ha sido la líder del proyecto desde mediados de 2014 hasta la fecha (a septiembre de 2024). [16]

A partir del 23 de junio de 2016, la versión 2.5.2 de la biblioteca Cygwin fue licenciada bajo la Licencia Pública General Reducida GNU (LGPL) versión 3. [17]

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. [18] 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 (incluidos GCC y GDB ). Los programadores han portado el sistema X Window System , K Desktop Environment 3 , GNOME , [19] Apache y TeX . Cygwin permite instalar inetd , syslogd , sshd , Apache y otros daemons 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 de Cygwin está licenciada bajo la Licencia Pública General Reducida de GNU versión 3 (o posterior), con la excepción de permitir la vinculación a cualquier software libre 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 vínculo dinámico en forma de biblioteca estándar de 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 proporcionan una apariencia similar a la de Unix . [4]

Cygwin admite enlaces simbólicos POSIX , representándolos como archivos de texto sin formato con el atributo system establecido. Cygwin 1.5 los representaba como accesos directos del Explorador de Windows , pero esto se modificó 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 gestionar 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 (por defecto), o en modo texto, lo que permite la conversión automática entre las terminaciones LF y CRLF (que solo afecta a los programas que abren archivos sin especificar explícitamente el modo texto o 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 de Cygwin contiene un controlador de consola que emula una terminal de 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 de Cygwin. La DLL también implementa dispositivos pseudoterminal (pty). Cygwin se entrega con una serie de emuladores de terminal que se basan en ellos, incluidos mintty , 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 un programa en modo ventana o 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 la GCC predeterminada, pero a partir de 2014 , lo proporcionan los compiladores cruzados aportados por el proyecto MinGW-w64 .

Paquetes de software

La selección de paquetes básicos de Cygwin es de aproximadamente 100 MB, [26] que contienen los shells bash (usuario interactivo) y dash (instalación) y las utilidades de manipulación de archivos y texto principales. Hay paquetes adicionales disponibles como instalaciones opcionales desde dentro del programa de "configuración" de Cygwin y el administrador de paquetes ("setup-x86_64.exe" - 64 bit). [27] El proyecto Cygwin Ports proporcionó [ ¿cuándo? ] paquetes adicionales que no estaban disponibles en la propia distribución Cygwin. Los ejemplos incluían GNOME , K Desktop Environment 3 , la base de datos MySQL y el lenguaje de scripting PHP . La mayoría de los ports han sido adoptados por mantenedores voluntarios como paquetes Cygwin, y los Cygwin Ports ya no se mantienen. Cygwin se entrega con GTK+ y Qt .

El proyecto Cygwin/X permite que los programas gráficos Unix muestren sus interfaces de usuario en el escritorio de Windows tanto para programas locales como remotos.

Véase también

Notas

  1. ^ No debe confundirse con el proyecto actual GnuWin32 .

Referencias

  1. ^ "cygwin 3.5.4-1". 25 de agosto de 2024. Consultado el 27 de agosto de 2024 .
  2. ^ "Condiciones de 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". Red Hat . 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 adaptación 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 las aplicaciones de Unix y Windows". Google Books . 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 su 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). «Cambiar de trabajo». 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. ^ "Cygwin Notables". www.cygwin.com . Consultado el 10 de septiembre de 2024 .
  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). «New Cygwin Net Release». 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 de 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 lanza 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 de Cygwin". Cygwin . Archivado desde el original el 5 de febrero de 2016 . Consultado el 11 de enero de 2020 .

Enlaces externos