Cygwin
What is it?
The Cygwin tools are ports of the popular GNU development tools for Microsoft Windows. They run thanks to the Cygwin library which provides the UNIX system calls and environment these programs expect.

With these tools installed, it is possible to write Win32 console or GUI applications that make use of the standard Microsoft Win32 API and/or the Cygwin API. As a result, it is possible to easily port many significant Unix programs without the need for extensive changes to the source code. This includes configuring and building most of the available GNU software (including the packages included with the Cygwin development tools themselves). Even if the development tools are of little to no use to you, you may have interest in the many standard Unix utilities provided with the package. They can be used both from the bash shell (provided) or from the standard Windows command shell.

# Cygwin is a Linux-like environment for Windows. It consists of two parts: A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
# A collection of tools, which provide Linux look and feel.

The Cygwin DLL works with all non-beta, non "release candidate", ix86 32 bit versions of Windows since Windows 95, with the exception of Windows CE.
Review: Improving the Windows Experience with Cygwin (with screenshots) written by Marcel Gagné
Long-time Unix and Linux users realize that sometimes nothing beats the power of the shell, not to mention the bevy of tools that the *nix environment provides. This is where Cygwin shows its power. Cygwin is actually a collection of GNU tools ported to Windows, which is done through the use of a Cygwin runtime library. Using Cygwin, a developer can use Cygwin's runtime (or the Win32 API), the gcc compiler, and accompanying debugging tools, to port Unix and Linux software to Windows.

The reason for Cygwin goes beyond simply porting Linux and Unix code to Windows. Standard bash scripts can be used on your Windows systems, thereby extending the functionality of those machines, particularly those that act as servers. Suddenly, you can have access to all those commands that you desperately miss everytime you find yourself working on a Windows machine. Finally — and this was the feature that captured my curiosity — the ability to run X provides you with the flexibility to run any Linux/Unix application from your Windows desktop, thereby completing the administration puzzle. Intrigued? Then, read on.

Install Cygwin now!
What are the licensing terms?
Most of the tools are covered by the GNU GPL, some are public domain, and others have a X11 style copyright. To cover the GNU GPL requirements, the basic rule is if you give out any binaries, you must also make the source available. For the full details, be sure to read the text of the GNU General Public License (GPL).

The Cygwin API library found in the winsup subdirectory of the source code is also covered by the GNU GPL (with exceptions; see below). By default, all executables link against this library (and in the process include GPL'd Cygwin glue code). This means that unless you modify the tools so that compiled executables do not make use of the Cygwin library, your compiled programs will also have to be free software distributed under the GPL with source code available to all.