Cygwin consists of a collection of various tools and libraries aimed to provide a Linux-like environment on Windows Operating System. It acts as an emulation layer, making it possible to run native Linux applications on Microsoft Windows.
Originally developed by Cygnus Solutions, but acquired in 2000 by Red Hat, Cygwin is mostly bent on providing programmers with a simple way to provide Windows compatibility for applications that were originally developed for Linux environments. A few examples of Unix applications ported successfully are KDE, GNOME and Apache.
Cygwin consists of a DLL whose purpose is to provide POSIX API functionality and a collection of utilities that are able to accommodate the Unix look and feel on Windows computers. Components such as syslogd, inetd, crond and several such daemons are deployed as services, thus making it possible for Windows to behave in a Linux manner.
Being such a complex application, a sophisticated installation is expected. Deployment requires several user interventions, as well as a working Internet connection for downloading files from dedicated servers.
Users are advised to pay attention to the packages they select during setup; the more components, the longer the installation process. By default, the selection is minimal and includes only the bash shell, as well as core utilities, which are common in Unix command line.
Other components, such as terminals (mintty, util-linux), text utilities (grep, diff, patch), shells (dash, zsh, tcsh), servers (Apache, PostgreSQL, OpenSSH) and other development-related utilities are available in optional packages.
However, the default selection should be enough for compiling source code in order to produce GUI or console applications that are compatible with Windows. After all, the beauty of Cygwin comes from the fact that developers need not make extensive changes to the code, but few adjustments and additions.
What's New in This Release:
· Change magic number associated with process information block so that 32-bit Cygwin processes don't try to interpret 64-bit information and vice-versa.
· Redefine content of mtget tape info struct to allow fetching the number of partitions on a tape.
Bug fixes:
· Fix creating two partitions on tape drives supporting initiator partitions.
· Update the internally used blocksize after setting a new blocksize for the current tape.
Fix problem with queued signals as manifested by:
· Fix bug in sbrk breaking extending the heap beyond its default size.