annotate etc/THE-GNU-PROJECT @ 74781:13398fbba9cf

*** empty log message ***
author Eli Zaretskii <eliz@gnu.org>
date Wed, 20 Dec 2006 23:52:56 +0000
parents 41ca3e86bd27
children 540edc5802ca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1 The GNU Project
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3 by Richard Stallman
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5 originally published in the book "Open Sources"
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7 The first software-sharing community
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
8
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
9 When I started working at the MIT Artificial Intelligence Lab in 1971,
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
10 I became part of a software-sharing community that had existed for many
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
11 years. Sharing of software was not limited to our particular community;
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
12 it is as old as computers, just as sharing of recipes is as old as
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
13 cooking. But we did it more than most.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
14
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
15 The AI Lab used a timesharing operating system called ITS (the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
16 Incompatible Timesharing System) that the lab's staff hackers (1) had
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17 designed and written in assembler language for the Digital PDP-10, one
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
18 of the large computers of the era. As a member of this community, an AI
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
19 lab staff system hacker, my job was to improve this system.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
20
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
21 We did not call our software "free software", because that term did not
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
22 yet exist; but that is what it was. Whenever people from another
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
23 university or a company wanted to port and use a program, we gladly let
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
24 them. If you saw someone using an unfamiliar and interesting program,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
25 you could always ask to see the source code, so that you could read it,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
26 change it, or cannibalize parts of it to make a new program.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
27
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
28 (1) The use of "hacker" to mean "security breaker" is a confusion on
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
29 the part of the mass media. We hackers refuse to recognize that
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30 meaning, and continue using the word to mean, "Someone who loves to
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 program and enjoys being clever about it."
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
33 The collapse of the community
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
34
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
35 The situation changed drastically in the early 1980s when Digital
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
36 discontinued the PDP-10 series. Its architecture, elegant and powerful
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
37 in the 60s, could not extend naturally to the larger address spaces
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
38 that were becoming feasible in the 80s. This meant that nearly all of
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 the programs composing ITS were obsolete.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
40
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
41 The AI lab hacker community had already collapsed, not long before. In
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 1981, the spin-off company Symbolics had hired away nearly all of the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
43 hackers from the AI lab, and the depopulated community was unable to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
44 maintain itself. (The book Hackers, by Steve Levy, describes these
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45 events, as well as giving a clear picture of this community in its
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
46 prime.) When the AI lab bought a new PDP-10 in 1982, its administrators
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
47 decided to use Digital's non-free timesharing system instead of ITS.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 The modern computers of the era, such as the VAX or the 68020, had
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
50 their own operating systems, but none of them were free software: you
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
51 had to sign a nondisclosure agreement even to get an executable copy.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
52
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
53 This meant that the first step in using a computer was to promise not
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
54 to help your neighbor. A cooperating community was forbidden. The rule
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
55 made by the owners of proprietary software was, "If you share with your
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
56 neighbor, you are a pirate. If you want any changes, beg us to make
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
57 them."
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
58
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
59 The idea that the proprietary-software social system--the system that
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
60 says you are not allowed to share or change software--is antisocial,
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
61 that it is unethical, that it is simply wrong, may come as a surprise
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
62 to some readers. But what else could we say about a system based on
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
63 dividing the public and keeping users helpless? Readers who find the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
64 idea surprising may have taken proprietary-software social system as
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
65 given, or judged it on the terms suggested by proprietary software
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
66 businesses. Software publishers have worked long and hard to convince
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
67 people that there is only one way to look at the issue.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
68
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
69 When software publishers talk about "enforcing" their "rights" or
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
70 "stopping piracy", what they actually *say* is secondary. The real
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
71 message of these statements is in the unstated assumptions they take
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
72 for granted; the public is supposed to accept them uncritically. So
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
73 let's examine them.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
74
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
75 One assumption is that software companies have an unquestionable
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
76 natural right to own software and thus have power over all its users.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
77 (If this were a natural right, then no matter how much harm it does to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
78 the public, we could not object.) Interestingly, the US Constitution
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
79 and legal tradition reject this view; copyright is not a natural right,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
80 but an artificial government-imposed monopoly that limits the users'
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
81 natural right to copy.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
83 Another unstated assumption is that the only important thing about
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84 software is what jobs it allows you to do--that we computer users
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
85 should not care what kind of society we are allowed to have.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
86
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
87 A third assumption is that we would have no usable software (or would
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
88 never have a program to do this or that particular job) if we did not
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
89 offer a company power over the users of the program. This assumption
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
90 may have seemed plausible, before the free software movement
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
91 demonstrated that we can make plenty of useful software without putting
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
92 chains on it.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
93
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
94 If we decline to accept these assumptions, and judge these issues based
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
95 on ordinary common-sense morality while placing the users first, we
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
96 arrive at very different conclusions. Computer users should be free to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
97 modify programs to fit their needs, and free to share software, because
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
98 helping other people is the basis of society.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
99
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
100 There is no room here for an extensive statement of the reasoning
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
101 behind this conclusion, so I refer the reader to the web page,
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
102 http://www.gnu.org/philosophy/why-free.html.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 A stark moral choice.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
105
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
106 With my community gone, to continue as before was impossible. Instead,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
107 I faced a stark moral choice.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
108
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
109 The easy choice was to join the proprietary software world, signing
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
110 nondisclosure agreements and promising not to help my fellow hacker.
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
111 Most likely I would also be developing software that was released under
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
112 nondisclosure agreements, thus adding to the pressure on other people
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
113 to betray their fellows too.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
114
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
115 I could have made money this way, and perhaps amused myself writing
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
116 code. But I knew that at the end of my career, I would look back on
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117 years of building walls to divide people, and feel I had spent my life
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 making the world a worse place.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
120 I had already experienced being on the receiving end of a nondisclosure
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
121 agreement, when someone refused to give me and the MIT AI lab the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
122 source code for the control program for our printer. (The lack of
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
123 certain features in this program made use of the printer extremely
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
124 frustrating.) So I could not tell myself that nondisclosure agreements
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
125 were innocent. I was very angry when he refused to share with us; I
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
126 could not turn around and do the same thing to everyone else.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
127
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
128 Another choice, straightforward but unpleasant, was to leave the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
129 computer field. That way my skills would not be misused, but they would
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
130 still be wasted. I would not be culpable for dividing and restricting
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
131 computer users, but it would happen nonetheless.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
132
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
133 So I looked for a way that a programmer could do something for the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
134 good. I asked myself, was there a program or programs that I could
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
135 write, so as to make a community possible once again?
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
136
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
137 The answer was clear: what was needed first was an operating system.
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
138 That is the crucial software for starting to use a computer. With an
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139 operating system, you can do many things; without one, you cannot run
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
140 the computer at all. With a free operating system, we could again have
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
141 a community of cooperating hackers--and invite anyone to join. And
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
142 anyone would be able to use a computer without starting out by
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
143 conspiring to deprive his or her friends.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
144
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145 As an operating system developer, I had the right skills for this job.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
146 So even though I could not take success for granted, I realized that I
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
147 was elected to do the job. I chose to make the system compatible with
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
148 Unix so that it would be portable, and so that Unix users could easily
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
149 switch to it. The name GNU was chosen following a hacker tradition, as
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
150 a recursive acronym for "GNU's Not Unix."
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 An operating system does not mean just a kernel, barely enough to run
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
153 other programs. In the 1970s, every operating system worthy of the name
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
154 included command processors, assemblers, compilers, interpreters,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
155 debuggers, text editors, mailers, and much more. ITS had them, Multics
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
156 had them, VMS had them, and Unix had them. The GNU operating system
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
157 would include them too.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
158
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
159 Later I heard these words, attributed to Hillel (1):
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
160
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
161 If I am not for myself, who will be for me?
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
162 If I am only for myself, what am I?
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
163 If not now, when?
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
164
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
165 The decision to start the GNU project was based on a similar spirit.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
166
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
167 (1) As an Atheist, I don't follow any religious leaders, but I
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
168 sometimes find I admire something one of them has said.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
169
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
170 Free as in freedom
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
171
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
172 The term "free software" is sometimes misunderstood--it has nothing to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
173 do with price. It is about freedom. Here, therefore, is the definition
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
174 of free software: a program is free software, for you, a particular
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
175 user, if:
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
176 * You have the freedom to run the program, for any purpose.
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
177 * You have the freedom to modify the program to suit your needs. (To
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
178 make this freedom effective in practice, you must have access to
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
179 the source code, since making changes in a program without having
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
180 the source code is exceedingly difficult.)
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
181 * You have the freedom to redistribute copies, either gratis or for a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
182 fee.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
183 * You have the freedom to distribute modified versions of the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
184 program, so that the community can benefit from your improvements.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
185
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
186 Since "free" refers to freedom, not to price, there is no contradiction
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
187 between selling copies and free software. In fact, the freedom to sell
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
188 copies is crucial: collections of free software sold on CD-ROMs are
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
189 important for the community, and selling them is an important way to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
190 raise funds for free software development. Therefore, a program which
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
191 people are not free to include on these collections is not free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
192 software.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
193
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
194 Because of the ambiguity of "free", people have long looked for
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
195 alternatives, but no one has found a suitable alternative. The English
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
196 Language has more words and nuances than any other, but it lacks a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
197 simple, unambiguous, word that means "free", as in
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
198 freedom--"unfettered" being the word that comes closest in meaning.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
199 Such alternatives as "liberated", "freedom", and "open" have either the
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
200 wrong meaning or some other disadvantage.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
201
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
202 GNU software and the GNU system
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
203
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
204 Developing a whole system is a very large project. To bring it into
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
205 reach, I decided to adapt and use existing pieces of free software
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
206 wherever that was possible. For example, I decided at the very
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
207 beginning to use TeX as the principal text formatter; a few years
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
208 later, I decided to use the X Window System rather than writing another
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
209 window system for GNU.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
210
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
211 Because of this decision, the GNU system is not the same as the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
212 collection of all GNU software. The GNU system includes programs that
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
213 are not GNU software, programs that were developed by other people and
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
214 projects for their own purposes, but which we can use because they are
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
215 free software.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
216
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
217 Commencing the project
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
218
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
219 In January 1984 I quit my job at MIT and began writing GNU software.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
220 Leaving MIT was necessary so that MIT would not be able to interfere
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
221 with distributing GNU as free software. If I had remained on the staff,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
222 MIT could have claimed to own the work, and could have imposed their
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
223 own distribution terms, or even turned the work into a proprietary
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
224 software package. I had no intention of doing a large amount of work
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
225 only to see it become useless for its intended purpose: creating a new
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
226 software-sharing community.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
227
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
228 However, Professor Winston, then the head of the MIT AI Lab, kindly
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
229 invited me to keep using the lab's facilities.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
230
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
231 The first steps
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
232
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
233 Shortly before beginning the GNU project, I heard about the Free
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
234 University Compiler Kit, also known as VUCK. (The Dutch word for "free"
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
235 is written with a V.) This was a compiler designed to handle multiple
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
236 languages, including C and Pascal, and to support multiple target
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
237 machines. I wrote to its author asking if GNU could use it.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
238
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
239 He responded derisively, stating that the university was free but the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
240 compiler was not. I therefore decided that my first program for the GNU
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
241 project would be a multi-language, multi-platform compiler.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
242
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
243 Hoping to avoid the need to write the whole compiler myself, I obtained
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
244 the source code for the Pastel compiler, which was a multi-platform
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
245 compiler developed at Lawrence Livermore Lab. It supported, and was
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
246 written in, an extended version of Pascal, designed to be a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
247 system-programming language. I added a C front end, and began porting
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
248 it to the Motorola 68000 computer. But I had to give that up when I
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
249 discovered that the compiler needed many megabytes of stack space, and
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
250 the available 68000 Unix system would only allow 64k.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
251
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
252 I then realized that the Pastel compiler functioned by parsing the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
253 entire input file into a syntax tree, converting the whole syntax tree
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
254 into a chain of "instructions", and then generating the whole output
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
255 file, without ever freeing any storage. At this point, I concluded I
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
256 would have to write a new compiler from scratch. That new compiler is
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
257 now known as GCC; none of the Pastel compiler is used in it, but I
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
258 managed to adapt and use the C front end that I had written. But that
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
259 was some years later; first, I worked on GNU Emacs.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
260
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
261 GNU Emacs
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
262
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
263 I began work on GNU Emacs in September 1984, and in early 1985 it was
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
264 beginning to be usable. This enabled me to begin using Unix systems to
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
265 do editing; having no interest in learning to use vi or ed, I had done
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
266 my editing on other kinds of machines until then.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
267
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
268 At this point, people began wanting to use GNU Emacs, which raised the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
269 question of how to distribute it. Of course, I put it on the anonymous
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
270 ftp server on the MIT computer that I used. (This computer,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
271 prep.ai.mit.edu, thus became the principal GNU ftp distribution site;
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
272 when it was decommissioned a few years later, we transferred the name
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
273 to our new ftp server.) But at that time, many of the interested people
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
274 were not on the Internet and could not get a copy by ftp. So the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
275 question was, what would I say to them?
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
276
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
277 I could have said, "Find a friend who is on the net and who will make a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
278 copy for you." Or I could have done what I did with the original PDP-10
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
279 Emacs: tell them, "Mail me a tape and a SASE, and I will mail it back
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
280 with Emacs on it." But I had no job, and I was looking for ways to make
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
281 money from free software. So I announced that I would mail a tape to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
282 whoever wanted one, for a fee of $150. In this way, I started a free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
283 software distribution business, the precursor of the companies that
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
284 today distribute entire Linux-based GNU systems.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
285
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
286 Is a program free for every user?
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
287
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
288 If a program is free software when it leaves the hands of its author,
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
289 this does not necessarily mean it will be free software for everyone
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
290 who has a copy of it. For example, public domain software (software
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
291 that is not copyrighted) is free software; but anyone can make a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
292 proprietary modified version of it. Likewise, many free programs are
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
293 copyrighted but distributed under simple permissive licenses which
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
294 allow proprietary modified versions.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
295
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
296 The paradigmatic example of this problem is the X Window System.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
297 Developed at MIT, and released as free software with a permissive
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
298 license, it was soon adopted by various computer companies. They added
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
299 X to their proprietary Unix systems, in binary form only, and covered
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
300 by the same nondisclosure agreement. These copies of X were no more
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
301 free software than Unix was.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
302
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
303 The developers of the X Window System did not consider this a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
304 problem--they expected and intended this to happen. Their goal was not
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
305 freedom, just "success", defined as "having many users." They did not
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
306 care whether these users had freedom, only that they should be
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
307 numerous.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
308
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
309 This lead to a paradoxical situation where two different ways of
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
310 counting the amount of freedom gave different answers to the question,
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
311 "Is this program free?" If you judged based on the freedom provided by
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
312 the distribution terms of the MIT release, you would say that X was
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
313 free software. But if you measured the freedom of the average user of
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
314 X, you would have to say it was proprietary software. Most X users were
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
315 running the proprietary versions that came with Unix systems, not the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
316 free version.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
317
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
318 Copyleft and the GNU GPL
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
319
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
320 The goal of GNU was to give users freedom, not just to be popular. So
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
321 we needed to use distribution terms that would prevent GNU software
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
322 from being turned into proprietary software. The method we use is
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
323 called "copyleft".(1)
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
324
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
325 Copyleft uses copyright law, but flips it over to serve the opposite of
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
326 its usual purpose: instead of a means of privatizing software, it
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
327 becomes a means of keeping software free.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
328
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
329 The central idea of copyleft is that we give everyone permission to run
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
330 the program, copy the program, modify the program, and distribute
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
331 modified versions--but not permission to add restrictions of their own.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
332 Thus, the crucial freedoms that define "free software" are guaranteed
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
333 to everyone who has a copy; they become inalienable rights.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
334
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
335 For an effective copyleft, modified versions must also be free. This
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
336 ensures that work based on ours becomes available to our community if
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
337 it is published. When programmers who have jobs as programmers
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
338 volunteer to improve GNU software, it is copyleft that prevents their
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
339 employers from saying, "You can't share those changes, because we are
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
340 going to use them to make our proprietary version of the program."
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
341
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
342 The requirement that changes must be free is essential if we want to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
343 ensure freedom for every user of the program. The companies that
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
344 privatized the X Window System usually made some changes to port it to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
345 their systems and hardware. These changes were small compared with the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
346 great extent of X, but they were not trivial. If making changes were an
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
347 excuse to deny the users freedom, it would be easy for anyone to take
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
348 advantage of the excuse.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
349
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
350 A related issue concerns combining a free program with non-free code.
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
351 Such a combination would inevitably be non-free; whichever freedoms are
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
352 lacking for the non-free part would be lacking for the whole as well.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
353 To permit such combinations would open a hole big enough to sink a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
354 ship. Therefore, a crucial requirement for copyleft is to plug this
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
355 hole: anything added to or combined with a copylefted program must be
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
356 such that the larger combined version is also free and copylefted.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
357
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
358 The specific implementation of copyleft that we use for most GNU
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
359 software is the GNU General Public License, or GNU GPL for short. We
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
360 have other kinds of copyleft that are used in specific circumstances.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
361 GNU manuals are copylefted also, but use a much simpler kind of
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
362 copyleft, because the complexity of the GNU GPL is not necessary for
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
363 manuals.(2)
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
364
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
365 (1) In 1984 or 1985, Don Hopkins (a very imaginative fellow) mailed me
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
366 a letter. On the envelope he had written several amusing sayings,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
367 including this one: "Copyleft--all rights reversed." I used the word
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
368 "copyleft" to name the distribution concept I was developing at the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
369 time.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
370
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
371 (2) We now use the GNU Free Documentation License for documentation.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
372
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
373 The Free Software Foundation
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
374
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
375 As interest in using Emacs was growing, other people became involved in
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
376 the GNU project, and we decided that it was time to seek funding once
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
377 again. So in 1985 we created the Free Software Foundation, a tax-exempt
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
378 charity for free software development. The FSF also took over the Emacs
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
379 tape distribution business; later it extended this by adding other free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
380 software (both GNU and non-GNU) to the tape, and by selling free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
381 manuals as well.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
382
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
383 The FSF accepts donations, but most of its income has always come from
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
384 sales--of copies of free software, and of other related services. Today
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
385 it sells CD-ROMs of source code, CD-ROMs with binaries, nicely printed
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
386 manuals (all with freedom to redistribute and modify), and Deluxe
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
387 Distributions (where we build the whole collection of software for your
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
388 choice of platform).
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
389
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
390 Free Software Foundation employees have written and maintained a number
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
391 of GNU software packages. Two notable ones are the C library and the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
392 shell. The GNU C library is what every program running on a GNU/Linux
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
393 system uses to communicate with Linux. It was developed by a member of
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
394 the Free Software Foundation staff, Roland McGrath. The shell used on
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
395 most GNU/Linux systems is BASH, the Bourne Again Shell(1), which was
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
396 developed by FSF employee Brian Fox.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
397
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
398 We funded development of these programs because the GNU project was not
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
399 just about tools or a development environment. Our goal was a complete
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
400 operating system, and these programs were needed for that goal.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
401
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
402 (1) "Bourne again Shell" is a joke on the name ``Bourne Shell'', which
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
403 was the usual shell on Unix.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
405 Free software support
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
406
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
407 The free software philosophy rejects a specific widespread business
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
408 practice, but it is not against business. When businesses respect the
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
409 users' freedom, we wish them success.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
410
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
411 Selling copies of Emacs demonstrates one kind of free software
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
412 business. When the FSF took over that business, I needed another way to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
413 make a living. I found it in selling services relating to the free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
414 software I had developed. This included teaching, for subjects such as
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
415 how to program GNU Emacs and how to customize GCC, and software
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
416 development, mostly porting GCC to new platforms.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
417
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
418 Today each of these kinds of free software business is practiced by a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
419 number of corporations. Some distribute free software collections on
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
420 CD-ROM; others sell support at levels ranging from answering user
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
421 questions, to fixing bugs, to adding major new features. We are even
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
422 beginning to see free software companies based on launching new free
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
423 software products.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
424
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
425 Watch out, though--a number of companies that associate themselves with
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
426 the term "open source" actually base their business on non-free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
427 software that works with free software. These are not free software
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
428 companies, they are proprietary software companies whose products tempt
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
429 users away from freedom. They call these "value added", which reflects
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
430 the values they would like us to adopt: convenience above freedom. If
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
431 we value freedom more, we should call them "freedom subtracted"
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
432 products.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
433
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
434 Technical goals
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
435
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
436 The principal goal of GNU was to be free software. Even if GNU had no
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
437 technical advantage over Unix, it would have a social advantage,
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
438 allowing users to cooperate, and an ethical advantage, respecting the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
439 user's freedom.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
440
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
441 But it was natural to apply the known standards of good practice to the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
442 work--for example, dynamically allocating data structures to avoid
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
443 arbitrary fixed size limits, and handling all the possible 8-bit codes
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
444 wherever that made sense.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
445
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
446 In addition, we rejected the Unix focus on small memory size, by
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
447 deciding not to support 16-bit machines (it was clear that 32-bit
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
448 machines would be the norm by the time the GNU system was finished),
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
449 and to make no effort to reduce memory usage unless it exceeded a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
450 megabyte. In programs for which handling very large files was not
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
451 crucial, we encouraged programmers to read an entire input file into
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
452 core, then scan its contents without having to worry about I/O.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
453
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
454 These decisions enabled many GNU programs to surpass their Unix
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
455 counterparts in reliability and speed.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
456
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
457 Donated computers
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
458
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
459 As the GNU project's reputation grew, people began offering to donate
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
460 machines running UNIX to the project. These were very useful, because
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
461 the easiest way to develop components of GNU was to do it on a UNIX
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
462 system, and replace the components of that system one by one. But they
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
463 raised an ethical issue: whether it was right for us to have a copy of
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
464 UNIX at all.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
465
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
466 UNIX was (and is) proprietary software, and the GNU project's
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
467 philosophy said that we should not use proprietary software. But,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
468 applying the same reasoning that leads to the conclusion that violence
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
469 in self defense is justified, I concluded that it was legitimate to use
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
470 a proprietary package when that was crucial for developing a free
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
471 replacement that would help others stop using the proprietary package.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
472
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
473 But, even if this was a justifiable evil, it was still an evil. Today
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
474 we no longer have any copies of Unix, because we have replaced them
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
475 with free operating systems. If we could not replace a machine's
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
476 operating system with a free one, we replaced the machine instead.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
477
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
478 The GNU Task List
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
479
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
480 As the GNU project proceeded, and increasing numbers of system
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
481 components were found or developed, eventually it became useful to make
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
482 a list of the remaining gaps. We used it to recruit developers to write
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
483 the missing pieces. This list became known as the GNU task list. In
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
484 addition to missing Unix components, we listed added various other
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
485 useful software and documentation projects that, we thought, a truly
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
486 complete system ought to have.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
487
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
488 Today, hardly any Unix components are left in the GNU task list--those
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
489 jobs have been done, aside from a few inessential ones. But the list is
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
490 full of projects that some might call "applications". Any program that
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
491 appeals to more than a narrow class of users would be a useful thing to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
492 add to an operating system.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
493
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
494 Even games are included in the task list--and have been since the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
495 beginning. Unix included games, so naturally GNU should too. But
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
496 compatibility was not an issue for games, so we did not follow the list
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
497 of games that Unix had. Instead, we listed a spectrum of different
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
498 kinds of games that users might like.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
499
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
500 The GNU Library GPL
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
501
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
502 The GNU C library uses a special kind of copyleft called the GNU
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
503 Library General Public License(1), which gives permission to link
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
504 proprietary software with the library. Why make this exception?
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
505
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
506 It is not a matter of principle; there is no principle that says
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
507 proprietary software products are entitled to include our code. (Why
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
508 contribute to a project predicated on refusing to share with us?) Using
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
509 the LGPL for the C library, or for any library, is a matter of
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
510 strategy.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
511
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
512 The C library does a generic job; every proprietary system or compiler
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
513 comes with a C library. Therefore, to make our C library available only
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
514 to free software would not have given free software any advantage--it
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
515 would only have discouraged use of our library.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
516
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
517 One system is an exception to this: on the GNU system (and this
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
518 includes GNU/Linux), the GNU C library is the only C library. So the
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
519 distribution terms of the GNU C library determine whether it is
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
520 possible to compile a proprietary program for the GNU system. There is
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
521 no ethical reason to allow proprietary applications on the GNU system,
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
522 but strategically it seems that disallowing them would do more to
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
523 discourage use of the GNU system than to encourage development of free
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
524 applications.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
525
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
526 That is why using the Library GPL is a good strategy for the C library.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
527 For other libraries, the strategic decision needs to be considered on a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
528 case-by-case basis. When a library does a special job that can help
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
529 write certain kinds of programs, then releasing it under the GPL,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
530 limiting it to free programs only, is a way of helping other free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
531 software developers, giving them an advantage against proprietary
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
532 software.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
533
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
534 Consider GNU Readline, a library that was developed to provide
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
535 command-line editing for BASH. Readline is released under the ordinary
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
536 GNU GPL, not the Library GPL. This probably does reduce the amount
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
537 Readline is used, but that is no loss for us. Meanwhile, at least one
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
538 useful application has been made free software specifically so it could
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
539 use Readline, and that is a real gain for the community.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
540
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
541 Proprietary software developers have the advantages money provides;
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
542 free software developers need to make advantages for each other. I hope
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
543 some day we will have a large collection of GPL-covered libraries that
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
544 have no parallel available to proprietary software, providing useful
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
545 modules to serve as building blocks in new free software, and adding up
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
546 to a major advantage for further free software development.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
547
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
548 (1) This license is now called the GNU Lesser General Public License,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
549 to avoid giving the idea that all libraries ought to use it.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
550 See http://www.gnu.org/philosophy/why-not-lgpl.html.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
551
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
552 Scratching an itch?
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
553
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
554 Eric Raymond says that "Every good work of software starts by
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
555 scratching a developer's personal itch." Maybe that happens sometimes,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
556 but many essential pieces of GNU software were developed in order to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
557 have a complete free operating system. They come from a vision and a
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
558 plan, not from impulse.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
559
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
560 For example, we developed the GNU C library because a Unix-like system
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
561 needs a C library, the Bourne-Again Shell (bash) because a Unix-like
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
562 system needs a shell, and GNU tar because a Unix-like system needs a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
563 tar program. The same is true for my own programs--the GNU C compiler,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
564 GNU Emacs, GDB and GNU Make.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
565
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
566 Some GNU programs were developed to cope with specific threats to our
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
567 freedom. Thus, we developed gzip to replace the Compress program, which
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
568 had been lost to the community because of the LZW patents. We found
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
569 people to develop LessTif, and more recently started GNOME and Harmony,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
570 to address the problems caused by certain proprietary libraries (see
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
571 below). We are developing the GNU Privacy Guard to replace popular
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
572 non-free encryption software, because users should not have to choose
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
573 between privacy and freedom.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
574
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
575 Of course, the people writing these programs became interested in the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
576 work, and many features were added to them by various people for the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
577 sake of their own needs and interests. But that is not why the programs
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
578 exist.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
579
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
580 Unexpected developments
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
581
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
582 At the beginning of the GNU project, I imagined that we would develop
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
583 the whole GNU system, then release it as a whole. That is not how it
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
584 happened.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
585
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
586 Since each component of the GNU system was implemented on a Unix
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
587 system, each component could run on Unix systems, long before a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
588 complete GNU system existed. Some of these programs became popular, and
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
589 users began extending them and porting them---to the various
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
590 incompatible versions of Unix, and sometimes to other systems as well.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
591
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
592 The process made these programs much more powerful, and attracted both
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
593 funds and contributors to the GNU project. But it probably also delayed
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
594 completion of a minimal working system by several years, as GNU
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
595 developers' time was put into maintaining these ports and adding
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
596 features to the existing components, rather than moving on to write one
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
597 missing component after another.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
598
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
599 The GNU Hurd
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
600
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
601 By 1990, the GNU system was almost complete; the only major missing
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
602 component was the kernel. We had decided to implement our kernel as a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
603 collection of server processes running on top of Mach. Mach is a
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
604 microkernel developed at Carnegie Mellon University and then at the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
605 University of Utah; the GNU HURD is a collection of servers (or ``herd
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
606 of gnus'') that run on top of Mach, and do the various jobs of the Unix
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
607 kernel. The start of development was delayed as we waited for Mach to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
608 be released as free software, as had been promised.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
609
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
610 One reason for choosing this design was to avoid what seemed to be the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
611 hardest part of the job: debugging a kernel program without a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
612 source-level debugger to do it with. This part of the job had been done
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
613 already, in Mach, and we expected to debug the HURD servers as user
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
614 programs, with GDB. But it took a long time to make that possible, and
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
615 the multi-threaded servers that send messages to each other have turned
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
616 out to be very hard to debug. Making the HURD work solidly has
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
617 stretched on for many years.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
618
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
619 Alix
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
620
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
621 The GNU kernel was not originally supposed to be called the HURD. Its
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
622 original name was Alix--named after the woman who was my sweetheart at
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
623 the time. She, a Unix system administrator, had pointed out how her
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
624 name would fit a common naming pattern for Unix system versions; as a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
625 joke, she told her friends, "Someone should name a kernel after me." I
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
626 said nothing, but decided to surprise her with a kernel named Alix.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
627
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
628 It did not stay that way. Michael Bushnell (now Thomas), the main
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
629 developer of the kernel, preferred the name HURD, and redefined Alix to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
630 refer to a certain part of the kernel--the part that would trap system
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
631 calls and handle them by sending messages to HURD servers.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
632
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
633 Ultimately, Alix and I broke up, and she changed her name;
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
634 independently, the HURD design was changed so that the C library would
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
635 send messages directly to servers, and this made the Alix component
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
636 disappear from the design.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
637
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
638 But before these things happened, a friend of hers came across the name
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
639 Alix in the HURD source code, and mentioned the name to her. So the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
640 name did its job.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
641
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
642 Linux and GNU/Linux
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
643
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
644 The GNU Hurd is not ready for production use. Fortunately, another
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
645 kernel is available. In 1991, Linus Torvalds developed a
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
646 Unix-compatible kernel and called it Linux. Around 1992, combining
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
647 Linux with the not-quite-complete GNU system resulted in a complete
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
648 free operating system. (Combining them was a substantial job in itself,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
649 of course.) It is due to Linux that we can actually run a version of
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
650 the GNU system today.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
651
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
652 We call this system version GNU/Linux, to express its composition as a
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
653 combination of the GNU system with Linux as the kernel.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
654
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
655 Challenges in our future
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
656
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
657 We have proved our ability to develop a broad spectrum of free
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
658 software. This does not mean we are invincible and unstoppable. Several
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
659 challenges make the future of free software uncertain; meeting them
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
660 will require steadfast effort and endurance, sometimes lasting for
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
661 years. It will require the kind of determination that people display
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
662 when they value their freedom and will not let anyone take it away.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
663
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
664 The following four sections discuss these challenges.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
665
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
666 Secret hardware
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
667
43004
734ca0fe6d3e Fix typo.
Richard M. Stallman <rms@gnu.org>
parents: 36414
diff changeset
668 Hardware manufacturers increasingly tend to keep hardware
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
669 specifications secret. This makes it difficult to write free drivers so
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
670 that Linux and XFree86 can support new hardware. We have complete free
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
671 systems today, but we will not have them tomorrow if we cannot support
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
672 tomorrow's computers.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
673
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
674 There are two ways to cope with this problem. Programmers can do
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
675 reverse engineering to figure out how to support the hardware. The rest
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
676 of us can choose the hardware that is supported by free software; as
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
677 our numbers increase, secrecy of specifications will become a
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
678 self-defeating policy.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
679
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
680 Reverse engineering is a big job; will we have programmers with
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
681 sufficient determination to undertake it? Yes--if we have built up a
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
682 strong feeling that free software is a matter of principle, and
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
683 non-free drivers are intolerable. And will large numbers of us spend
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
684 extra money, or even a little extra time, so we can use free drivers?
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
685 Yes, if the determination to have freedom is widespread.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
686
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
687 Non-free libraries
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
688
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
689 A non-free library that runs on free operating systems acts as a trap
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
690 for free software developers. The library's attractive features are the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
691 bait; if you use the library, you fall into the trap, because your
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
692 program cannot usefully be part of a free operating system. (Strictly
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
693 speaking, we could include your program, but it won't run with the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
694 library missing.) Even worse, if a program that uses the proprietary
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
695 library becomes popular, it can lure other unsuspecting programmers
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
696 into the trap.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
697
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
698 The first instance of this problem was the Motif toolkit, back in the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
699 80s. Although there were as yet no free operating systems, it was clear
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
700 what problem Motif would cause for them later on. The GNU Project
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
701 responded in two ways: by asking individual free software projects to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
702 support the free X toolkit widgets as well as Motif, and by asking for
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
703 someone to write a free replacement for Motif. The job took many years;
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
704 LessTif, developed by the Hungry Programmers, became powerful enough to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
705 support most Motif applications only in 1997.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
706
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
707 Between 1996 and 1998, another non-free GUI toolkit library, called Qt,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
708 was used in a substantial collection of free software, the desktop KDE.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
709
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
710 Free GNU/Linux systems were unable to use KDE, because we could not use
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
711 the library. However, some commercial distributors of GNU/Linux systems
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
712 who were not strict about sticking with free software added KDE to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
713 their systems--producing a system with more capabilities, but less
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
714 freedom. The KDE group was actively encouraging more programmers to use
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
715 Qt, and millions of new "Linux users" had never been exposed to the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
716 idea that there was a problem in this. The situation appeared grim.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
717
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
718 The free software community responded to the problem in two ways: GNOME
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
719 and Harmony.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
720
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
721 GNOME, the GNU Network Object Model Environment, is GNU's desktop
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
722 project. Started in 1997 by Miguel de Icaza, and developed with the
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
723 support of Red Hat Software, GNOME set out to provide similar desktop
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
724 facilities, but using free software exclusively. It has technical
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
725 advantages as well, such as supporting a variety of languages, not just
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
726 C++. But its main purpose was freedom: not to require the use of any
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
727 non-free software.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
728
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
729 Harmony is a compatible replacement library, designed to make it
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
730 possible to run KDE software without using Qt.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
731
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
732 In November 1998, the developers of Qt announced a change of license
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
733 which, when carried out, should make Qt free software. There is no way
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
734 to be sure, but I think that this was partly due to the community's
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
735 firm response to the problem that Qt posed when it was non-free. (The
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
736 new license is inconvenient and inequitable, so it remains desirable to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
737 avoid using Qt.)
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
738
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
739 [Subsequent note: in September 2000, Qt was rereleased under the GNU
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
740 GPL, which essentially solved this problem.]
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
741
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
742 How will we respond to the next tempting non-free library? Will the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
743 whole community understand the need to stay out of the trap? Or will
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
744 many of us give up freedom for convenience, and produce a major
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
745 problem? Our future depends on our philosophy.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
746
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
747 Software patents
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
748
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
749 The worst threat we face comes from software patents, which can put
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
750 algorithms and features off limits to free software for up to twenty
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
751 years. The LZW compression algorithm patents were applied for in 1983,
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
752 and we still cannot release free software to produce proper compressed
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
753 GIFs. In 1998, a free program to produce MP3 compressed audio was
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
754 removed from distribution under threat of a patent suit.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
755
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
756 There are ways to cope with patents: we can search for evidence that a
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
757 patent is invalid, and we can look for alternative ways to do a job.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
758 But each of these methods works only sometimes; when both fail, a
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
759 patent may force all free software to lack some feature that users
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
760 want. What will we do when this happens?
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
761
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
762 Those of us who value free software for freedom's sake will stay with
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
763 free software anyway. We will manage to get work done without the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
764 patented features. But those who value free software because they
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
765 expect it to be techically superior are likely to call it a failure
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
766 when a patent holds it back. Thus, while it is useful to talk about the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
767 practical effectiveness of the "cathedral" model of development (1),
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
768 and the reliability and power of some free software, we must not stop
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
769 there. We must talk about freedom and principle.
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
770
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
771 (1) It would have been clearer to write `of the "bazaar" model', since
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
772 that was the alternative that was new and initially controversial.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
773
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
774 Free documentation
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
775
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
776 The biggest deficiency in our free operating systems is not in the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
777 software--it is the lack of good free manuals that we can include in
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
778 our systems. Documentation is an essential part of any software
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
779 package; when an important free software package does not come with a
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
780 good free manual, that is a major gap. We have many such gaps today.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
781
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
782 Free documentation, like free software, is a matter of freedom, not
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
783 price. The criterion for a free manual is pretty much the same as for
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
784 free software: it is a matter of giving all users certain freedoms.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
785 Redistribution (including commercial sale) must be permitted, on-line
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
786 and on paper, so that the manual can accompany every copy of the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
787 program.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
788
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
789 Permission for modification is crucial too. As a general rule, I don't
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
790 believe that it is essential for people to have permission to modify
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
791 all sorts of articles and books. For example, I don't think you or I
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
792 are obliged to give permission to modify articles like this one, which
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
793 describe our actions and our views.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
794
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
795 But there is a particular reason why the freedom to modify is crucial
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
796 for documentation for free software. When people exercise their right
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
797 to modify the software, and add or change its features, if they are
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
798 conscientious they will change the manual too--so they can provide
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
799 accurate and usable documentation with the modified program. A manual
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
800 which does not allow programmers to be conscientious and finish the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
801 job, does not fill our community's needs.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
802
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
803 Some kinds of limits on how modifications are done pose no problem. For
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
804 example, requirements to preserve the original author's copyright
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
805 notice, the distribution terms, or the list of authors, are ok. It is
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
806 also no problem to require modified versions to include notice that
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
807 they were modified, even to have entire sections that may not be
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
808 deleted or changed, as long as these sections deal with nontechnical
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
809 topics. These kinds of restrictions are not a problem because they
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
810 don't stop the conscientious programmer from adapting the manual to fit
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
811 the modified program. In other words, they don't block the free
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
812 software community from making full use of the manual.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
813
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
814 However, it must be possible to modify all the *technical* content of
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
815 the manual, and then distribute the result in all the usual media,
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
816 through all the usual channels; otherwise, the restrictions do obstruct
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
817 the community, the manual is not free, and we need another manual.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
818
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
819 Will free software developers have the awareness and determination to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
820 produce a full spectrum of free manuals? Once again, our future depends
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
821 on philosophy.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
822
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
823 We must talk about freedom
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
824
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
825 Estimates today are that there are ten million users of GNU/Linux
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
826 systems such as Debian GNU/Linux and Red Hat Linux. Free software has
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
827 developed such practical advantages that users are flocking to it for
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
828 purely practical reasons.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
829
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
830 The good consequences of this are evident: more interest in developing
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
831 free software, more customers for free software businesses, and more
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
832 ability to encourage companies to develop commercial free software
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
833 instead of proprietary software products.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
834
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
835 But interest in the software is growing faster than awareness of the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
836 philosophy it is based on, and this leads to trouble. Our ability to
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
837 meet the challenges and threats described above depends on the will to
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
838 stand firm for freedom. To make sure our community has this will, we
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
839 need to spread the idea to the new users as they come into the
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
840 community.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
841
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
842 But we are failing to do so: the efforts to attract new users into our
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
843 community are far outstripping the efforts to teach them the civics of
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
844 our community. We need to do both, and we need to keep the two efforts
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
845 in balance.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
846
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
847 "Open Source"
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
848
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
849 Teaching new users about freedom became more difficult in 1998, when a
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
850 part of the community decided to stop using the term "free software"
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
851 and say "open source software" instead.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
852
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
853 Some who favored this term aimed to avoid the confusion of "free" with
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
854 "gratis"--a valid goal. Others, however, aimed to set aside the spirit
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
855 of principle that had motivated the free software movement and the GNU
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
856 project, and to appeal instead to executives and business users, many
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
857 of whom hold an ideology that places profit above freedom, above
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
858 community, above principle. Thus, the rhetoric of "open source" focuses
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
859 on the potential to make high quality, powerful software, but shuns the
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
860 ideas of freedom, community, and principle.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
861
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
862 The "Linux" magazines are a clear example of this--they are filled with
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
863 advertisements for proprietary software that works with GNU/Linux. When
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
864 the next Motif or Qt appears, will these magazines warn programmers to
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
865 stay away from it, or will they run ads for it?
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
866
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
867 The support of business can contribute to the community in many ways;
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
868 all else being equal, it is useful. But winning their support by
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
869 speaking even less about freedom and principle can be disastrous; it
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
870 makes the previous imbalance between outreach and civics education even
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
871 worse.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
872
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
873 "Free software" and "open source" describe the same category of
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
874 software, more or less, but say different things about the software,
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
875 and about values. The GNU Project continues to use the term "free
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
876 software", to express the idea that freedom, not just technology, is
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
877 important.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
878
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
879 Try!
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
880
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
881 Yoda's philosophy ("There is no `try'") sounds neat, but it doesn't
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
882 work for me. I have done most of my work while anxious about whether I
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
883 could do the job, and unsure that it would be enough to achieve the
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
884 goal if I did. But I tried anyway, because there was no one but me
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
885 between the enemy and my city. Surprising myself, I have sometimes
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
886 succeeded.
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
887
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
888 Sometimes I failed; some of my cities have fallen. Then I found another
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
889 threatened city, and got ready for another battle. Over time, I've
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
890 learned to look for threats and put myself between them and my city,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
891 calling on other hackers to come and join me.
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
892
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
893 Nowadays, often I'm not the only one. It is a relief and a joy when I
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
894 see a regiment of hackers digging in to hold the line, and I realize,
72892
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
895 this city may survive--for now. But the dangers are greater each year,
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
896 and now Microsoft has explicitly targeted our community. We can't take
41ca3e86bd27 Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
parents: 43004
diff changeset
897 the future of freedom for granted. Don't take it for granted! If you
36404
5bac9d142978 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
898 want to keep your freedom, you must be prepared to defend it.
36414
575c9b78d09c Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 36404
diff changeset
899
575c9b78d09c Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 36404
diff changeset
900 Copyright (C) 1998 Richard Stallman
575c9b78d09c Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 36404
diff changeset
901
575c9b78d09c Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 36404
diff changeset
902 Verbatim copying and distribution of this entire article is permitted
575c9b78d09c Update copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 36404
diff changeset
903 in any medium, provided this notice is preserved.