OSDN Git Service

contrib:
[pf3gnuchains/gcc-fork.git] / gcc / doc / include / linux-and-gnu.texi
1 @c Copyright (C) 1997, 1998 Free Software Foundation, Inc.
2 @c This is part of the GCC manual.
3 @c For copying conditions, see the file gcc.texi.
4
5 @node GNU/Linux
6 @unnumbered Linux and the GNU Project
7
8 Many computer users run a modified version of the GNU system every
9 day, without realizing it.  Through a peculiar turn of events, the
10 version of GNU which is widely used today is more often known as
11 ``Linux'', and many users are not aware of the extent of its
12 connection with the GNU Project.
13
14 There really is a Linux; it is a kernel, and these people are using
15 it.  But you can't use a kernel by itself; a kernel is useful only as
16 part of a whole system.  The system in which Linux is typically used
17 is a modified variant of the GNU system---in other words, a Linux-based
18 GNU system.
19
20 Many users are not fully aware of the distinction between the kernel,
21 which is Linux, and the whole system, which they also call ``Linux''.
22 The ambiguous use of the name doesn't promote understanding.
23
24 Programmers generally know that Linux is a kernel.  But since they
25 have generally heard the whole system called ``Linux'' as well, they
26 often envisage a history which fits that name.  For example, many
27 believe that once Linus Torvalds finished writing the kernel, his
28 friends looked around for other free software, and for no particular
29 reason most everything necessary to make a Unix-like system was
30 already available.
31
32 What they found was no accident---it was the GNU system.  The available
33 free software added up to a complete system because the GNU Project
34 had been working since 1984 to make one.  The GNU Manifesto
35 had set forth the goal of developing a free Unix-like system, called
36 GNU@.  By the time Linux was written, the system was almost finished.
37
38 Most free software projects have the goal of developing a particular
39 program for a particular job.  For example, Linus Torvalds set out to
40 write a Unix-like kernel (Linux); Donald Knuth set out to write a text
41 formatter (TeX); Bob Scheifler set out to develop a window system (X
42 Windows).  It's natural to measure the contribution of this kind of
43 project by specific programs that came from the project.
44
45 If we tried to measure the GNU Project's contribution in this way,
46 what would we conclude?  One CD-ROM vendor found that in their ``Linux
47 distribution'', GNU software was the largest single contingent, around
48 28% of the total source code, and this included some of the essential
49 major components without which there could be no system.  Linux itself
50 was about 3%.  So if you were going to pick a name for the system
51 based on who wrote the programs in the system, the most appropriate
52 single choice would be ``GNU''@.
53
54 But we don't think that is the right way to consider the question.
55 The GNU Project was not, is not, a project to develop specific
56 software packages.  It was not a project to develop a C compiler,
57 although we did.  It was not a project to develop a text editor,
58 although we developed one.  The GNU Project's aim was to develop
59 @emph{a complete free Unix-like system}.
60
61 Many people have made major contributions to the free software in the
62 system, and they all deserve credit.  But the reason it is @emph{a
63 system}---and not just a collection of useful programs---is because the
64 GNU Project set out to make it one.  We wrote the programs that were
65 needed to make a @emph{complete} free system.  We wrote essential but
66 unexciting major components, such as the assembler and linker, because
67 you can't have a system without them.  A complete system needs more
68 than just programming tools, so we wrote other components as well,
69 such as the Bourne Again SHell, the PostScript interpreter
70 Ghostscript, and the GNU C library.
71
72 By the early 90s we had put together the whole system aside from the
73 kernel (and we were also working on a kernel, the GNU Hurd, which runs
74 on top of Mach).  Developing this kernel has been a lot harder than we
75 expected, and we are still working on finishing it.
76
77 Fortunately, you don't have to wait for it, because Linux is working
78 now.  When Linus Torvalds wrote Linux, he filled the last major gap.
79 People could then put Linux together with the GNU system to make a
80 complete free system: a Linux-based GNU system (or GNU/Linux system,
81 for short).
82
83 Putting them together sounds simple, but it was not a trivial job.
84 The GNU C library (called glibc for short) needed substantial changes.
85 Integrating a complete system as a distribution that would work ``out
86 of the box'' was a big job, too.  It required addressing the issue of
87 how to install and boot the system---a problem we had not tackled,
88 because we hadn't yet reached that point.  The people who developed
89 the various system distributions made a substantial contribution.
90
91 The GNU Project supports GNU/Linux systems as well as @emph{the}
92 GNU system---even with funds.  We funded the rewriting of the
93 Linux-related extensions to the GNU C library, so that now they are
94 well integrated, and the newest GNU/Linux systems use the current
95 library release with no changes.  We also funded an early stage of the
96 development of Debian GNU/Linux.
97
98 We use Linux-based GNU systems today for most of our work, and we hope
99 you use them too.  But please don't confuse the public by using the
100 name ``Linux'' ambiguously.  Linux is the kernel, one of the essential
101 major components of the system.  The system as a whole is more or less
102 the GNU system.