Cygwin is a UNIX-like shell environment for Windows. It consists of two components: a UNIX API library to emulate many of the features that the UNIX operating system provides, and adaptations of the Bash shell and a plethora of UNIX utilities to provide the familiar UNIX command-line interface. The former component is provided as a Windows Dynamic Link Library (DLL). The latter component is a collection of individual programs —many built from source code unchanged from UNIX—based on the Cygwin DLL. Combined, the two give you all the comforts of your UNIX home directory, sweet home.
In this month’s Speaking UNIX column, you install Cygwin, explore its command-line interface (CLI), and build open source software not included in the standard Cygwin distribution to experience how easy it is to port (at least some) UNIX applications to the emulation environment.