annotate etc/THE-GNU-PROJECT @ 110410:f2e111723c3a

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