36404
|
1 The GNU Project
|
|
2
|
|
3 by Richard Stallman
|
|
4
|
|
5 originally published in the book "Open Sources"
|
|
6
|
|
7 The first software-sharing community
|
|
8
|
|
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>
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>
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>
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>
diff
changeset
|
13 cooking. But we did it more than most.
|
36404
|
14
|
|
15 The AI Lab used a timesharing operating system called ITS (the
|
|
16 Incompatible Timesharing System) that the lab's staff hackers (1) had
|
|
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>
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>
diff
changeset
|
19 lab staff system hacker, my job was to improve this system.
|
36404
|
20
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
diff
changeset
|
26 change it, or cannibalize parts of it to make a new program.
|
36404
|
27
|
|
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>
diff
changeset
|
29 the part of the mass media. We hackers refuse to recognize that
|
36404
|
30 meaning, and continue using the word to mean, "Someone who loves to
|
|
31 program and enjoys being clever about it."
|
|
32
|
|
33 The collapse of the community
|
|
34
|
|
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>
diff
changeset
|
36 discontinued the PDP-10 series. Its architecture, elegant and powerful
|
36404
|
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>
diff
changeset
|
38 that were becoming feasible in the 80s. This meant that nearly all of
|
36404
|
39 the programs composing ITS were obsolete.
|
|
40
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
41 The AI lab hacker community had already collapsed, not long before. In
|
36404
|
42 1981, the spin-off company Symbolics had hired away nearly all of the
|
|
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>
diff
changeset
|
44 maintain itself. (The book Hackers, by Steve Levy, describes these
|
36404
|
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>
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>
diff
changeset
|
47 decided to use Digital's non-free timesharing system instead of ITS.
|
36404
|
48
|
|
49 The modern computers of the era, such as the VAX or the 68020, had
|
|
50 their own operating systems, but none of them were free software: you
|
|
51 had to sign a nondisclosure agreement even to get an executable copy.
|
|
52
|
|
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>
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>
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>
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>
diff
changeset
|
57 them."
|
36404
|
58
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
59 The idea that the proprietary-software social system--the system that
|
36404
|
60 says you are not allowed to share or change software--is antisocial,
|
|
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>
diff
changeset
|
62 to some readers. But what else could we say about a system based on
|
36404
|
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>
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>
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>
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>
diff
changeset
|
67 people that there is only one way to look at the issue.
|
36404
|
68
|
|
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>
diff
changeset
|
70 "stopping piracy", what they actually *say* is secondary. The real
|
36404
|
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>
diff
changeset
|
72 for granted; the public is supposed to accept them uncritically. So
|
36404
|
73 let's examine them.
|
|
74
|
|
75 One assumption is that software companies have an unquestionable
|
|
76 natural right to own software and thus have power over all its users.
|
|
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>
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>
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>
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>
diff
changeset
|
81 natural right to copy.
|
36404
|
82
|
|
83 Another unstated assumption is that the only important thing about
|
|
84 software is what jobs it allows you to do--that we computer users
|
|
85 should not care what kind of society we are allowed to have.
|
|
86
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
87 A third assumption is that we would have no usable software (or would
|
36404
|
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>
diff
changeset
|
89 offer a company power over the users of the program. This assumption
|
36404
|
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>
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>
diff
changeset
|
92 chains on it.
|
36404
|
93
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
diff
changeset
|
98 helping other people is the basis of society.
|
36404
|
99
|
|
100 There is no room here for an extensive statement of the reasoning
|
|
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>
diff
changeset
|
102 http://www.gnu.org/philosophy/why-free.html.
|
36404
|
103
|
|
104 A stark moral choice.
|
|
105
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
106 With my community gone, to continue as before was impossible. Instead,
|
36404
|
107 I faced a stark moral choice.
|
|
108
|
|
109 The easy choice was to join the proprietary software world, signing
|
|
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>
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>
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>
diff
changeset
|
113 to betray their fellows too.
|
36404
|
114
|
|
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>
diff
changeset
|
116 code. But I knew that at the end of my career, I would look back on
|
36404
|
117 years of building walls to divide people, and feel I had spent my life
|
|
118 making the world a worse place.
|
|
119
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
diff
changeset
|
126 could not turn around and do the same thing to everyone else.
|
36404
|
127
|
|
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>
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>
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>
diff
changeset
|
131 computer users, but it would happen nonetheless.
|
36404
|
132
|
|
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>
diff
changeset
|
134 good. I asked myself, was there a program or programs that I could
|
36404
|
135 write, so as to make a community possible once again?
|
|
136
|
|
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>
diff
changeset
|
138 That is the crucial software for starting to use a computer. With an
|
36404
|
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>
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>
diff
changeset
|
141 a community of cooperating hackers--and invite anyone to join. And
|
36404
|
142 anyone would be able to use a computer without starting out by
|
|
143 conspiring to deprive his or her friends.
|
|
144
|
|
145 As an operating system developer, I had the right skills for this job.
|
|
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>
diff
changeset
|
147 was elected to do the job. I chose to make the system compatible with
|
36404
|
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>
diff
changeset
|
149 switch to it. The name GNU was chosen following a hacker tradition, as
|
36404
|
150 a recursive acronym for "GNU's Not Unix."
|
|
151
|
|
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>
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>
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>
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>
diff
changeset
|
156 had them, VMS had them, and Unix had them. The GNU operating system
|
36404
|
157 would include them too.
|
|
158
|
|
159 Later I heard these words, attributed to Hillel (1):
|
|
160
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
diff
changeset
|
163 If not now, when?
|
36404
|
164
|
|
165 The decision to start the GNU project was based on a similar spirit.
|
|
166
|
|
167 (1) As an Atheist, I don't follow any religious leaders, but I
|
|
168 sometimes find I admire something one of them has said.
|
|
169
|
|
170 Free as in freedom
|
|
171
|
|
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>
diff
changeset
|
173 do with price. It is about freedom. Here, therefore, is the definition
|
36404
|
174 of free software: a program is free software, for you, a particular
|
|
175 user, if:
|
|
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>
diff
changeset
|
177 * You have the freedom to modify the program to suit your needs. (To
|
36404
|
178 make this freedom effective in practice, you must have access to
|
|
179 the source code, since making changes in a program without having
|
|
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>
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>
diff
changeset
|
182 fee.
|
36404
|
183 * You have the freedom to distribute modified versions of the
|
|
184 program, so that the community can benefit from your improvements.
|
|
185
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
diff
changeset
|
192 software.
|
36404
|
193
|
|
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>
diff
changeset
|
195 alternatives, but no one has found a suitable alternative. The English
|
36404
|
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>
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>
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>
diff
changeset
|
199 Such alternatives as "liberated", "freedom", and "open" have either the
|
36404
|
200 wrong meaning or some other disadvantage.
|
|
201
|
|
202 GNU software and the GNU system
|
|
203
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
204 Developing a whole system is a very large project. To bring it into
|
36404
|
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>
diff
changeset
|
206 wherever that was possible. For example, I decided at the very
|
36404
|
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>
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>
diff
changeset
|
209 window system for GNU.
|
36404
|
210
|
|
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>
diff
changeset
|
212 collection of all GNU software. The GNU system includes programs that
|
36404
|
213 are not GNU software, programs that were developed by other people and
|
|
214 projects for their own purposes, but which we can use because they are
|
|
215 free software.
|
|
216
|
|
217 Commencing the project
|
|
218
|
|
219 In January 1984 I quit my job at MIT and began writing GNU software.
|
|
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>
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>
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>
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>
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>
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>
diff
changeset
|
226 software-sharing community.
|
36404
|
227
|
|
228 However, Professor Winston, then the head of the MIT AI Lab, kindly
|
|
229 invited me to keep using the lab's facilities.
|
|
230
|
|
231 The first steps
|
|
232
|
|
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>
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>
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>
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>
diff
changeset
|
237 machines. I wrote to its author asking if GNU could use it.
|
36404
|
238
|
|
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>
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>
diff
changeset
|
241 project would be a multi-language, multi-platform compiler.
|
36404
|
242
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
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>
diff
changeset
|
250 the available 68000 Unix system would only allow 64k.
|
36404
|
251
|
|
252 I then realized that the Pastel compiler functioned by parsing the
|
|
253 entire input file into a syntax tree, converting the whole syntax tree
|
|
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>
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>
diff
changeset
|
256 would have to write a new compiler from scratch. That new compiler is
|
36404
|
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>
diff
changeset
|
258 managed to adapt and use the C front end that I had written. But that
|
36404
|
259 was some years later; first, I worked on GNU Emacs.
|
|
260
|
|
261 GNU Emacs
|
|
262
|
|
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>
diff
changeset
|
264 beginning to be usable. This enabled me to begin using Unix systems to
|
36404
|
265 do editing; having no interest in learning to use vi or ed, I had done
|
|
266 my editing on other kinds of machines until then.
|
|
267
|
|
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>
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>
diff
changeset
|
270 ftp server on the MIT computer that I used. (This computer,
|
36404
|
271 prep.ai.mit.edu, thus became the principal GNU ftp distribution site;
|
|
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>
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>
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>
diff
changeset
|
275 question was, what would I say to them?
|
36404
|
276
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
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>
diff
changeset
|
284 today distribute entire Linux-based GNU systems.
|
36404
|
285
|
|
286 Is a program free for every user?
|
|
287
|
|
288 If a program is free software when it leaves the hands of its author,
|
|
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>
diff
changeset
|
290 who has a copy of it. For example, public domain software (software
|
36404
|
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>
diff
changeset
|
292 proprietary modified version of it. Likewise, many free programs are
|
36404
|
293 copyrighted but distributed under simple permissive licenses which
|
|
294 allow proprietary modified versions.
|
|
295
|
|
296 The paradigmatic example of this problem is the X Window System.
|
|
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>
diff
changeset
|
298 license, it was soon adopted by various computer companies. They added
|
36404
|
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>
diff
changeset
|
300 by the same nondisclosure agreement. These copies of X were no more
|
36404
|
301 free software than Unix was.
|
|
302
|
|
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>
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>
diff
changeset
|
305 freedom, just "success", defined as "having many users." They did not
|
36404
|
306 care whether these users had freedom, only that they should be
|
|
307 numerous.
|
|
308
|
78861
|
309 This led to a paradoxical situation where two different ways of
|
36404
|
310 counting the amount of freedom gave different answers to the question,
|
|
311 "Is this program free?" If you judged based on the freedom provided by
|
|
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>
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>
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>
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>
diff
changeset
|
316 free version.
|
36404
|
317
|
|
318 Copyleft and the GNU GPL
|
|
319
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
320 The goal of GNU was to give users freedom, not just to be popular. So
|
36404
|
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>
diff
changeset
|
322 from being turned into proprietary software. The method we use is
|
36404
|
323 called "copyleft".(1)
|
|
324
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
diff
changeset
|
326 its usual purpose: instead of a means of privatizing software, it
|
36404
|
327 becomes a means of keeping software free.
|
|
328
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
diff
changeset
|
333 to everyone who has a copy; they become inalienable rights.
|
36404
|
334
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
335 For an effective copyleft, modified versions must also be free. This
|
36404
|
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>
diff
changeset
|
337 it is published. When programmers who have jobs as programmers
|
36404
|
338 volunteer to improve GNU software, it is copyleft that prevents their
|
|
339 employers from saying, "You can't share those changes, because we are
|
|
340 going to use them to make our proprietary version of the program."
|
|
341
|
|
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>
diff
changeset
|
343 ensure freedom for every user of the program. The companies that
|
36404
|
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>
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>
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>
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>
diff
changeset
|
348 advantage of the excuse.
|
36404
|
349
|
|
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>
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>
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>
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>
diff
changeset
|
354 ship. Therefore, a crucial requirement for copyleft is to plug this
|
36404
|
355 hole: anything added to or combined with a copylefted program must be
|
|
356 such that the larger combined version is also free and copylefted.
|
|
357
|
|
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>
diff
changeset
|
359 software is the GNU General Public License, or GNU GPL for short. We
|
36404
|
360 have other kinds of copyleft that are used in specific circumstances.
|
|
361 GNU manuals are copylefted also, but use a much simpler kind of
|
|
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>
diff
changeset
|
363 manuals.(2)
|
36404
|
364
|
|
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>
diff
changeset
|
366 a letter. On the envelope he had written several amusing sayings,
|
36404
|
367 including this one: "Copyleft--all rights reversed." I used the word
|
|
368 "copyleft" to name the distribution concept I was developing at the
|
|
369 time.
|
|
370
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
diff
changeset
|
372
|
36404
|
373 The Free Software Foundation
|
|
374
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
diff
changeset
|
381 manuals as well.
|
36404
|
382
|
|
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>
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>
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>
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>
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>
diff
changeset
|
388 choice of platform).
|
36404
|
389
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
diff
changeset
|
396 developed by FSF employee Brian Fox.
|
36404
|
397
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
diff
changeset
|
400 operating system, and these programs were needed for that goal.
|
36404
|
401
|
|
402 (1) "Bourne again Shell" is a joke on the name ``Bourne Shell'', which
|
|
403 was the usual shell on Unix.
|
|
404
|
|
405 Free software support
|
|
406
|
|
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>
diff
changeset
|
408 practice, but it is not against business. When businesses respect the
|
36404
|
409 users' freedom, we wish them success.
|
|
410
|
|
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>
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>
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>
diff
changeset
|
414 software I had developed. This included teaching, for subjects such as
|
36404
|
415 how to program GNU Emacs and how to customize GCC, and software
|
|
416 development, mostly porting GCC to new platforms.
|
|
417
|
|
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>
diff
changeset
|
419 number of corporations. Some distribute free software collections on
|
36404
|
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>
diff
changeset
|
421 questions, to fixing bugs, to adding major new features. We are even
|
36404
|
422 beginning to see free software companies based on launching new free
|
|
423 software products.
|
|
424
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
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>
diff
changeset
|
432 products.
|
36404
|
433
|
|
434 Technical goals
|
|
435
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
436 The principal goal of GNU was to be free software. Even if GNU had no
|
36404
|
437 technical advantage over Unix, it would have a social advantage,
|
|
438 allowing users to cooperate, and an ethical advantage, respecting the
|
|
439 user's freedom.
|
|
440
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
diff
changeset
|
442 work--for example, dynamically allocating data structures to avoid
|
36404
|
443 arbitrary fixed size limits, and handling all the possible 8-bit codes
|
|
444 wherever that made sense.
|
|
445
|
|
446 In addition, we rejected the Unix focus on small memory size, by
|
|
447 deciding not to support 16-bit machines (it was clear that 32-bit
|
|
448 machines would be the norm by the time the GNU system was finished),
|
|
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>
diff
changeset
|
450 megabyte. In programs for which handling very large files was not
|
36404
|
451 crucial, we encouraged programmers to read an entire input file into
|
|
452 core, then scan its contents without having to worry about I/O.
|
|
453
|
|
454 These decisions enabled many GNU programs to surpass their Unix
|
|
455 counterparts in reliability and speed.
|
|
456
|
|
457 Donated computers
|
|
458
|
|
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>
diff
changeset
|
460 machines running UNIX to the project. These were very useful, because
|
36404
|
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>
diff
changeset
|
462 system, and replace the components of that system one by one. But they
|
36404
|
463 raised an ethical issue: whether it was right for us to have a copy of
|
|
464 UNIX at all.
|
|
465
|
|
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>
diff
changeset
|
467 philosophy said that we should not use proprietary software. But,
|
36404
|
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>
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>
diff
changeset
|
470 a proprietary package when that was crucial for developing a free
|
36404
|
471 replacement that would help others stop using the proprietary package.
|
|
472
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
473 But, even if this was a justifiable evil, it was still an evil. Today
|
36404
|
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>
diff
changeset
|
475 with free operating systems. If we could not replace a machine's
|
36404
|
476 operating system with a free one, we replaced the machine instead.
|
|
477
|
|
478 The GNU Task List
|
|
479
|
|
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>
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>
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>
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>
diff
changeset
|
484 addition to missing Unix components, we listed added various other
|
36404
|
485 useful software and documentation projects that, we thought, a truly
|
|
486 complete system ought to have.
|
|
487
|
|
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>
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>
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>
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>
diff
changeset
|
492 add to an operating system.
|
36404
|
493
|
|
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>
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>
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>
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>
diff
changeset
|
498 kinds of games that users might like.
|
36404
|
499
|
|
500 The GNU Library GPL
|
|
501
|
|
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>
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>
diff
changeset
|
504 proprietary software with the library. Why make this exception?
|
36404
|
505
|
|
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>
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>
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>
diff
changeset
|
509 the LGPL for the C library, or for any library, is a matter of
|
36404
|
510 strategy.
|
|
511
|
|
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>
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>
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>
diff
changeset
|
515 would only have discouraged use of our library.
|
36404
|
516
|
|
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>
diff
changeset
|
518 includes GNU/Linux), the GNU C library is the only C library. So the
|
36404
|
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>
diff
changeset
|
520 possible to compile a proprietary program for the GNU system. There is
|
36404
|
521 no ethical reason to allow proprietary applications on the GNU system,
|
|
522 but strategically it seems that disallowing them would do more to
|
|
523 discourage use of the GNU system than to encourage development of free
|
|
524 applications.
|
|
525
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
diff
changeset
|
531 software developers, giving them an advantage against proprietary
|
36404
|
532 software.
|
|
533
|
|
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>
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>
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>
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>
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>
diff
changeset
|
539 use Readline, and that is a real gain for the community.
|
36404
|
540
|
|
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>
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>
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>
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>
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>
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>
diff
changeset
|
547
|
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
diff
changeset
|
550 See http://www.gnu.org/philosophy/why-not-lgpl.html.
|
36404
|
551
|
|
552 Scratching an itch?
|
|
553
|
|
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>
diff
changeset
|
555 scratching a developer's personal itch." Maybe that happens sometimes,
|
36404
|
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>
diff
changeset
|
557 have a complete free operating system. They come from a vision and a
|
36404
|
558 plan, not from impulse.
|
|
559
|
|
560 For example, we developed the GNU C library because a Unix-like system
|
|
561 needs a C library, the Bourne-Again Shell (bash) because a Unix-like
|
|
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>
diff
changeset
|
563 tar program. The same is true for my own programs--the GNU C compiler,
|
36404
|
564 GNU Emacs, GDB and GNU Make.
|
|
565
|
|
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>
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>
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>
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>
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>
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>
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>
diff
changeset
|
573 between privacy and freedom.
|
36404
|
574
|
|
575 Of course, the people writing these programs became interested in the
|
|
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>
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>
diff
changeset
|
578 exist.
|
36404
|
579
|
|
580 Unexpected developments
|
|
581
|
|
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>
diff
changeset
|
583 the whole GNU system, then release it as a whole. That is not how it
|
36404
|
584 happened.
|
|
585
|
|
586 Since each component of the GNU system was implemented on a Unix
|
|
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>
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>
diff
changeset
|
589 users began extending them and porting them---to the various
|
36404
|
590 incompatible versions of Unix, and sometimes to other systems as well.
|
|
591
|
|
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>
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>
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>
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>
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>
diff
changeset
|
597 missing component after another.
|
36404
|
598
|
|
599 The GNU Hurd
|
|
600
|
|
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>
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>
diff
changeset
|
603 collection of server processes running on top of Mach. Mach is a
|
36404
|
604 microkernel developed at Carnegie Mellon University and then at the
|
|
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>
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>
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>
diff
changeset
|
608 be released as free software, as had been promised.
|
36404
|
609
|
|
610 One reason for choosing this design was to avoid what seemed to be the
|
|
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>
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>
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>
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>
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>
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>
diff
changeset
|
617 stretched on for many years.
|
36404
|
618
|
|
619 Alix
|
|
620
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
621 The GNU kernel was not originally supposed to be called the HURD. Its
|
36404
|
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>
diff
changeset
|
623 the time. She, a Unix system administrator, had pointed out how her
|
36404
|
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>
diff
changeset
|
625 joke, she told her friends, "Someone should name a kernel after me." I
|
36404
|
626 said nothing, but decided to surprise her with a kernel named Alix.
|
|
627
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
diff
changeset
|
631 calls and handle them by sending messages to HURD servers.
|
36404
|
632
|
|
633 Ultimately, Alix and I broke up, and she changed her name;
|
|
634 independently, the HURD design was changed so that the C library would
|
|
635 send messages directly to servers, and this made the Alix component
|
|
636 disappear from the design.
|
|
637
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
diff
changeset
|
640 name did its job.
|
36404
|
641
|
|
642 Linux and GNU/Linux
|
|
643
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
diff
changeset
|
646 Unix-compatible kernel and called it Linux. Around 1992, combining
|
36404
|
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>
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>
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>
diff
changeset
|
650 the GNU system today.
|
36404
|
651
|
|
652 We call this system version GNU/Linux, to express its composition as a
|
|
653 combination of the GNU system with Linux as the kernel.
|
|
654
|
|
655 Challenges in our future
|
|
656
|
|
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>
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>
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>
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>
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>
diff
changeset
|
662 when they value their freedom and will not let anyone take it away.
|
36404
|
663
|
|
664 The following four sections discuss these challenges.
|
|
665
|
|
666 Secret hardware
|
|
667
|
43004
|
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>
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>
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>
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>
diff
changeset
|
672 tomorrow's computers.
|
36404
|
673
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
diff
changeset
|
677 our numbers increase, secrecy of specifications will become a
|
36404
|
678 self-defeating policy.
|
|
679
|
|
680 Reverse engineering is a big job; will we have programmers with
|
|
681 sufficient determination to undertake it? Yes--if we have built up a
|
|
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>
diff
changeset
|
683 non-free drivers are intolerable. And will large numbers of us spend
|
36404
|
684 extra money, or even a little extra time, so we can use free drivers?
|
|
685 Yes, if the determination to have freedom is widespread.
|
|
686
|
|
687 Non-free libraries
|
|
688
|
|
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>
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>
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>
diff
changeset
|
692 program cannot usefully be part of a free operating system. (Strictly
|
36404
|
693 speaking, we could include your program, but it won't run with the
|
|
694 library missing.) Even worse, if a program that uses the proprietary
|
|
695 library becomes popular, it can lure other unsuspecting programmers
|
|
696 into the trap.
|
|
697
|
|
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>
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>
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>
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>
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>
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>
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>
diff
changeset
|
705 support most Motif applications only in 1997.
|
36404
|
706
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
diff
changeset
|
708 was used in a substantial collection of free software, the desktop KDE.
|
36404
|
709
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
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>
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>
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>
diff
changeset
|
716 idea that there was a problem in this. The situation appeared grim.
|
36404
|
717
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
diff
changeset
|
719 and Harmony.
|
36404
|
720
|
|
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>
diff
changeset
|
722 project. Started in 1997 by Miguel de Icaza, and developed with the
|
36404
|
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>
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>
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>
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>
diff
changeset
|
727 non-free software.
|
36404
|
728
|
|
729 Harmony is a compatible replacement library, designed to make it
|
|
730 possible to run KDE software without using Qt.
|
|
731
|
|
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>
diff
changeset
|
733 which, when carried out, should make Qt free software. There is no way
|
36404
|
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>
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>
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>
diff
changeset
|
737 avoid using Qt.)
|
36404
|
738
|
|
739 [Subsequent note: in September 2000, Qt was rereleased under the GNU
|
|
740 GPL, which essentially solved this problem.]
|
|
741
|
|
742 How will we respond to the next tempting non-free library? Will the
|
|
743 whole community understand the need to stay out of the trap? Or will
|
|
744 many of us give up freedom for convenience, and produce a major
|
|
745 problem? Our future depends on our philosophy.
|
|
746
|
|
747 Software patents
|
|
748
|
|
749 The worst threat we face comes from software patents, which can put
|
|
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>
diff
changeset
|
751 years. The LZW compression algorithm patents were applied for in 1983,
|
36404
|
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>
diff
changeset
|
753 GIFs. In 1998, a free program to produce MP3 compressed audio was
|
36404
|
754 removed from distribution under threat of a patent suit.
|
|
755
|
|
756 There are ways to cope with patents: we can search for evidence that a
|
|
757 patent is invalid, and we can look for alternative ways to do a job.
|
|
758 But each of these methods works only sometimes; when both fail, a
|
|
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>
diff
changeset
|
760 want. What will we do when this happens?
|
36404
|
761
|
|
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>
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>
diff
changeset
|
764 patented features. But those who value free software because they
|
36404
|
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>
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>
diff
changeset
|
767 practical effectiveness of the "cathedral" model of development (1),
|
36404
|
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>
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>
diff
changeset
|
770
|
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
diff
changeset
|
772 that was the alternative that was new and initially controversial.
|
36404
|
773
|
|
774 Free documentation
|
|
775
|
|
776 The biggest deficiency in our free operating systems is not in the
|
|
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>
diff
changeset
|
778 our systems. Documentation is an essential part of any software
|
36404
|
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>
diff
changeset
|
780 good free manual, that is a major gap. We have many such gaps today.
|
36404
|
781
|
|
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>
diff
changeset
|
783 price. The criterion for a free manual is pretty much the same as for
|
36404
|
784 free software: it is a matter of giving all users certain freedoms.
|
|
785 Redistribution (including commercial sale) must be permitted, on-line
|
|
786 and on paper, so that the manual can accompany every copy of the
|
|
787 program.
|
|
788
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
789 Permission for modification is crucial too. As a general rule, I don't
|
36404
|
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>
diff
changeset
|
791 all sorts of articles and books. For example, I don't think you or I
|
36404
|
792 are obliged to give permission to modify articles like this one, which
|
|
793 describe our actions and our views.
|
|
794
|
|
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>
diff
changeset
|
796 for documentation for free software. When people exercise their right
|
36404
|
797 to modify the software, and add or change its features, if they are
|
|
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>
diff
changeset
|
799 accurate and usable documentation with the modified program. A manual
|
36404
|
800 which does not allow programmers to be conscientious and finish the
|
|
801 job, does not fill our community's needs.
|
|
802
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
diff
changeset
|
805 notice, the distribution terms, or the list of authors, are ok. It is
|
36404
|
806 also no problem to require modified versions to include notice that
|
|
807 they were modified, even to have entire sections that may not be
|
|
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>
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>
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>
diff
changeset
|
811 the modified program. In other words, they don't block the free
|
36404
|
812 software community from making full use of the manual.
|
|
813
|
|
814 However, it must be possible to modify all the *technical* content of
|
|
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>
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>
diff
changeset
|
817 the community, the manual is not free, and we need another manual.
|
36404
|
818
|
|
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>
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>
diff
changeset
|
821 on philosophy.
|
36404
|
822
|
|
823 We must talk about freedom
|
|
824
|
|
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>
diff
changeset
|
826 systems such as Debian GNU/Linux and Red Hat Linux. Free software has
|
36404
|
827 developed such practical advantages that users are flocking to it for
|
|
828 purely practical reasons.
|
|
829
|
|
830 The good consequences of this are evident: more interest in developing
|
|
831 free software, more customers for free software businesses, and more
|
|
832 ability to encourage companies to develop commercial free software
|
|
833 instead of proprietary software products.
|
|
834
|
|
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>
diff
changeset
|
836 philosophy it is based on, and this leads to trouble. Our ability to
|
36404
|
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>
diff
changeset
|
838 stand firm for freedom. To make sure our community has this will, we
|
36404
|
839 need to spread the idea to the new users as they come into the
|
|
840 community.
|
|
841
|
|
842 But we are failing to do so: the efforts to attract new users into our
|
|
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>
diff
changeset
|
844 our community. We need to do both, and we need to keep the two efforts
|
36404
|
845 in balance.
|
|
846
|
|
847 "Open Source"
|
|
848
|
|
849 Teaching new users about freedom became more difficult in 1998, when a
|
|
850 part of the community decided to stop using the term "free software"
|
|
851 and say "open source software" instead.
|
|
852
|
|
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>
diff
changeset
|
854 "gratis"--a valid goal. Others, however, aimed to set aside the spirit
|
36404
|
855 of principle that had motivated the free software movement and the GNU
|
|
856 project, and to appeal instead to executives and business users, many
|
|
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>
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>
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>
diff
changeset
|
860 ideas of freedom, community, and principle.
|
36404
|
861
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
diff
changeset
|
865 stay away from it, or will they run ads for it?
|
36404
|
866
|
|
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>
diff
changeset
|
868 all else being equal, it is useful. But winning their support by
|
36404
|
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>
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>
diff
changeset
|
871 worse.
|
36404
|
872
|
|
873 "Free software" and "open source" describe the same category of
|
|
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>
diff
changeset
|
875 and about values. The GNU Project continues to use the term "free
|
36404
|
876 software", to express the idea that freedom, not just technology, is
|
|
877 important.
|
|
878
|
|
879 Try!
|
|
880
|
|
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>
diff
changeset
|
882 work for me. I have done most of my work while anxious about whether I
|
36404
|
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>
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>
diff
changeset
|
885 between the enemy and my city. Surprising myself, I have sometimes
|
36404
|
886 succeeded.
|
|
887
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
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>
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>
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>
diff
changeset
|
891 calling on other hackers to come and join me.
|
36404
|
892
|
72892
41ca3e86bd27
Update with the latest footnotes from www.gnu.org/gnu/the-gnu-project.html
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
893 Nowadays, often I'm not the only one. It is a relief and a joy when I
|
36404
|
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>
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>
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>
diff
changeset
|
897 the future of freedom for granted. Don't take it for granted! If you
|
36404
|
898 want to keep your freedom, you must be prepared to defend it.
|
36414
|
899
|
|
900 Copyright (C) 1998 Richard Stallman
|
|
901
|
|
902 Verbatim copying and distribution of this entire article is permitted
|
|
903 in any medium, provided this notice is preserved.
|