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