89 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<chapter id="overview"><title>Cygwin Overview</title>
 | 
						|
 | 
						|
<sect1 id="what-is-it"><title>What is it?</title>
 | 
						|
 | 
						|
<para>The Cygwin tools are ports of the popular GNU development
 | 
						|
tools and utilities for Windows NT and 9x. They function through the
 | 
						|
use of the Cygwin library which provides the UNIX system calls and
 | 
						|
environment that these programs require.</para>
 | 
						|
 | 
						|
<para>With the tools installed, programmers may 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 development
 | 
						|
tools included with the Cygwin distributions). Even if the
 | 
						|
compiler tools are of little to no use to you, you may have
 | 
						|
interest in the many standard UNIX utilities. They can be used both
 | 
						|
from the bash shell (provided) or from the command.com.</para>
 | 
						|
 | 
						|
</sect1>
 | 
						|
 | 
						|
<sect1 id="are-free"><title>Are the Cygwin tools free software?</title>
 | 
						|
 | 
						|
<para>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 Red Hat 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. If you intend to port a proprietary application using the Cygwin
 | 
						|
library, you may want the Cygwin proprietary-use license.
 | 
						|
For more information about the proprietary-use license, please go to
 | 
						|
<ulink URL="http://www.redhat.com/software/tools/cygwin/">http://www.redhat.com/software/tools/cygwin/
 | 
						|
</ulink>.  Customers of the native Win32 GNUPro should feel free to submit bug
 | 
						|
reports and ask questions through the normal channels.  All other
 | 
						|
questions should be sent to the project mailing list
 | 
						|
<email>cygwin@cygwin.com</email>.</para>
 | 
						|
 | 
						|
</sect1>
 | 
						|
 | 
						|
<sect1 id="brief-history"><title>A brief history of the Cygwin project</title>
 | 
						|
 | 
						|
<para>The first thing done was to enhance the development tools (gcc,
 | 
						|
gdb, gas, et al) so that they could generate/interpret Win32 native
 | 
						|
object files.</para>
 | 
						|
 | 
						|
<para>The next task was to port the tools to Win NT/9x. We could have
 | 
						|
done this by rewriting large portions of the source to work within the
 | 
						|
context of the Win32 API. But this would have meant spending a huge
 | 
						|
amount of time on each and every tool. Instead, we took a
 | 
						|
substantially different approach by writing a shared library
 | 
						|
(the Cygwin DLL) that adds the necessary UNIX-like functionality
 | 
						|
missing from the Win32 API (fork, spawn, signals, select, sockets,
 | 
						|
etc.).  We call this new interface the Cygwin API. Once written, it
 | 
						|
was possible to build working Win32 tools using UNIX-hosted
 | 
						|
cross-compilers, linking against this library.</para>
 | 
						|
 | 
						|
<para>From this point, we pursued the goal of producing native tools
 | 
						|
capable of rebuilding themselves under Windows 9x and NT (this is
 | 
						|
often called self-hosting). Since neither OS ships with standard UNIX
 | 
						|
user tools (fileutils, textutils, bash, etc...), we had to get the GNU
 | 
						|
equivalents working with the Cygwin API. Most of these tools were
 | 
						|
previously only built natively so we had to modify their configure
 | 
						|
scripts to be compatible with cross-compilation. Other than the
 | 
						|
configuration changes, very few source-level changes had to be
 | 
						|
made. Running bash with the development tools and user tools in place,
 | 
						|
Windows 9x and NT look like a flavor of UNIX from the perspective of
 | 
						|
the GNU configure mechanism. Self hosting was achieved as of the beta
 | 
						|
17.1 release.</para>
 | 
						|
 | 
						|
</sect1>
 | 
						|
 | 
						|
DOCTOOL-INSERT-ov-ex-unix
 | 
						|
DOCTOOL-INSERT-ov-ex-win
 | 
						|
<sect1 id="highlights"><title>Highlights of Cygwin Functionality</title>
 | 
						|
DOCTOOL-INSERT-ov-hi-intro
 | 
						|
DOCTOOL-INSERT-ov-hi-win9xnt
 | 
						|
DOCTOOL-INSERT-ov-hi-perm
 | 
						|
DOCTOOL-INSERT-ov-hi-files
 | 
						|
DOCTOOL-INSERT-ov-hi-textvsbinary
 | 
						|
DOCTOOL-INSERT-ov-hi-ansiclib
 | 
						|
DOCTOOL-INSERT-ov-hi-process
 | 
						|
DOCTOOL-INSERT-ov-hi-signals
 | 
						|
DOCTOOL-INSERT-ov-hi-sockets
 | 
						|
DOCTOOL-INSERT-ov-hi-select
 | 
						|
</sect1>
 | 
						|
</chapter>
 |