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