comparison etc/THE-GNU-PROJECT @ 83542:2d56e13fd23d

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