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.
What versions of Windows are supported?
Wait a minute... Cygwin is only supported if you are paying for
it, such as through a support contract with Red Hat. For information
about getting a Red Hat support contract, see
http://www.redhat.com/software/tools/cygwin/.
That said, Cygwin can be expected to run on all modern 32 bit versions of
Windows, except Windows CE. This includes Windows 95/98/ME/NT/2000/XP.
Keep in mind that Cygwin can only do as much as the underlying OS
supports. Because of this, Cygwin will behave differently, and
exhibit different limitations, on the various versions of Windows.
Where can I get it?
The home page for the Cygwin project is http://cygwin.com/.
There you should find everything you need for Cygwin, including links
for download and setup, a current list of mirror sites, a User's
Guide, an API Reference, mailing lists and archives, and additional
ported software.
You can find documentation for the individual GNU tools at
http://www.fsf.org/manual/. (You should read GNU manuals from a
local mirror. Check http://www.fsf.org/server/list-mirrors.html
for a list of them.)
Is it free software?
Yes. Parts are GNU software (gcc, gas, ld, etc...), parts are covered
by the standard X11 license, some of it is public domain, some of
it was written by Cygnus and placed under the GPL. None of it is
shareware. You don't have to pay anyone to use it but you should be
sure to read the copyright section of the FAQ for more information on
how the GNU General Public License may affect your use of these tools.
In particular, if you intend to port a proprietary (non-GPL'd)
application using Cygwin, you will need the proprietary-use license
for the Cygwin library. This is available for purchase; please visit
http://www.redhat.com/software/tools/cygwin/ for more information.
All other questions should be sent to the project
mailing list cygwin@cygwin.com.
Note that when we say "free" we mean freedom, not price. The goal of
such freedom is that the people who use a given piece of software
should be able to change it to fit their needs, learn from it, share
it with their friends, etc. The Cygwin license allows you those
freedoms, so it is free software.
What version of Cygwin is this, anyway?
To find the version of the Cygwin DLL installed, you can use
uname as on Linux or cygcheck. Refer to each command's
--help output and the Cygwin User's Guide for more information.
If you are looking for the version number for the whole Cygwin
release, there is none. Each package in the Cygwin release has its own
version. The packages in Cygwin are continually improving, thanks to
the efforts of net volunteers who maintain the Cygwin binary ports.
Each package has its own version numbers and its own release process.
So, how do you get the most up-to-date version of Cygwin? Easy. Just
download the Cygwin Setup program from
http://cygwin.com/setup.exe. This program will handle the task
of updating the packages on your system to the latest version. For
more information about using Cygwin's setup.exe, see
Setting Up Cygwin
in the Cygwin User's Guide.
History
See http://cygwin.com/history.html.
Who's behind the project?
(Please note that if you have cygwin-specific questions, all of these people will appreciate it if you use the cygwin mailing lists rather than sending personal email.)
Chris Faylor is behind many of the recent changes in Cygwin. Prior to
joining Cygnus, he contributed significant fixes to the process control
and environ code, reworked the strace mechanism, and rewrote the
signal-related code from scratch as a Net contributor. In addition to
continuing to make technical contributions, Chris is also currently the
group's manager.
Corinna Vinschen has contributed several useful fixes to the path
handling code, console support, improved security handling, and raw
device support. Corinna is currently employed by Red Hat as a
GDB/Cygwin engineer.
DJ Delorie has done important work in profiling Cygwin,
worked on the Dejagnu automated testing framework, merged the dlltool
functionality into ld, wrote a good deal of the Cygwin Users' Guide,
authored the cygcheck utility, and made automated snapshots available
from our project WWW page. DJ is currently employed by Red Hat as
a GCC engineer.
Egor Duda has contributed many useful fixes. He is responsible for
Cygwin's ability to start a debugger on detection of a fatal error
as well as produce core dumps.
Robert Collins has contributed many improvements to thread handling
as well as generic fixes to cygwin itself.
Kazuhiro Fujieda has contributed many bug fixes and bug reports.
Earnie Boyd has contributed many bug fixes and is the mingw and w32api
maintainer.
David Starks-Browning is our dedicated FAQ maintainer.
Geoffrey Noer took over the Cygwin project from its initial author Steve
Chamberlain in mid-1996. As maintainer, he produced Net releases beta
16 through 20; made the development snapshots; worked with Net
contributors to fix bugs; made many various code improvements himself;
wrote a paper on Cygwin for the 1998 Usenix NT Symposium; authored the
project WWW pages, FAQ, README; etc. Geoffrey is not currently employed
by Red Hat.
Steve Chamberlain designed and implemented
Cygwin in 1995-1996 while working for Cygnus. He worked with the Net
to improve the technology, ported/integrated many of the user tools
for the first time to Cygwin, and produced all of the releases up to
beta 14. Steve is not currently employed by Red Hat.
Marco Fuykschot and Peter Boncz of Data Distilleries contributed nearly
all of the changes required to make Cygwin thread-safe. They also
provided the pthreads interface.
Sergey Okhapkin has been an invaluable Net contributor. He implemented
the tty/pty support, has played a significant role in revamping signal
and exception handling, and has made countless contributions throughout
the library. He also provided binaries of the development snapshots to
the Net after the beta 19 release.
Mumit Khan has been most helpful on the EGCS end of things, providing
quite a large number of stabilizing patches to the compiler tools for
the B20 release.
Philippe Giacinti contributed the implementation of dlopen, dlclose,
dlsym, dlfork, and dlerror in Cygwin.
Ian Lance Taylor did a much-needed rework of the path handling code for
beta 18, and has made many assorted fixes throughout the code. Jeremy
Allison made significant contributions in the area of file handling and
process control, and rewrote select from scratch. Doug Evans rewrote
the path-handling code in beta 16, among other things. Kim Knuttila and
Michael Meissner put in many long hours working on the now-defunct
PowerPC port. Jason Molenda and Mark Eichin have also made important
contributions.
Please note that all of us working on Cygwin try to
be as responsive as possible and deal with patches and questions as we
get them, but realistically we don't have time to answer all of the
email that is sent to the main mailing list. Making Net releases of the
Win32 tools and helping people on the Net out is not our primary job
function, so some email will have to go unanswered.
Many thanks to everyone using the tools for their many contributions in
the form of advice, bug reports, and code fixes. Keep them coming!