Show
Ignore:
Timestamp:
09/18/06 20:48:14 (2 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/etc/THE-GNU-PROJECT

    r3554 r4166  
    88 
    99   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 
    11    many years.  Sharing of software was not limited to our particular 
    12    community; it is as old as computers, just as sharing of recipes is as 
    13    old as cooking. But we did it more than most. 
     10   I became part of a software-sharing community that had existed for many 
     11   years. Sharing of software was not limited to our particular community; 
     12   it is as old as computers, just as sharing of recipes is as old as 
     13   cooking. But we did it more than most. 
    1414 
    1515   The AI Lab used a timesharing operating system called ITS (the 
    1616   Incompatible Timesharing System) that the lab's staff hackers (1) had 
    1717   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 
    19    AI lab staff system hacker, my job was to improve this system. 
    20  
    21    We did not call our software "free software", because that term did 
    22    not 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 
    24    let them.  If you saw someone using an unfamiliar and interesting 
    25    program, you could always ask to see the source code, so that you 
    26    could read it, change it, or cannibalize parts of it to make a new 
    27    program. 
     18   of the large computers of the era. As a member of this community, an AI 
     19   lab staff system hacker, my job was to improve this system. 
     20 
     21   We did not call our software "free software", because that term did not 
     22   yet exist; but that is what it was. Whenever people from another 
     23   university or a company wanted to port and use a program, we gladly let 
     24   them. If you saw someone using an unfamiliar and interesting program, 
     25   you could always ask to see the source code, so that you could read it, 
     26   change it, or cannibalize parts of it to make a new program. 
    2827 
    2928   (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 
    3130   meaning, and continue using the word to mean, "Someone who loves to 
    3231   program and enjoys being clever about it." 
     
    3534 
    3635   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 
    3837   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 
    4039   the programs composing ITS were obsolete. 
    4140 
    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 
    4342   1981, the spin-off company Symbolics had hired away nearly all of the 
    4443   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 
    4645   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 
    48    administrators decided to use Digital's non-free timesharing system 
    49    instead of ITS. 
     46   prime.) When the AI lab bought a new PDP-10 in 1982, its administrators 
     47   decided to use Digital's non-free timesharing system instead of ITS. 
    5048 
    5149   The modern computers of the era, such as the VAX or the 68020, had 
     
    5452 
    5553   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 
    57    made by the owners of proprietary software was, "If you share with 
    58    your neighbor, you are a pirate.  If you want any changes, beg us to 
    59    make them." 
    60  
    61    The idea that the proprietary software social system--the system that 
     54   to help your neighbor. A cooperating community was forbidden. The rule 
     55   made by the owners of proprietary software was, "If you share with your 
     56   neighbor, you are a pirate. If you want any changes, beg us to make 
     57   them." 
     58 
     59   The idea that the proprietary-software social system--the system that 
    6260   says you are not allowed to share or change software--is antisocial, 
    6361   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 
    6563   dividing the public and keeping users helpless? Readers who find the 
    66    idea surprising may have taken proprietary social system as given, or 
    67    judged it on the terms suggested by proprietary software businesses. 
    68    Software publishers have worked long and hard to convince people that 
    69    there is only one way to look at the issue. 
     64   idea surprising may have taken proprietary-software social system as 
     65   given, or judged it on the terms suggested by proprietary software 
     66   businesses. Software publishers have worked long and hard to convince 
     67   people that there is only one way to look at the issue. 
    7068 
    7169   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 
    7371   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 
    7573   let's examine them. 
    7674 
     
    7876   natural right to own software and thus have power over all its users. 
    7977   (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 
    81    and legal tradition reject this view; copyright is not a natural 
    82    right, but an artificial government-imposed monopoly that limits the 
    83    users' natural right to copy. 
     78   the public, we could not object.) Interestingly, the US Constitution 
     79   and legal tradition reject this view; copyright is not a natural right, 
     80   but an artificial government-imposed monopoly that limits the users' 
     81   natural right to copy. 
    8482 
    8583   Another unstated assumption is that the only important thing about 
     
    8785   should not care what kind of society we are allowed to have. 
    8886 
    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 
    9088   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 
    9290   may have seemed plausible, before the free software movement 
    93    demonstrated that we can make plenty of useful software without 
    94    putting chains on it. 
    95  
    96    If we decline to accept these assumptions, and judge these issues 
    97    based on ordinary common-sense morality while placing the users first, 
    98    we arrive at very different conclusions.  Computer users should be free 
    99    to modify programs to fit their needs, and free to share software, 
    100    because helping other people is the basis of society. 
     91   demonstrated that we can make plenty of useful software without putting 
     92   chains on it. 
     93 
     94   If we decline to accept these assumptions, and judge these issues based 
     95   on ordinary common-sense morality while placing the users first, we 
     96   arrive at very different conclusions. Computer users should be free to 
     97   modify programs to fit their needs, and free to share software, because 
     98   helping other people is the basis of society. 
    10199 
    102100   There is no room here for an extensive statement of the reasoning 
    103101   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
    105103 
    106104  A stark moral choice. 
    107105 
    108    With my community gone, to continue as before was impossible. Instead, 
     106   With my community gone, to continue as before was impossible. Instead, 
    109107   I faced a stark moral choice. 
    110108 
    111109   The easy choice was to join the proprietary software world, signing 
    112110   nondisclosure agreements and promising not to help my fellow hacker. 
    113    Most likely I would also be developing software that was released 
    114    under nondisclosure agreements, thus adding to the pressure on other 
    115    people to betray their fellows too. 
     111   Most likely I would also be developing software that was released under 
     112   nondisclosure agreements, thus adding to the pressure on other people 
     113   to betray their fellows too. 
    116114 
    117115   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 
    119117   years of building walls to divide people, and feel I had spent my life 
    120118   making the world a worse place. 
    121119 
    122    I had already experienced being on the receiving end of a 
    123    nondisclosure agreement, when someone refused to give me and the MIT 
    124    AI lab the source code for the control program for our printer.  (The 
    125    lack of certain features in this program made use of the printer 
    126    extremely frustrating.)  So I could not tell myself that nondisclosure 
    127    agreements were innocent.  I was very angry when he refused to share 
    128    with us; I could not turn around and do the same thing to everyone 
    129    else. 
     120   I had already experienced being on the receiving end of a nondisclosure 
     121   agreement, when someone refused to give me and the MIT AI lab the 
     122   source code for the control program for our printer. (The lack of 
     123   certain features in this program made use of the printer extremely 
     124   frustrating.) So I could not tell myself that nondisclosure agreements 
     125   were innocent. I was very angry when he refused to share with us; I 
     126   could not turn around and do the same thing to everyone else. 
    130127 
    131128   Another choice, straightforward but unpleasant, was to leave the 
    132    computer field. That way my skills would not be misused, but they 
    133    would still be wasted.  I would not be culpable for dividing and 
    134    restricting computer users, but it would happen nonetheless. 
     129   computer field. That way my skills would not be misused, but they would 
     130   still be wasted. I would not be culpable for dividing and restricting 
     131   computer users, but it would happen nonetheless. 
    135132 
    136133   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 
    138135   write, so as to make a community possible once again? 
    139136 
    140137   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 
    142139   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 
    144    a community of cooperating hackers--and invite anyone to join. And 
     140   the computer at all. With a free operating system, we could again have 
     141   a community of cooperating hackers--and invite anyone to join. And 
    145142   anyone would be able to use a computer without starting out by 
    146143   conspiring to deprive his or her friends. 
     
    148145   As an operating system developer, I had the right skills for this job. 
    149146   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 
    151148   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 
    153150   a recursive acronym for "GNU's Not Unix." 
    154151 
    155152   An operating system does not mean just a kernel, barely enough to run 
    156    other programs. In the 1970s, every operating system worthy of th
    157    name included command processors, assemblers, compilers, interpreters, 
    158    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 
     153   other programs. In the 1970s, every operating system worthy of the nam
     154   included command processors, assemblers, compilers, interpreters, 
     155   debuggers, text editors, mailers, and much more. ITS had them, Multics 
     156   had them, VMS had them, and Unix had them. The GNU operating system 
    160157   would include them too. 
    161158 
    162159   Later I heard these words, attributed to Hillel (1): 
    163160 
    164    If I am not for myself, who will be for me? 
    165    If I am only for myself, what am I? 
    166    If not now, when? 
     161     If I am not for myself, who will be for me? 
     162     If I am only for myself, what am I? 
     163     If not now, when? 
    167164 
    168165   The decision to start the GNU project was based on a similar spirit. 
     
    174171 
    175172   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 
    177174   of free software: a program is free software, for you, a particular 
    178175   user, if: 
    179  
    180176     * 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 
    182178       make this freedom effective in practice, you must have access to 
    183179       the source code, since making changes in a program without having 
    184180       the source code is exceedingly difficult.) 
    185      * You have the freedom to redistribute copies, either gratis or for 
    186        a fee. 
     181     * You have the freedom to redistribute copies, either gratis or for a 
     182       fee. 
    187183     * You have the freedom to distribute modified versions of the 
    188184       program, so that the community can benefit from your improvements. 
    189185 
    190    Since "free" refers to freedom, not to price, there is no 
    191    contradiction between selling copies and free software.  In fact, the 
    192    freedom to sell copies is crucial: collections of free software sold 
    193    on CD-ROMs are important for the community, and selling them is an 
    194    important way to raise funds for free software development.  Therefore, 
    195    a program which people are not free to include on these collections is 
    196    not free software. 
     186   Since "free" refers to freedom, not to price, there is no contradiction 
     187   between selling copies and free software. In fact, the freedom to sell 
     188   copies is crucial: collections of free software sold on CD-ROMs are 
     189   important for the community, and selling them is an important way to 
     190   raise funds for free software development. Therefore, a program which 
     191   people are not free to include on these collections is not free 
     192   software. 
    197193 
    198194   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 
    200196   Language has more words and nuances than any other, but it lacks a 
    201    simple, unambiguous, word that means "free," as in 
    202    freedom--"unfettered," being the word that comes closest in meaning. 
    203    Such alternatives as "liberated", "freedom" and "open" have either the 
     197   simple, unambiguous, word that means "free", as in 
     198   freedom--"unfettered" being the word that comes closest in meaning. 
     199   Such alternatives as "liberated", "freedom", and "open" have either the 
    204200   wrong meaning or some other disadvantage. 
    205201 
    206202  GNU software and the GNU system 
    207203 
    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 
    209205   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 
    211207   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 
    213    another window system for GNU. 
     208   later, I decided to use the X Window System rather than writing another 
     209   window system for GNU. 
    214210 
    215211   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 
    217213   are not GNU software, programs that were developed by other people and 
    218214   projects for their own purposes, but which we can use because they are 
     
    223219   In January 1984 I quit my job at MIT and began writing GNU software. 
    224220   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 
    226    staff, MIT could have claimed to own the work, and could have imposed 
    227    their own distribution terms, or even turned the work into a 
    228    proprietary software package.  I had no intention of doing a large 
    229    amount of work only to see it become useless for its intended purpose: 
    230    creating a new software-sharing community. 
     221   with distributing GNU as free software. If I had remained on the staff, 
     222   MIT could have claimed to own the work, and could have imposed their 
     223   own distribution terms, or even turned the work into a proprietary 
     224   software package. I had no intention of doing a large amount of work 
     225   only to see it become useless for its intended purpose: creating a new 
     226   software-sharing community. 
    231227 
    232228   However, Professor Winston, then the head of the MIT AI Lab, kindly 
     
    236232 
    237233   Shortly before beginning the GNU project, I heard about the Free 
    238    University Compiler Kit, also known as VUCK. (The Dutch word for 
    239    "free" is written with a V.)  This was a compiler designed to handle 
    240    multiple languages, including C and Pascal, and to support multiple 
    241    target machines. I wrote to its author asking if GNU could use it. 
     234   University Compiler Kit, also known as VUCK. (The Dutch word for "free" 
     235   is written with a V.) This was a compiler designed to handle multiple 
     236   languages, including C and Pascal, and to support multiple target 
     237   machines. I wrote to its author asking if GNU could use it. 
    242238 
    243239   He responded derisively, stating that the university was free but the 
    244    compiler was not. I therefore decided that my first program for the 
    245    GNU project would be a multi-language, multi-platform compiler. 
    246  
    247    Hoping to avoid the need to write the whole compiler myself, I 
    248    obtained the source code for the Pastel compiler, which was a 
    249    multi-platform compiler developed at Lawrence Livermore Lab.  It 
    250    supported, and was written in, an extended version of Pascal, designed 
    251    to be a system-programming language.  I added a C front end, and began 
    252    porting it to the Motorola 68000 computer.  But I had to give that up 
    253    when I discovered that the compiler needed many megabytes of stack 
    254    space, and the available 68000 Unix system would only allow 64k. 
     240   compiler was not. I therefore decided that my first program for the GNU 
     241   project would be a multi-language, multi-platform compiler. 
     242 
     243   Hoping to avoid the need to write the whole compiler myself, I obtained 
     244   the source code for the Pastel compiler, which was a multi-platform 
     245   compiler developed at Lawrence Livermore Lab. It supported, and was 
     246   written in, an extended version of Pascal, designed to be a 
     247   system-programming language. I added a C front end, and began porting 
     248   it to the Motorola 68000 computer. But I had to give that up when I 
     249   discovered that the compiler needed many megabytes of stack space, and 
     250   the available 68000 Unix system would only allow 64k. 
    255251 
    256252   I then realized that the Pastel compiler functioned by parsing the 
    257253   entire input file into a syntax tree, converting the whole syntax tree 
    258254   into a chain of "instructions", and then generating the whole output 
    259    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 
     255   file, without ever freeing any storage. At this point, I concluded I 
     256   would have to write a new compiler from scratch. That new compiler is 
    261257   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 
    263259   was some years later; first, I worked on GNU Emacs. 
    264260 
     
    266262 
    267263   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 
    269265   do editing; having no interest in learning to use vi or ed, I had done 
    270266   my editing on other kinds of machines until then. 
    271267 
    272268   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 
    274    ftp server on the MIT computer that I used. (This computer, 
     269   question of how to distribute it. Of course, I put it on the anonymous 
     270   ftp server on the MIT computer that I used. (This computer, 
    275271   prep.ai.mit.edu, thus became the principal GNU ftp distribution site; 
    276272   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 
    278    people were not on the Internet and could not get a copy by ftp.  So 
    279    the question was, what would I say to them? 
    280  
    281    I could have said, "Find a friend who is on the net and who will make 
    282    a copy for you."  Or I could have done what I did with the original 
    283    PDP-10 Emacs: tell them, "Mail me a tape and a SASE, and I will mail 
    284    it back with Emacs on it."  But I had no job, and I was looking for 
    285    ways to make money from free software.  So I announced that I would 
    286    mail a tape to whoever wanted one, for a fee of $150.  In this way, I 
    287    started a free software distribution business, the precursor of the 
    288    companies that today distribute entire Linux-based GNU systems. 
     273   to our new ftp server.) But at that time, many of the interested people 
     274   were not on the Internet and could not get a copy by ftp. So the 
     275   question was, what would I say to them? 
     276 
     277   I could have said, "Find a friend who is on the net and who will make a 
     278   copy for you." Or I could have done what I did with the original PDP-10 
     279   Emacs: tell them, "Mail me a tape and a SASE, and I will mail it back 
     280   with Emacs on it." But I had no job, and I was looking for ways to make 
     281   money from free software. So I announced that I would mail a tape to 
     282   whoever wanted one, for a fee of $150. In this way, I started a free 
     283   software distribution business, the precursor of the companies that 
     284   today distribute entire Linux-based GNU systems. 
    289285 
    290286  Is a program free for every user? 
     
    292288   If a program is free software when it leaves the hands of its author, 
    293289   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 
    295291   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 
    297293   copyrighted but distributed under simple permissive licenses which 
    298294   allow proprietary modified versions. 
     
    300296   The paradigmatic example of this problem is the X Window System. 
    301297   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 
    303299   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 
    305301   free software than Unix was. 
    306302 
    307303   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 
    309    freedom, just "success", defined as "having many users." They did not 
     304   problem--they expected and intended this to happen. Their goal was not 
     305   freedom, just "success", defined as "having many users." They did not 
    310306   care whether these users had freedom, only that they should be 
    311307   numerous. 
     
    315311   "Is this program free?" If you judged based on the freedom provided by 
    316312   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 
    318    X, you would have to say it was proprietary software. Most X users 
    319    were running the proprietary versions that came with Unix systems, not 
    320    the free version. 
     313   free software. But if you measured the freedom of the average user of 
     314   X, you would have to say it was proprietary software. Most X users were 
     315   running the proprietary versions that came with Unix systems, not the 
     316   free version. 
    321317 
    322318  Copyleft and the GNU GPL 
    323319 
    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 
    325321   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 
    327323   called "copyleft".(1) 
    328324 
    329    Copyleft uses copyright law, but flips it over to serve the opposite 
    330    of its usual purpose: instead of a means of privatizing software, it 
     325   Copyleft uses copyright law, but flips it over to serve the opposite of 
     326   its usual purpose: instead of a means of privatizing software, it 
    331327   becomes a means of keeping software free. 
    332328 
    333    The central idea of copyleft is that we give everyone permission to 
    334    run the program, copy the program, modify the program, and distribute 
    335    modified versions--but not permission to add restrictions of their 
    336    own.  Thus, the crucial freedoms that define "free software" are 
    337    guaranteed to everyone who has a copy; they become inalienable rights. 
    338  
    339    For an effective copyleft, modified versions must also be free. This 
     329   The central idea of copyleft is that we give everyone permission to run 
     330   the program, copy the program, modify the program, and distribute 
     331   modified versions--but not permission to add restrictions of their own. 
     332   Thus, the crucial freedoms that define "free software" are guaranteed 
     333   to everyone who has a copy; they become inalienable rights. 
     334 
     335   For an effective copyleft, modified versions must also be free. This 
    340336   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 
    342338   volunteer to improve GNU software, it is copyleft that prevents their 
    343339   employers from saying, "You can't share those changes, because we are 
     
    345341 
    346342   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 
    348344   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 
    350    great extent of X, but they were not trivial. If making changes were 
    351    an excuse to deny the users freedom, it would be easy for anyone to 
    352    take advantage of the excuse. 
     345   their systems and hardware. These changes were small compared with the 
     346   great extent of X, but they were not trivial. If making changes were an 
     347   excuse to deny the users freedom, it would be easy for anyone to take 
     348   advantage of the excuse. 
    353349 
    354350   A related issue concerns combining a free program with non-free code. 
    355    Such a combination would inevitably be non-free; whichever freedoms 
    356    are lacking for the non-free part would be lacking for the whole as 
    357    well.  To permit such combinations would open a hole big enough to sink 
    358    a ship. Therefore, a crucial requirement for copyleft is to plug this 
     351   Such a combination would inevitably be non-free; whichever freedoms are 
     352   lacking for the non-free part would be lacking for the whole as well. 
     353   To permit such combinations would open a hole big enough to sink a 
     354   ship. Therefore, a crucial requirement for copyleft is to plug this 
    359355   hole: anything added to or combined with a copylefted program must be 
    360356   such that the larger combined version is also free and copylefted. 
    361357 
    362358   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 
    364360   have other kinds of copyleft that are used in specific circumstances. 
    365361   GNU manuals are copylefted also, but use a much simpler kind of 
    366362   copyleft, because the complexity of the GNU GPL is not necessary for 
    367    manuals. 
     363   manuals.(2) 
    368364 
    369365   (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, 
    371367   including this one: "Copyleft--all rights reversed." I used the word 
    372368   "copyleft" to name the distribution concept I was developing at the 
    373369   time. 
    374370 
     371   (2) We now use the GNU Free Documentation License for documentation. 
     372 
    375373  The Free Software Foundation 
    376374 
    377    As interest in using Emacs was growing, other people became involved 
    378    in the GNU project, and we decided that it was time to seek funding 
    379    once again.  So in 1985 we created the Free Software Foundation, a 
    380    tax-exempt charity for free software development.  The FSF also took 
    381    over the Emacs tape distribution business; later it extended this by 
    382    adding other free software (both GNU and non-GNU) to the tape, and by 
    383    selling free manuals as well. 
     375   As interest in using Emacs was growing, other people became involved in 
     376   the GNU project, and we decided that it was time to seek funding once 
     377   again. So in 1985 we created the Free Software Foundation, a tax-exempt 
     378   charity for free software development. The FSF also took over the Emacs 
     379   tape distribution business; later it extended this by adding other free 
     380   software (both GNU and non-GNU) to the tape, and by selling free 
     381   manuals as well. 
    384382 
    385383   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. 
    387    Today it sells CD-ROMs of source code, CD-ROMs with binaries, nicely 
    388    printed manuals (all with freedom to redistribute and modify), and 
    389    Deluxe Distributions (where we build the whole collection of software 
    390    for your choice of platform). 
    391  
    392    Free Software Foundation employees have written and maintained a 
    393    number of GNU software packages.  Two notable ones are the C library 
    394    and the shell.  The GNU C library is what every program running on a 
    395    GNU/Linux system uses to communicate with Linux.  It was developed by a 
    396    member of the Free Software Foundation staff, Roland McGrath.  The 
    397    shell used on most GNU/Linux systems is BASH, the Bourne Again 
    398    Shell(1), which was developed by FSF employee Brian Fox. 
    399  
    400    We funded development of these programs because the GNU project was 
    401    not just about tools or a development environment.  Our goal was a 
    402    complete operating system, and these programs were needed for that 
    403    goal. 
     384   sales--of copies of free software, and of other related services. Today 
     385   it sells CD-ROMs of source code, CD-ROMs with binaries, nicely printed 
     386   manuals (all with freedom to redistribute and modify), and Deluxe 
     387   Distributions (where we build the whole collection of software for your 
     388   choice of platform). 
     389 
     390   Free Software Foundation employees have written and maintained a number 
     391   of GNU software packages. Two notable ones are the C library and the 
     392   shell. The GNU C library is what every program running on a GNU/Linux 
     393   system uses to communicate with Linux. It was developed by a member of 
     394   the Free Software Foundation staff, Roland McGrath. The shell used on 
     395   most GNU/Linux systems is BASH, the Bourne Again Shell(1), which was 
     396   developed by FSF employee Brian Fox. 
     397 
     398   We funded development of these programs because the GNU project was not 
     399   just about tools or a development environment. Our goal was a complete 
     400   operating system, and these programs were needed for that goal. 
    404401 
    405402   (1) "Bourne again Shell" is a joke on the name ``Bourne Shell'', which 
     
    409406 
    410407   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 
    412409   users' freedom, we wish them success. 
    413410 
    414411   Selling copies of Emacs demonstrates one kind of free software 
    415    business. When the FSF took over that business, I needed another way 
    416    to 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 
     412   business. When the FSF took over that business, I needed another way to 
     413   make a living. I found it in selling services relating to the free 
     414   software I had developed. This included teaching, for subjects such as 
    418415   how to program GNU Emacs and how to customize GCC, and software 
    419416   development, mostly porting GCC to new platforms. 
    420417 
    421418   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 
    423420   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 
    425422   beginning to see free software companies based on launching new free 
    426423   software products. 
    427424 
    428    Watch out, though--a number of companies that associate themselves 
    429    with the term "open source" actually base their business on non-free 
    430    software that works with free software. These are not free software 
    431    companies, they are proprietary software companies whose products 
    432    tempt users away from freedom.  They call these "value added", which 
    433    reflects the values they would like us to adopt: convenience above 
    434    freedom.  If we value freedom more, we should call them "freedom 
    435    subtracted" products. 
     425   Watch out, though--a number of companies that associate themselves with 
     426   the term "open source" actually base their business on non-free 
     427   software that works with free software. These are not free software 
     428   companies, they are proprietary software companies whose products tempt 
     429   users away from freedom. They call these "value added", which reflects 
     430   the values they would like us to adopt: convenience above freedom. If 
     431   we value freedom more, we should call them "freedom subtracted" 
     432   products. 
    436433 
    437434  Technical goals 
    438435 
    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 
    440437   technical advantage over Unix, it would have a social advantage, 
    441438   allowing users to cooperate, and an ethical advantage, respecting the 
    442439   user's freedom. 
    443440 
    444    But it was natural to apply the known standards of good practice to 
    445    the work--for example, dynamically allocating data structures to avoid 
     441   But it was natural to apply the known standards of good practice to the 
     442   work--for example, dynamically allocating data structures to avoid 
    446443   arbitrary fixed size limits, and handling all the possible 8-bit codes 
    447444   wherever that made sense. 
     
    451448   machines would be the norm by the time the GNU system was finished), 
    452449   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 
    454451   crucial, we encouraged programmers to read an entire input file into 
    455452   core, then scan its contents without having to worry about I/O. 
     
    461458 
    462459   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 
    464461   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 
    466463   raised an ethical issue: whether it was right for us to have a copy of 
    467464   UNIX at all. 
    468465 
    469466   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, 
    471468   applying the same reasoning that leads to the conclusion that violence 
    472    in self defense is justified, I concluded that it was legitimate to 
    473    use a proprietary package when that was crucial for developing free 
     469   in self defense is justified, I concluded that it was legitimate to use 
     470   a proprietary package when that was crucial for developing a free 
    474471   replacement that would help others stop using the proprietary package. 
    475472 
    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 
    477474   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 
    479476   operating system with a free one, we replaced the machine instead. 
    480477 
     
    482479 
    483480   As the GNU project proceeded, and increasing numbers of system 
    484    components were found or developed, eventually it became useful to 
    485    make a list of the remaining gaps.  We used it to recruit developers to 
    486    write the missing pieces.  This list became known as the GNU task list. 
    487    In addition to missing Unix components, we listed added various other 
     481   components were found or developed, eventually it became useful to make 
     482   a list of the remaining gaps. We used it to recruit developers to write 
     483   the missing pieces. This list became known as the GNU task list. In 
     484   addition to missing Unix components, we listed added various other 
    488485   useful software and documentation projects that, we thought, a truly 
    489486   complete system ought to have. 
    490487 
    491488   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 
    493    is full of projects that some might call "applications".  Any program 
    494    that appeals to more than a narrow class of users would be a useful 
    495    thing to add to an operating system. 
     489   jobs have been done, aside from a few inessential ones. But the list is 
     490   full of projects that some might call "applications". Any program that 
     491   appeals to more than a narrow class of users would be a useful thing to 
     492   add to an operating system. 
    496493 
    497494   Even games are included in the task list--and have been since the 
    498    beginning. Unix included games, so naturally GNU should too. But 
    499    compatibility was not an issue for games, so we did not follow the 
    500    list of games that Unix had.  Instead, we listed a spectrum of 
    501    different kinds of games that users might like. 
     495   beginning. Unix included games, so naturally GNU should too. But 
     496   compatibility was not an issue for games, so we did not follow the list 
     497   of games that Unix had. Instead, we listed a spectrum of different 
     498   kinds of games that users might like. 
    502499 
    503500  The GNU Library GPL 
    504501 
    505502   The GNU C library uses a special kind of copyleft called the GNU 
    506    Library General Public License, which gives permission to link 
    507    proprietary software with the library. Why make this exception? 
     503   Library General Public License(1), which gives permission to link 
     504   proprietary software with the library. Why make this exception? 
    508505 
    509506   It is not a matter of principle; there is no principle that says 
    510    proprietary software products are entitled to include our code. (Why 
    511    contribute to a project predicated on refusing to share with us?) 
    512    Using the LGPL for the C library, or for any library, is a matter of 
     507   proprietary software products are entitled to include our code. (Why 
     508   contribute to a project predicated on refusing to share with us?) Using 
     509   the LGPL for the C library, or for any library, is a matter of 
    513510   strategy. 
    514511 
    515512   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 
    517    only to free software would not have given free software any 
    518    advantage--it would only have discouraged use of our library. 
     513   comes with a C library. Therefore, to make our C library available only 
     514   to free software would not have given free software any advantage--it 
     515   would only have discouraged use of our library. 
    519516 
    520517   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 
    522519   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 
    524521   no ethical reason to allow proprietary applications on the GNU system, 
    525522   but strategically it seems that disallowing them would do more to 
     
    527524   applications. 
    528525 
    529    That is why using the Library GPL is a good strategy for the C 
    530    library.  For other libraries, the strategic decision needs to be 
    531    considered on a case-by-case basis.  When a library does a special job 
    532    that can help write certain kinds of programs, then releasing it under 
    533    the GPL, limiting it to free programs only, is a way of helping other 
    534    free software developers, giving them an advantage against proprietary 
     526   That is why using the Library GPL is a good strategy for the C library. 
     527   For other libraries, the strategic decision needs to be considered on a 
     528   case-by-case basis. When a library does a special job that can help 
     529   write certain kinds of programs, then releasing it under the GPL, 
     530   limiting it to free programs only, is a way of helping other free 
     531   software developers, giving them an advantage against proprietary 
    535532   software. 
    536533 
    537534   Consider GNU Readline, a library that was developed to provide 
    538    command-line editing for BASH. Readline is released under the ordinary 
    539    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 
    541    useful application has been made free software specifically so it 
    542    could use Readline, and that is a real gain for the community. 
     535   command-line editing for BASH. Readline is released under the ordinary 
     536   GNU GPL, not the Library GPL. This probably does reduce the amount 
     537   Readline is used, but that is no loss for us. Meanwhile, at least one 
     538   useful application has been made free software specifically so it could 
     539   use Readline, and that is a real gain for the community. 
    543540 
    544541   Proprietary software developers have the advantages money provides; 
    545    free software developers need to make advantages for each other.  I 
    546    hope some day we will have a large collection of GPL-covered libraries 
    547    that have no parallel available to proprietary software, providing 
    548    useful modules to serve as building blocks in new free software, and 
    549    adding up to a major advantage for further free software development. 
     542   free software developers need to make advantages for each other. I hope 
     543   some day we will have a large collection of GPL-covered libraries that 
     544   have no parallel available to proprietary software, providing useful 
     545   modules to serve as building blocks in new free software, and adding up 
     546   to a major advantage for further free software development. 
     547 
     548   (1) This license is now called the GNU Lesser General Public License, 
     549   to avoid giving the idea that all libraries ought to use it. 
     550   See http://www.gnu.org/philosophy/why-not-lgpl.html. 
    550551 
    551552  Scratching an itch? 
    552553 
    553554   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, 
    555556   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 
    557558   plan, not from impulse. 
    558559 
     
    560561   needs a C library, the Bourne-Again Shell (bash) because a Unix-like 
    561562   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, 
    563564   GNU Emacs, GDB and GNU Make. 
    564565 
    565566   Some GNU programs were developed to cope with specific threats to our 
    566    freedom. Thus, we developed gzip to replace the Compress program, 
    567    which had been lost to the community because of the LZW patents.  We 
    568    found people to develop LessTif, and more recently started GNOME and 
    569    Harmony, to address the problems caused by certain proprietary 
    570    libraries (see below).  We are developing the GNU Privacy Guard to 
    571    replace popular non-free encryption software, because users should not 
    572    have to choose between privacy and freedom. 
     567   freedom. Thus, we developed gzip to replace the Compress program, which 
     568   had been lost to the community because of the LZW patents. We found 
     569   people to develop LessTif, and more recently started GNOME and Harmony, 
     570   to address the problems caused by certain proprietary libraries (see 
     571   below). We are developing the GNU Privacy Guard to replace popular 
     572   non-free encryption software, because users should not have to choose 
     573   between privacy and freedom. 
    573574 
    574575   Of course, the people writing these programs became interested in the 
    575576   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    programs exist. 
     577   sake of their own needs and interests. But that is not why the programs 
     578   exist. 
    578579 
    579580  Unexpected developments 
    580581 
    581582   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 
    583584   happened. 
    584585 
    585586   Since each component of the GNU system was implemented on a Unix 
    586587   system, each component could run on Unix systems, long before a 
    587    complete GNU system existed. Some of these programs became popular, 
    588    and users began extending them and porting them---to the various 
     588   complete GNU system existed. Some of these programs became popular, and 
     589   users began extending them and porting them---to the various 
    589590   incompatible versions of Unix, and sometimes to other systems as well. 
    590591 
    591592   The process made these programs much more powerful, and attracted both 
    592    funds and contributors to the GNU project. But it probably also 
    593    delayed completion of a minimal working system by several years, as 
    594    GNU developers' time was put into maintaining these ports and adding 
    595    features to the existing components, rather than moving on to write 
    596    one missing component after another. 
     593