from Wikipedia, the free encyclopedia

Cygwin logo.svg
Cygwin X11 rootless WinXP.png

Cygwin's X servers and terminals
Basic data

Maintainer Red hat
developer Red hat
Publishing year 1995
Current  version 3.1.6-1
( July 9, 2020 )
operating system Microsoft Windows (from Vista )
programming language C / C ++
category API wrapper
License LGPL and GPL
German speaking No

With Cygwin [ sɪɡwɪn ] can be computer programs , which are usually under POSIX systems such as GNU / Linux , BSD and Unix running on the operating system Windows from Microsoft to port . It is a compatibility layer that the Unix API makes available for different versions of Windows, on the basis of which a large number of programs from the Unix world can be translated under Windows.

Programs ported via Cygwin run as of 2016 under all Windows versions from Windows Vista .

Cygwin was originally programmed by Cygnus Solutions and since its takeover by the software company Red Hat , it has been further developed there.


The core of Cygwin is a DLL (cygwin1.dll), which provides a counterpart to the Unix system calls or translates them to the corresponding functions of the Windows API . The programs ported with Cygwin normally cannot run without this environment, as they are linked against the Cygwin DLL and are therefore dependent on it.


While packages for Cygwin initially had to be laboriously ported by hand, there is now also a separate build and package management program for developers with Cygport , which is roughly based on Gentoo's Portage. Maintenance and updates of an installation and its packages are carried out for normal users via a simple setup program with a Windows interface.

With Cygwin / X there is also a porting of the X.Org server to the Cygwin environment, so that a complete X server is available under Microsoft Windows .

The ported X server makes it possible to either run UNIX / Linux programs that were compiled for Windows locally on the Windows computer (run startxwin.bat ), or programs that run on a Unix or Linux computer be able to display on Windows; You can also log into the Unix computer from the Windows computer (run startxdmcp.bat ).

This can be interesting for private users and programmers who use Windows and Unix / Linux at the same time.

Local partitions are addressed with /cygdrive/c, /cygdrive/detc. Windows shares can be //host/share/fileaccessed with.

An SSH server is also possible through Cygwin, which can be installed as a service under Windows. Cygwin is also often used to program Bash procedures, which can then perform automated system functions. This includes local or remote data backups on other Unix systems. Microsoft implemented a functionality similar to Cygwin with the Services for Unix package (SFU) and its successor Windows Subsystem for Linux .


Cygwin began in 1995 as a project by Steve Chamberlain, a Cygnus developer. He had noticed that on PCs with Intel x86 CPUs that had Windows NT and Windows 95 as the operating system, COFF was usually used as the object file format. He had also noticed that the GNU compilers (GCC) already offered support for x86 and COFF in connection with the C library newlib . So, he concluded, it shouldn't be too difficult - at least in theory - to realign the GCC in order to create another cross-compiler that then immediately generates executable files for the Windows platform. In practice, the task involved a certain amount of effort, which Chamberlain finally mastered successfully, so that the first example programs could be generated and tested.

Next, the compiler itself should be made to run on a Windows system; To do this, some basic components of the usual GNU configuration, various shell scripts and the bash shell itself had to be made executable in an emulation on the Windows system . The Windows Win32 API already contained numerous very similar functions, so that the majority of the system calls used only had to be adapted. This resulted in various Cygwin libraries, so-called DLLs, which were built directly onto the Windows system, but which offered the services (APIs) typical for Unix at the top.

By 1996 there were a few other developers who joined the project, especially because it slowly became clear that it could be worthwhile to offer Unix applications using the Cygwin components for Windows systems. (Earlier Unix-to-Windows ports were mostly based on the DJGPP development environment ). Cygnus began commercializing Cygwin for a profit in around 1998. Cygwin is now offered as free software under the GPL and is also being further developed under the leadership of Red Hat .

In June 2016, Red Hat announced that from version 2.5.2 the Cygwin DLL will no longer be published under GPLv3, but under LGPLv3 . Therefore, from this version onwards, the Cygwin DLL can also be used for proprietary programs. Before that, a license had to be obtained from Red Hat. This change also makes it easier for external developers to submit patches by eliminating the need for a copyright agreement with Red Hat.

See also

Web links

Individual evidence

  1. cygwin 3.1.6-1 .
  2. ^ Red Hat, Inc .: Cygwin FAQ. What versions of Windows are supported? Retrieved October 19, 2016 .
  3. Cygport README on GitHub.
  4. Corinna Vinschen, Cygwin Maintainer, Red Hat, Inc .: Cygwin Mailing List. Cygwin library now available under GNU LGPL. Retrieved January 30, 2017 (English).
  5. Corinna Vinschen, Cygwin Maintainer, Red Hat, Inc .: Cygwin Mailing List. New procedure for code contributions to the Cygwin sources. Retrieved January 30, 2017 (English).