| 1 | |
| 2 | GNU'S NOT UNIX |
| 3 | |
| 4 | Conducted by David Betz and Jon Edwards |
| 5 | |
| 6 | Richard Stallman discusses his public-domain |
| 7 | UNIX-compatible software system |
| 8 | with BYTE editors |
| 9 | (July 1986) |
| 10 | |
| 11 | Copyright (C) 1986 Richard Stallman. Permission is granted to make and |
| 12 | distribute copies of this article as long as the copyright and this notice |
| 13 | appear on all copies. |
| 14 | |
| 15 | Richard Stallman has undertaken probably the most ambitious free software |
| 16 | development project to date, the GNU system. In his GNU Manifesto, |
| 17 | published in the March 1985 issue of Dr. Dobb's Journal, Stallman described |
| 18 | GNU as a "complete Unix-compatible software system which I am writing so |
| 19 | that I can give it away free to everyone who can use it... Once GNU is |
| 20 | written, everyone will be able to obtain good system software free, just |
| 21 | like air." (GNU is an acronym for GNU's Not UNIX; the "G" is pronounced.) |
| 22 | |
| 23 | Stallman is widely known as the author of EMACS, a powerful text editor |
| 24 | that he developed at the MIT Artificial Intelligence Laboratory. It is no |
| 25 | coincidence that the first piece of software produced as part of the GNU |
| 26 | project was a new implementation of EMACS. GNU EMACS has already achieved a |
| 27 | reputation as one of the best implementations of EMACS currently available |
| 28 | at any price. |
| 29 | |
| 30 | BYTE: We read your GNU Manifesto in the March 1985 issue of Dr. Dobb's. |
| 31 | What has happened since? Was that really the beginning, and how have you |
| 32 | progressed since then? |
| 33 | |
| 34 | Stallman: The publication in Dr. Dobb's wasn't the beginning of the |
| 35 | project. I wrote the GNU Manifesto when I was getting ready to start the |
| 36 | project, as a proposal to ask computer manufacturers for funding. They |
| 37 | didn't want to get involved, and I decided that rather than spend my time |
| 38 | trying to pursue funds, I ought to spend it writing code. The manifesto was |
| 39 | published about a year and a half after I had written it, when I had barely |
| 40 | begun distributing the GNU EMACS. Since that time, in addition to making |
| 41 | GNU EMACS more complete and making it run on many more computers, I have |
| 42 | nearly finished the optimizing C compiler and all the other software that |
| 43 | is needed for running C programs. This includes a source-level debugger |
| 44 | that has many features that the other source-level debuggers on UNIX don't |
| 45 | have. For example, it has convenience variables within the debugger so you |
| 46 | can save values, and it also has a history of all the values that you have |
| 47 | printed out, making it tremendously easier to chase around list structures. |
| 48 | |
| 49 | BYTE: You have finished an editor that is now widely distributed and you |
| 50 | are about to finish the compiler. |
| 51 | |
| 52 | Stallman: I expect that it will be finished this October. |
| 53 | |
| 54 | BYTE: What about the kernel? |
| 55 | |
| 56 | Stallman: I'm currently planning to start with the kernel that was written |
| 57 | at MIT and was released to the public recently with the idea that I would |
| 58 | use it. This kernel is called TRIX; it's based on remote procedure call. I |
| 59 | still need to add compatibility for a lot of the features of UNIX which it |
| 60 | doesn't have currently. I haven't started to work on that yet. I'm |
| 61 | finishing the compiler before I go to work on the kernel. I am also going |
| 62 | to have to rewrite the file system. I intend to make it failsafe just by |
| 63 | having it write blocks in the proper order so that the disk structure is |
| 64 | always consistent. Then I want to add version numbers. I have a complicated |
| 65 | scheme to reconcile version numbers with the way people usually use UNIX. |
| 66 | You have to be able to specify filenames without version numbers, but you |
| 67 | also have to be able to specify them with explicit version numbers, and |
| 68 | these both need to work with ordinary UNIX programs that have not been |
| 69 | modified in any way to deal with the existence of this feature. I think I |
| 70 | have a scheme for doing this, and only trying it will show me whether it |
| 71 | really does the job. |
| 72 | |
| 73 | BYTE: Do you have a brief description you can give us as to how GNU as a |
| 74 | system will be superior to other systems? We know that one of your goals is |
| 75 | to produce something that is compatible with UNIX. But at least in the area |
| 76 | of file systems you have already said that you are going to go beyond UNIX |
| 77 | and produce something that is better. |
| 78 | |
| 79 | Stallman: The C compiler will produce better code and run faster. The |
| 80 | debugger is better. With each piece I may or may not find a way to improve |
| 81 | it. But there is no one answer to this question. To some extent I am |
| 82 | getting the benefit of reimplementation, which makes many systems much |
| 83 | better. To some extent it's because I have been in the field a long time |
| 84 | and worked on many other systems. I therefore have many ideas to bring to |
| 85 | bear. One way in which it will be better is that practically everything in |
| 86 | the system will work on files of any size, on lines of any size, with any |
| 87 | characters appearing in them. The UNIX system is very bad in that regard. |
| 88 | It's not anything new as a principle of software engineering that you |
| 89 | shouldn't have arbitrary limits. But it just was the standard practice in |
| 90 | writing UNIX to put those in all the time, possibly just because they were |
| 91 | writing it for a very small computer. The only limit in the GNU system is |
| 92 | when your program runs out of memory because it tried to work on too much |
| 93 | data and there is no place to keep it all. |
| 94 | |
| 95 | BYTE: And that isn't likely to be hit if you've got virtual memory. You may |
| 96 | just take forever to come up with the solution. |
| 97 | |
| 98 | Stallman: Actually these limits tend to hit in a time long before you take |
| 99 | forever to come up with the solution. |
| 100 | |
| 101 | BYTE: Can you say something about what types of machines and environments |
| 102 | GNU EMACS in particular has been made to run under? It's now running on |
| 103 | VAXes; has it migrated in any form to personal computers? |
| 104 | |
| 105 | Stallman: I'm not sure what you mean by personal computers. For example, is |
| 106 | a Sun a personal computer? GNU EMACS requires at least a megabyte of |
| 107 | available memory and preferably more. It is normally used on machines that |
| 108 | have virtual memory. Except for various technical problems in a few C |
| 109 | compilers, almost any machine with virtual memory and running a fairly |
| 110 | recent version of UNIX will run GNU EMACS, and most of them currently do. |
| 111 | |
| 112 | BYTE: Has anyone tried to port it to Ataris or Macintoshes? |
| 113 | |
| 114 | Stallman: The Atari 1040ST still doesn't have quite enough memory. The next |
| 115 | Atari machine, I expect, will run it. I also think that future Ataris will |
| 116 | have some forms of memory mapping. Of course, I am not designing the |
| 117 | software to run on the kinds of computers that are prevalent today. I knew |
| 118 | when I started this project it was going to take a few years. I therefore |
| 119 | decided that I didn't want to make a worse system by taking on the |
| 120 | additional challenge of making it run in the currently constrained |
| 121 | environment. So instead I decided I'm going to write it in the way that |
| 122 | seems the most natural and best. I am confident that in a couple of years |
| 123 | machines of sufficient size will be prevalent. In fact, increases in memory |
| 124 | size are happening so fast it surprises me how slow most of the people are |
| 125 | to put in virtual memory; I think it is totally essential. |
| 126 | |
| 127 | BYTE: I think people don't really view it as being necessary for |
| 128 | single-user machines. |
| 129 | |
| 130 | Stallman: They don't understand that single user doesn't mean single |
| 131 | program. Certainly for any UNIX-like system it's important to be able to |
| 132 | run lots of different processes at the same time even if there is only one |
| 133 | of you. You could run GNU EMACS on a nonvirtual-memory machine with enough |
| 134 | memory, but you couldn't run the rest of the GNU system very well or a UNIX |
| 135 | system very well. |
| 136 | |
| 137 | BYTE: How much of LISP is present in GNU EMACS? It occurred to me that it |
| 138 | may be useful to use that as a tool for learning LISP. |
| 139 | |
| 140 | Stallman: You can certainly do that. GNU EMACS contains a complete, |
| 141 | although not very powerful, LISP system. It's powerful enough for writing |
| 142 | editor commands. It's not comparable with, say, a Common LISP System, |
| 143 | something you could really use for system programming, but it has all the |
| 144 | things that LISP needs to have. |
| 145 | |
| 146 | BYTE: Do you have any predictions about when you would be likely to |
| 147 | distribute a workable environment in which, if we put it on our machines or |
| 148 | workstations, we could actually get reasonable work done without using |
| 149 | anything other than code that you distribute? |
| 150 | |
| 151 | Stallman: It's really hard to say. That could happen in a year, but of |
| 152 | course it could take longer. It could also conceivably take less, but |
| 153 | that's not too likely anymore. I think I'll have the compiler finished in a |
| 154 | month or two. The only other large piece of work I really have to do is in |
| 155 | the kernel. I first predicted GNU would take something like two years, but |
| 156 | it has now been two and a half years and I'm still not finished. Part of |
| 157 | the reason for the delay is that I spent a lot of time working on one |
| 158 | compiler that turned out to be a dead end. I had to rewrite it completely. |
| 159 | Another reason is that I spent so much time on GNU EMACS. I originally |
| 160 | thought I wouldn't have to do that at all. |
| 161 | |
| 162 | BYTE: Tell us about your distribution scheme. |
| 163 | |
| 164 | Stallman: I don't put software or manuals in the public domain, and the |
| 165 | reason is that I want to make sure that all the users get the freedom to |
| 166 | share. I don't want anyone making an improved version of a program I wrote |
| 167 | and distributing it as proprietary. I don't want that to ever be able to |
| 168 | happen. I want to encourage the free improvements to these programs, and |
| 169 | the best way to do that is to take away any temptation for a person to make |
| 170 | improvements nonfree. Yes, a few of them will refrain from making |
| 171 | improvements, but a lot of others will make the same improvements and |
| 172 | they'll make them free. |
| 173 | |
| 174 | BYTE: And how do you go about guaranteeing that? |
| 175 | |
| 176 | Stallman: I do this by copyrighting the programs and putting on a notice |
| 177 | giving people explicit permission to copy the programs and change them but |
| 178 | only on the condition that they distribute under the same terms that I |
| 179 | used, if at all. You don't have to distribute the changes you make to any |
| 180 | of my programs--you can just do it for yourself, and you don't have to give |
| 181 | it to anyone or tell anyone. But if you do give it to someone else, you |
| 182 | have to do it under the same terms that I use. |
| 183 | |
| 184 | BYTE: Do you obtain any rights over the executable code derived from the C |
| 185 | compiler? |
| 186 | |
| 187 | Stallman: The copyright law doesn't give me copyright on output from the |
| 188 | compiler, so it doesn't give me a way to say anything about that, and in |
| 189 | fact I don't try to. I don't sympathize with people developing proprietary |
| 190 | products with any compiler, but it doesn't seem especially useful to try to |
| 191 | stop them from developing them with this compiler, so I am not going to. |
| 192 | |
| 193 | BYTE: Do your restrictions apply if people take pieces of your code to |
| 194 | produce other things as well? |
| 195 | |
| 196 | Stallman: Yes, if they incorporate with changes any sizable piece. If it |
| 197 | were two lines of code, that's nothing; copyright doesn't apply to that. |
| 198 | Essentially, I have chosen these conditions so that first there is a |
| 199 | copyright, which is what all the software hoarders use to stop everybody |
| 200 | from doing anything, and then I add a notice giving up part of those |
| 201 | rights. So the conditions talk only about the things that copyright applies |
| 202 | to. I don't believe that the reason you should obey these conditions is |
| 203 | because of the law. The reason you should obey is because an upright person |
| 204 | when he distributes software encourages other people to share it further. |
| 205 | |
| 206 | BYTE: In a sense you are enticing people into this mode of thinking by |
| 207 | providing all of these interesting tools that they can use but only if they |
| 208 | buy into your philosophy. |
| 209 | |
| 210 | Stallman: Yes. You could also see it as using the legal system that |
| 211 | software hoarders have set up against them. I'm using it to protect the |
| 212 | public from them. |
| 213 | |
| 214 | BYTE: Given that manufacturers haven't wanted to fund the project, who do |
| 215 | you think will use the GNU system when it is done? |
| 216 | |
| 217 | Stallman: I have no idea, but it is not an important question. My purpose |
| 218 | is to make it possible for people to reject the chains that come with |
| 219 | proprietary software. I know that there are people who want to do that. |
| 220 | Now, there may be others who don't care, but they are not my concern. I |
| 221 | feel a bit sad for them and for the people that they influence. Right now a |
| 222 | person who perceives the unpleasantness of the terms of proprietary |
| 223 | software feels that he is stuck and has no alternative except not to use a |
| 224 | computer. Well, I am going to give him a comfortable alternative. |
| 225 | Other people may use the GNU system simply because it is technically |
| 226 | superior. For example, my C compiler is producing about as good a code as I |
| 227 | have seen from any C compiler. And GNU EMACS is generally regarded as being |
| 228 | far superior to the commercial competition. And GNU EMACS was not funded by |
| 229 | anyone either, but everyone is using it. I therefore think that many people |
| 230 | will use the rest of the GNU system because of its technical advantages. |
| 231 | But I would be doing a GNU system even if I didn't know how to make it |
| 232 | technically better because I want it to be socially better. The GNU project |
| 233 | is really a social project. It uses technical means to make a change in |
| 234 | society. |
| 235 | |
| 236 | BYTE: Then it is fairly important to you that people adopt GNU. It is not |
| 237 | just an academic exercise to produce this software to give it away to |
| 238 | people. You hope it will change the way the software industry operates. |
| 239 | |
| 240 | Stallman: Yes. Some people say no one will ever use it because it doesn't |
| 241 | have some attractive corporate logo on it, and other people say that they |
| 242 | think it is tremendously important and everyone's going to want to use it. |
| 243 | I have no way of knowing what is really going to happen. I don't know any |
| 244 | other way to try to change the ugliness of the field that I find myself in, |
| 245 | so this is what I have to do. |
| 246 | |
| 247 | BYTE: Can you address the implications? You obviously feel that this is an |
| 248 | important political and social statement. |
| 249 | |
| 250 | Stallman: It is a change. I'm trying to change the way people approach |
| 251 | knowledge and information in general. I think that to try to own knowledge, |
| 252 | to try to control whether people are allowed to use it, or to try to stop |
| 253 | other people from sharing it, is sabotage. It is an activity that benefits |
| 254 | the person that does it at the cost of impoverishing all of society. One |
| 255 | person gains one dollar by destroying two dollars' worth of wealth. I think |
| 256 | a person with a conscience wouldn't do that sort of thing except perhaps if |
| 257 | he would otherwise die. And of course the people who do this are fairly |
| 258 | rich; I can only conclude that they are unscrupulous. I would like to see |
| 259 | people get rewards for writing free software and for encouraging other |
| 260 | people to use it. I don't want to see people get rewards for writing |
| 261 | proprietary software because that is not really a contribution to society. |
| 262 | The principle of capitalism is the idea that people manage to make money by |
| 263 | producing things and thereby are encouraged to do what is useful, |
| 264 | automatically, so to speak. But that doesn't work when it comes to owning |
| 265 | knowledge. They are encouraged to do not really what's useful, and what |
| 266 | really is useful is not encouraged. I think it is important to say that |
| 267 | information is different from material objects like cars and loaves of |
| 268 | bread because people can copy it and share it on their own and, if nobody |
| 269 | attempts to stop them, they can change it and make it better for |
| 270 | themselves. That is a useful thing for people to do. This isn't true of |
| 271 | loaves of bread. If you have one loaf of bread and you want another, you |
| 272 | can't just put your loaf of bread into a bread copier. you can't make |
| 273 | another one except by going through all the steps that were used to make |
| 274 | the first one. It therefore is irrelevant whether people are permitted to |
| 275 | copy it--it's impossible. |
| 276 | Books were printed only on printing presses until recently. It was |
| 277 | possible to make a copy yourself by hand, but it wasn't practical because |
| 278 | it took so much more work than using a printing press. And it produced |
| 279 | something so much less attractive that, for all intents and purposes, you |
| 280 | could act as if it were impossible to make books except by mass producing |
| 281 | them. And therefore copyright didn't really take any freedom away from the |
| 282 | reading public. There wasn't anything that a book purchaser could do that |
| 283 | was forbidden by copyright. |
| 284 | But this isn't true for computer programs. It's also not true for tape |
| 285 | cassettes. It's partly false now for books, but it is still true that for |
| 286 | most books it is more expensive and certainly a lot more work to Xerox them |
| 287 | than to buy a copy, and the result is still less attractive. Right now we |
| 288 | are in a period where the situation that made copyright harmless and |
| 289 | acceptable is changing to a situation where copyright will become |
| 290 | destructive and intolerable. So the people who are slandered as "pirates" |
| 291 | are in fact the people who are trying to do something useful that they have |
| 292 | been forbidden to do. The copyright laws are entirely designed to help |
| 293 | people take complete control over the use of some information for their own |
| 294 | good. But they aren't designed to help people who want to make sure that |
| 295 | the information is accessible to the public and stop others from depriving |
| 296 | the public. I think that the law should recognize a class of works that are |
| 297 | owned by the public, which is different from public domain in the same |
| 298 | sense that a public park is different from something found in a garbage |
| 299 | can. It's not there for anybody to take away, it's there for everyone to |
| 300 | use but for no one to impede. Anybody in the public who finds himself being |
| 301 | deprived of the derivative work of something owned by the public should be |
| 302 | able to sue about it. |
| 303 | |
| 304 | BYTE: But aren't pirates interested in getting copies of programs because |
| 305 | they want to use those programs, not because they want to use that |
| 306 | knowledge to produce something better? |
| 307 | |
| 308 | Stallman: I don't see that that's the important distinction. More people |
| 309 | using a program means that the program contributes more to society. You |
| 310 | have a loaf of bread that could be eaten either once or a million times. |
| 311 | |
| 312 | BYTE: Some users buy commercial software to obtain support. How does your |
| 313 | distribution scheme provide support? |
| 314 | |
| 315 | Stallman: I suspect that those users are misled and are not thinking |
| 316 | clearly. It is certainly useful to have support, but when they start |
| 317 | thinking about how that has something to do with selling software or with |
| 318 | the software being proprietary, at that point they are confusing |
| 319 | themselves. There is no guarantee that proprietary software will receive |
| 320 | good support. Simply because sellers say that they provide support, that |
| 321 | doesn't mean it will be any good. And they may go out of business. In fact, |
| 322 | people think that GNU EMACS has better support than commercial EMACSes. One |
| 323 | of the reasons is that I'm probably a better hacker than the people who |
| 324 | wrote the other EMACSes, but the other reason is that everyone has sources |
| 325 | and there are so many people interested in figuring out how to do things |
| 326 | with it that you don't have to get your support from me. Even just the free |
| 327 | support that consists of my fixing bugs people report to me and |
| 328 | incorporating that in the next release has given people a good level of |
| 329 | support. You can always hire somebody to solve a problem for you, and when |
| 330 | the software is free you have a competitive market for the support. You can |
| 331 | hire anybody. I distribute a service list with EMACS, a list of people's |
| 332 | names and phone numbers and what they charge to provide support. |
| 333 | |
| 334 | BYTE: Do you collect their bug fixes? |
| 335 | |
| 336 | Stallman: Well, they send them to me. I asked all the people who wanted to |
| 337 | be listed to promise that they would never ask any of their customers to |
| 338 | keep secret whatever they were told or any changes they were given to the |
| 339 | GNU software as part of that support. |
| 340 | |
| 341 | BYTE: So you can't have people competing to provide support based on their |
| 342 | knowing the solution to some problem that somebody else doesn't know. |
| 343 | |
| 344 | Stallman: No. They can compete based on their being clever and more likely |
| 345 | to find the solution to your problem, or their already understanding more |
| 346 | of the common problems, or knowing better how to explain to you what you |
| 347 | should do. These are all ways they can compete. They can try to do better, |
| 348 | but they cannot actively impede their competitors. |
| 349 | |
| 350 | BYTE: I suppose it's like buying a car. You're not forced to go back to the |
| 351 | original manufacturer for support or continued maintenance. |
| 352 | |
| 353 | Stallman: Or buying a house--what would it be like if the only person who |
| 354 | could ever fix problems with your house was the contractor who built it |
| 355 | originally? That is the kind of imposition that's involved in proprietary |
| 356 | software. People tell me about a problem that happens in UNIX. Because |
| 357 | manufacturers sell improved versions of UNIX, they tend to collect fixes |
| 358 | and not give them out except in binaries. The result is that the bugs don't |
| 359 | really get fixed. |
| 360 | |
| 361 | BYTE: They're all duplicating effort trying to solve bugs independently. |
| 362 | |
| 363 | Stallman: Yes. Here is another point that helps put the problem of |
| 364 | proprietary information in a social perspective. Think about the liability |
| 365 | insurance crisis. In order to get any compensation from society, an injured |
| 366 | person has to hire a lawyer and split the money with that lawyer. This is a |
| 367 | stupid and inefficient way of helping out people who are victims of |
| 368 | accidents. And consider all the time that people put into hustling to take |
| 369 | business away from their competition. Think of the pens that are packaged |
| 370 | in large cardboard packages that cost more than the pen--just to make sure |
| 371 | that the pen isn't stolen. Wouldn't it be better if we just put free pens |
| 372 | on every street corner? And think of all the toll booths that impede the |
| 373 | flow of traffic. It's a gigantic social phenomenon. People find ways of |
| 374 | getting money by impeding society. Once they can impede society, they can |
| 375 | be paid to leave people alone. The waste inherent in owning information |
| 376 | will become more and more important and will ultimately make the difference |
| 377 | between the utopia in which nobody really has to work for a living because |
| 378 | it's all done by robots and a world just like ours where everyone spends |
| 379 | much time replicating what the next fellow is doing. |
| 380 | |
| 381 | BYTE: Like typing in copyright notices on the software. |
| 382 | |
| 383 | Stallman: More like policing everyone to make sure that they don't have |
| 384 | forbidden copies of anything and duplicating all the work people have |
| 385 | already done because it is proprietary. |
| 386 | |
| 387 | BYTE: A cynic might wonder how you earn your living. |
| 388 | |
| 389 | Stallman: From consulting. When I do consulting, I always reserve the right |
| 390 | to give away what I wrote for the consulting job. Also, I could be making |
| 391 | my living by mailing copies of the free software that I wrote and some that |
| 392 | other people wrote. Lots of people send in $150 for GNU EMACS, but now this |
| 393 | money goes to the Free Software Foundation that I started. The foundation |
| 394 | doesn't pay me a salary because it would be a conflict of interest. |
| 395 | Instead, it hires other people to work on GNU. As long as I can go on |
| 396 | making a living by consulting I think that's the best way. |
| 397 | |
| 398 | BYTE: What is currently included in the official GNU distribution tape? |
| 399 | |
| 400 | Stallman: Right now the tape contains GNU EMACS (one version fits all |
| 401 | computers); Bison, a program that replaces YACC; MIT Scheme, which is |
| 402 | Professor Sussman's super-simplified dialect of LISP; and Hack, a |
| 403 | dungeon-exploring game similar to Rogue. |
| 404 | |
| 405 | BYTE: Does the printed manual come with the tape as well? |
| 406 | |
| 407 | Stallman: No. Printed manuals cost $15 each or copy them yourself. Copy |
| 408 | this interview and share it, too. |
| 409 | |
| 410 | BYTE: How can you get a copy of that? |
| 411 | |
| 412 | Stallman: Write to the Free Software Foundation, 675 Massachusetts Ave., |
| 413 | Cambridge, MA 02139. |
| 414 | |
| 415 | [As of April 2005, this address is: |
| 416 | Free Software Foundation |
| 417 | 51 Franklin Street, Fifth Floor |
| 418 | Boston, MA 02110-1301, USA |
| 419 | Voice: +1-617-542-5942 |
| 420 | Fax: +1-617-542-2652 |
| 421 | ] |
| 422 | |
| 423 | BYTE: What are you going to do when you are done with the GNU system? |
| 424 | |
| 425 | Stallman: I'm not sure. Sometimes I think that what I'll go on to do is the |
| 426 | same thing in other areas of software. |
| 427 | |
| 428 | BYTE: So this is just the first of a whole series of assaults on the |
| 429 | software industry? |
| 430 | |
| 431 | Stallman: I hope so. But perhaps what I'll do is just live a life of ease |
| 432 | working a little bit of the time just to live. I don't have to live |
| 433 | expensively. The rest of the time I can find interesting people to hang |
| 434 | around with or learn to do things that I don't know how to do. |
| 435 | |
| 436 | Editorial Note: BYTE holds the right to provide this interview on BIX but |
| 437 | will not interfere with its distribution. |
| 438 | |
| 439 | Richard Stallman, 545 Technology Square, Room 703, Cambridge, MA 02139. |
| 440 | Copyright (C) 1986 Richard Stallman. Permission is granted to make and |
| 441 | distribute copies of this article as long as the copyright and this notice |
| 442 | appear on all copies. |