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