* setup-net.sgml: Add "internet-setup" id anchor.
	* overview.sgml: Update "What is it?" section. Add links to
	"Is it free software?" section. Update "Brief History" section.
	* overview2.sgml: Rewrite "Expectations for {Windows,Unix}"
	as "Quick Start for those more experienced with {Windows,Unix}".
		
	
		
			
				
	
	
		
			110 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<chapter id="overview"><title>Cygwin Overview</title>
 | 
						||
 | 
						||
<sect1 id="what-is-it"><title>What is it?</title>
 | 
						||
 | 
						||
<para>
 | 
						||
Cygwin is a Linux-like environment for Windows. It consists of a DLL
 | 
						||
(<filename>cygwin1.dll</filename>), which acts as an emulation layer
 | 
						||
providing substantial <ulink
 | 
						||
URL="http://www.pasc.org/#POSIX">POSIX</ulink> (Portable Operating
 | 
						||
System Interface) system call functionality, and a collection of tools,
 | 
						||
which provide a Linux look and feel. The Cygwin DLL works with all x86
 | 
						||
versions of Windows since Windows 95.
 | 
						||
</para>
 | 
						||
<para>
 | 
						||
With Cygwin installed, users have access to many standard UNIX
 | 
						||
utilities.  They can be used from one of the provided shells such
 | 
						||
as <command>bash</command> or from the Windows Command Prompt.
 | 
						||
Additionally, 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
 | 
						||
distribution). 
 | 
						||
</para>
 | 
						||
</sect1>
 | 
						||
 | 
						||
DOCTOOL-INSERT-ov-ex-win
 | 
						||
DOCTOOL-INSERT-ov-ex-unix
 | 
						||
 | 
						||
<sect1 id="are-free"><title>Are the Cygwin tools free software?</title>
 | 
						||
 | 
						||
<para>Yes. Parts are <ulink URL="http://www.gnu.org/">GNU</ulink> software 
 | 
						||
(<command>gcc</command>, <command>gas</command>, <command>ld</command>, etc.),
 | 
						||
parts are covered by the standard 
 | 
						||
<ulink URL="http://www.x.org/Downloads_terms.html">X11 license</ulink>, 
 | 
						||
some of it is public domain, some of it was written by Red Hat and placed under
 | 
						||
the <ulink URL="http://www.gnu.org/licenses/gpl.html">GNU General Public 
 | 
						||
License</ulink> (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 GPL 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>
 | 
						||
 | 
						||
<note>
 | 
						||
<para>
 | 
						||
A more complete historical look Cygwin is Geoffrey J. Noer's 1998 paper,
 | 
						||
"Cygwin32: A Free Win32 Porting Layer for UNIX<49> Applications" which can be
 | 
						||
found at the <ulink
 | 
						||
URL="http://www.usenix.org/publications/library/proceedings/usenix-nt98/technical.html">
 | 
						||
2nd USENIX Windows NT Symposium Online Proceedings</ulink>.
 | 
						||
</para>
 | 
						||
</note>
 | 
						||
<para>
 | 
						||
Cygwin began development in 1995 at Cygnus Solutions (now part of Red Hat
 | 
						||
Software).  The first thing done was to enhance the development tools 
 | 
						||
(<command>gcc</command>, <command>gdb</command>, <command>gas</command>, 
 | 
						||
etc.) so that they could generate and interpret Win32 native
 | 
						||
object files.
 | 
						||
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 (<function>fork</function>,
 | 
						||
<function>spawn</function>, <function>signals</function>,
 | 
						||
<function>select</function>, <function>sockets</function>, 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 in October 1996.</para>
 | 
						||
 | 
						||
<para>
 | 
						||
The entire Cygwin toolset was available as a monolithic install. In
 | 
						||
April 2000, the project announced a
 | 
						||
<ulink URL="http://www.cygwin.com/ml/cygwin/2000-04/msg00269.html">
 | 
						||
New Cygwin Net Release</ulink> which provided the native Win32 program
 | 
						||
<command>setup.exe</command> to install and upgrade each package
 | 
						||
separately. Since then, the Cygwin DLL and <command>setup.exe</command> 
 | 
						||
have seen continuous development.
 | 
						||
</para>
 | 
						||
</sect1>
 | 
						||
 | 
						||
DOCTOOL-INSERT-highlights
 | 
						||
 | 
						||
</chapter>
 |