Cygwin

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 15 de mayo de 2015; las comprobaciones requieren 24 ediciones .
Cygwin
Tipo de software gratuito y de código abierto , sistema operativo similar a Unix , interfaz de línea de comandos y plataforma informática [d]
Desarrollador sombrero rojo
Escrito en C++ [2] y C [2]
Sistema operativo Microsoft Windows
Primera edición 1995
plataforma de hardware Microsoft Windows
ultima versión
Licencia GNU GPL 3 [3]
Sitio web cygwin.com_
 Archivos multimedia en Wikimedia Commons

Cygwin (pronunciado /ˈsɪgwɪn/ ) [4]  es un entorno similar a UNIX y una interfaz de línea de comandos para Microsoft Windows . Cygwin proporciona una estrecha integración de aplicaciones, datos y recursos de Windows con aplicaciones, datos y recursos similares a UNIX. Desde el entorno de Cygwin, puede ejecutar aplicaciones normales de Windows y también puede usar las herramientas de Cygwin desde Windows.

Cygwin consta de dos partes: una biblioteca de vínculos dinámicos ( DLL ) cygwin1.dllque proporciona compatibilidad API e implementa gran parte del estándar POSIX , y una enorme colección de aplicaciones que proporcionan un entorno UNIX familiar, incluido el shell de Unix .

Cygwin fue desarrollado originalmente por Cygnus Solutions , que luego fue adquirida por Red Hat . Es software libre publicado bajo la Licencia Pública General GNU versión 2. Cygwin está siendo desarrollado actualmente por el personal de Red Hat, NetApp y muchos voluntarios. Idiomas compatibles: C , C++ , Objective-C , Fortran , Gambas , Perl , Python , Ruby , Tcl , Ada , CLISP , Scheme , OCaml , Prolog , Self (Self/x86 [5] ).

Microsoft también ofreció una funcionalidad similar en su paquete Servicios para UNIX , que incluye el subsistema Interix y el Subsistema para aplicaciones basadas en UNIX (en versiones más recientes).

Descripción

Cygwin es una herramienta para portar software UNIX a Windows y es una biblioteca que implementa la API POSIX basada en llamadas al sistema Win32 . Además, Cygwin incluye herramientas de desarrollo GNU para tareas básicas de programación, así como algunos programas de aplicación equivalentes a los programas base de UNIX. En 2001, Cygwin incluyó el paquete X Window System .

Además, Cygwin contiene la biblioteca MinGW , que le permite trabajar con la biblioteca Microsoft MSVCRT ( Windows API ); la biblioteca MinGW exige menos cantidad de RAM y memoria de disco, se distribuye bajo una licencia más libre y puede funcionar con cualquier software, pero la funcionalidad de la especificación POSIX no está implementada tan completamente como en Cygwin.

Red Hat implementa la biblioteca Cygwin bajo la GPL de GNU , por lo que solo se puede utilizar en programas distribuidos bajo la GPL. Para distribuir programas que usan la biblioteca Cygwin bajo una licencia que no sea GPL, debe comprar una licencia de RedHat.

En la página Listas de correo de Cygwin , puede suscribirse a la lista de correo de Cygwin.

Historia

El proyecto Cygwin fue iniciado en 1995 por Steve  Chamberlain , un programador de Cygnus, quien notó que Windows NT y Windows 95 usaban el formato COFF como su formato de archivo de objeto . En ese momento, GNU ya había implementado soporte para la arquitectura x86 , COFF , así como la biblioteca newlib C; por lo tanto, al menos en teoría, no fue difícil obtener un compilador cruzado de GCC que produjera ejecutables de Windows. Esto resultó ser fácil en la práctica. Pronto apareció un prototipo.

El siguiente paso fue hacer que el compilador funcionara en Windows, pero esto requería la emulación de muchas funciones de Unix: por ejemplo, el script de configuración de GNU tenía que funcionar . Este script necesita un shell como bash , que a su vez requiere E/S estándar y la llamada al sistema fork . Windows tiene una funcionalidad similar, y la biblioteca Cygwin solo traduce las llamadas de los programas mediante la manipulación de ciertos tipos de datos, como los descriptores de archivos .

En 1996, otros programadores se unieron al proyecto Cygwin cuando se hizo evidente que Cygwin haría posible el uso de herramientas Cygnus en sistemas Windows (antes de esto, se planeó usar DJGPP ). Esta opción era especialmente atractiva, porque la compilación cruzada se podía hacer en tres direcciones: se podía usar la poderosa estación Sun para construir el compilador cruzado MIPS de Windows , lo que permitía ahorrar mucho tiempo. Desde 1998, Cygnus ha ofrecido el paquete Cygwin como un producto independiente.

Internacionalización

Antes de la versión 1.7, Cygwin no tenía compatibilidad con Unicode y solo usaba las versiones ANSI de las funciones de Win32; tampoco había soporte para ninguna codificación que no fuera la nativa de Windows y OEM (por ejemplo, en la versión rusa de Windows, Cygwin solo funcionaba con CP1251 y CP866 , pero no con KOI8-R , ISO 8859-5 , UTF-8 o cualquier otro

A partir de la versión 1.7, la codificación predeterminada es Unicode en el formato UTF-8 y, en consecuencia, la configuración regional (locale en inglés) se usa de forma predeterminadaC.UTF-8 . Al llamar a las funciones de Win32, Cygwin traduce las cadenas a la codificación UTF-16 utilizada en los sistemas Windows . Desde la versión 1.7.2, Cygwin también puede obtener información del Registro de Windows de acuerdo con la configuración de Idioma y territorio en la configuración regional.

Otro problema fue que la consola Cygwin (como CMD.EXE ) estaba usando la codificación OEM. Para sortear esta limitación, se recomienda ejecutar los demonios rshd o sshd en Cygwin y usar un emulador de terminal con compatibilidad total con UTF-8, como PuTTY o MinTTY (incluido con Cygwin). A partir de la versión 2.0, Cygwin usa MinTTY como una consola normal, que funciona en codificación UTF-8, lo que le permite mostrar información de texto en UTF-8 directamente. El terminal también traduce la información ingresada desde el teclado en UTF-8, de acuerdo con el diseño nacional utilizado.

Trabajar con cirílico

En las versiones modernas de Cygwin, trabajar con caracteres rusos no requiere configuraciones adicionales. Los caracteres cirílicos se admiten en configuraciones regionales LANG=C.UTF-8 neutrales , incluidos nombres de archivo, nombres de usuario y datos de registro. Puede establecer la configuración regional del idioma ruso LANG=ru_RU.UTF-8. Esto activará los mensajes en ruso (para algunos programas), las fechas en ruso (LC_TIME) y otras configuraciones regionales.

Notas

  1. cygwin 3.3.6-1 - 2022.
  2. 1 2 https://www.openhub.net/p/cygwin/analyses/latest/languages_summary
  3. http://cygwin.com/COPIA
  4. LarryHall. Re: ¿Cómo se pronuncia?  (inglés) (14 de septiembre de 2004). Consultado el 27 de abril de 2010. Archivado desde el original el 25 de agosto de 2011.
  5. Self/x86 (enlace descendente) . www.gliebe.de. Consultado el 24 de diciembre de 2016. Archivado desde el original el 10 de julio de 2016. 

Véase también

Enlaces