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