161 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@chapter 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.
 | 
						|
 | 
						|
@section What versions of Windows are supported?
 | 
						|
 | 
						|
Wait a minute... Cygwin is only @emph{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
 | 
						|
@file{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.
 | 
						|
 | 
						|
@section Where can I get it?
 | 
						|
 | 
						|
The main location for the Cygwin project is
 | 
						|
@file{http://cygwin.com/}.  There you should find
 | 
						|
everything you need for Cygwin, including links for download and setup,
 | 
						|
a current list of ftp 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
 | 
						|
@file{http://www.fsf.org/manual/}.  (You should read GNU manuals from a
 | 
						|
local mirror.  Check @file{http://www.fsf.org/server/list-mirrors.html}
 | 
						|
for a list of them.)
 | 
						|
 | 
						|
 | 
						|
@section 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 more 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
 | 
						|
@file{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.
 | 
						|
 | 
						|
The Cygwin 1.0 product was a "commercial" distribution of cygwin.  As
 | 
						|
such, it included such non-software things as printed manuals,
 | 
						|
support, and aggregation of useful utilities.  There was nothing
 | 
						|
(software-wise) in there that you couldn't get off the net already, if
 | 
						|
you took the time to find and download everything (and usually, build
 | 
						|
it yourself), although the @emph{versions} available for download may
 | 
						|
have been different than those distributed with the commercial
 | 
						|
product.  We tested it all to make sure it worked together, and
 | 
						|
packaged it in a convenient form.  We considered such testing and
 | 
						|
packaging to be a valuable service and thus charged a fee for it.
 | 
						|
Plus, it provided income for the Cygwin project so we could continue
 | 
						|
working on it.  However, Red Hat is no longer offering Cygwin 1.0 on
 | 
						|
CD, and there are no plans to do so again.  The latest news about this
 | 
						|
can be found at @file{http://cygwin.com/cygwin-cd.html}.
 | 
						|
 | 
						|
 | 
						|
@section Recent history of the project: What version @emph{is} this, anyway?
 | 
						|
 | 
						|
Starting on April 17, 2000, the Cygwin team changed the procedure for
 | 
						|
doing net releases.
 | 
						|
 | 
						|
Previously, net releases entailed downloading one or two large files
 | 
						|
(called something like @code{FULL.EXE} or @code{USER.EXE}).  These files
 | 
						|
unpacked a "Cygwin Distribution" to a static (and arcane) directory
 | 
						|
structure.  This distribution contained lots of .exe, .a, .h, and other
 | 
						|
files.
 | 
						|
 | 
						|
These distributions were named after the version of the Cygwin DLL which
 | 
						|
they contained.  The last version released with this method was Cygwin
 | 
						|
B20.1.
 | 
						|
 | 
						|
This distribution method has the advantage that everything was "all in
 | 
						|
one place".  You could copy the huge FULL.EXE file around and know that
 | 
						|
you were getting the complete "Cygwin Distribution".
 | 
						|
 | 
						|
The method had several disadvantages, however.  1) it was huge, 2) it
 | 
						|
was hard to download in one error-free piece, and 3) it was hard to
 | 
						|
update.
 | 
						|
 | 
						|
Why was it hard to update?  Because any change to any package in
 | 
						|
FULL.EXE meant re-generating all of FULL.EXE.  This process was not easy
 | 
						|
to automate since FULL.EXE was an InstallShield executable.  As a
 | 
						|
result, until recently, Cygwin development was relatively static.
 | 
						|
 | 
						|
To rectify these problems, the Cygwin team decided, early in January
 | 
						|
2000, to break up the packages in the release and make a small program
 | 
						|
(@code{setup.exe}) available to use in downloading packages.  After much
 | 
						|
development and internal discussion on the cygwin-developers mailing
 | 
						|
list, the new, improved version of a Cygwin release was made available
 | 
						|
on April 17, 2000.
 | 
						|
 | 
						|
This new release also had a new version of the Cygwin DLL -- 1.1.0.
 | 
						|
Most of the other packages were updated and some packages from the
 | 
						|
Cygwin CD were included.  Meanwhile, the Cygwin DLL continues to be
 | 
						|
updated, and since release 1.3.1, is more generically referred to as
 | 
						|
"1.3.x".
 | 
						|
 | 
						|
Users obtain this package by first downloading a version of
 | 
						|
Cygwin Setup.  This program started as a simple command line tool,
 | 
						|
has metamorphosed into a GUI, and is in the process of continual
 | 
						|
improvement.  However, its purpose is simple -- it is designed to
 | 
						|
install packages from the cygwin web site at @file{http://cygwin.com/}.
 | 
						|
In effect, it is a smaller, more intelligent replacement for FULL.EXE.
 | 
						|
It does not require the downloading a huge executable but rather
 | 
						|
downloads individual small packages.
 | 
						|
 | 
						|
Does this mean that the new net release of the Cygwin package is 1.3.x?
 | 
						|
No.  We no longer label the releases with the Cygwin version number.
 | 
						|
Each package in the cygwin release has its own version now.
 | 
						|
 | 
						|
Does this mean that Cygwin 1.3.x is newer than B20.1?  Yes!  The cygwin
 | 
						|
1.3.x versions all represent continual improvement in the Cygwin DLL.
 | 
						|
Although the 1.3.x code is still considered "beta quality", the Cygwin
 | 
						|
team felt comfortable enough with the cygwin technology to bump the
 | 
						|
version number to "1".
 | 
						|
 | 
						|
The other packages in the latest directory are also 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
 | 
						|
@file{http://cygwin.com/setup.exe}.  This program will handle the task
 | 
						|
of updating the packages on your system to the latest version.  The
 | 
						|
Cygwin team frequently updates and adds new packages to the sourceware
 | 
						|
web site.  The Cygwin Setup program is the easiest way to determine what
 | 
						|
you need on your system.
 | 
						|
 | 
						|
For some "ancient" history of the project (rather, just woefully out of
 | 
						|
date), visit the Project History page at
 | 
						|
@file{http://cygwin.com/history.html}.
 |