From Red Hat Inc
* a collection of tools which provide a Linux look and feel environment for Windows.
* a DLL (cygwin1.dll) which acts as a Linux API layer providing substantial Linux API functionality.
The Cygwin tools are ports of the popular GNU development tools for Microsoft Windows. They run thanks to the Cygwin library which provides the POSIX system calls and environment these programs expect.
With these tools installed, it is possible to write Windows console or GUI applications that make use of significant parts of the POSIX API. As a result, it is possible to easily port many 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) as well as lots of BSD tools and packages (including OpenSSH). Even if the development tools are of little to no use to you, you may have interest in the many standard POSIX utilities provided with the package. They can be used from one of the provided Unix shells like bash, tcsh or zsh, as well as from the standard Windows command shell if you have to for some sad reason.
- New API: strchrnul.
- Slightly speed up file access when creating new files.
- Move the call to _feinitialise from crt0.o to the Cygwin DLL itself.
- Add a cheat to mmap to allow a certain autoconf test to succeed on 64 bit Windows systems as well.
- Provide a sys/xattr.h header file as on Linux. On Cygwin it just includes the already existing attr/xattr.h.
- Fix a problem when loading winmm functions on XP and Server 2003.
- Fix a bug in the new POSIX compatible strerror_r function. Tweak sys/cdefs.h and string.h headers to make sure linking against strerror_r will correctly pick up the POSIX implementation.
- Avoid endless blocking behaviour in mq_timedsend and mq_timedreceive when used with O_NONBLOCK message queues.
- Rewrite parts of the /proc/sys implementation to avoid potential crashes with badly written drivers.
- Fix a problem to fetch correct file permissions on just created files on XP and Server 2003.
- Avoid potential data loss when sending lots of data through a pipe.
- Fix inode number handling in stat.
- Lower the pressure on the cygheap when using mmap a lot.
- Raise the default size of the cygheap to 2 Megs.
- Don't use SSE instructions on systems not supporting them (NT4).
- Fix return codes and setting of errno in sem_init, sem_destroy, and sem_close functions.