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