88 lines
3.9 KiB
Plaintext
88 lines
3.9 KiB
Plaintext
<chapter id="overview"><title>Cygwin Overview</title>
|
|
|
|
<sect1><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><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 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. 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 contact sales@cygnus.com. 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 cygwin@sourceware.cygnus.com.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1><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><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>
|