BYTE Interview with Richard Stallman

Richard Stallman discusses his public-domain Unix-compatiblesoftware system with BYTE editors (July 1986).


Richard Stallman has undertaken probably the most ambitious freesoftware development project to date, the GNU system. In his GNUManifesto, published in the March 1985 issue of Dr. Dobb's Journal,Stallman described GNU as a “complete Unix-compatible softwaresystem which I am writing so that I can give it away free to everyonewho can use it… Once GNU is written, everyone will be able toobtain good system software free, just like air.” (GNU is anacronym for GNU's Not Unix; thegis pronounced.)

Stallman is widely known as the author of EMACS, a powerful texteditor that he developed at theMITArtificial Intelligence Laboratory. It isno coincidence that the first piece of software produced as part ofthe GNU project was a new implementation of EMACS. GNU EMACS hasalready achieved a reputation as one of the best implementations ofEMACS currently available at any price.

BYTE: We read your GNU Manifesto in the March 1985issue of Dr. Dobb's. What has happened since? Was that really thebeginning, and how have you progressed since then?

Stallman: The publication in Dr. Dobb's wasn't the beginning of theproject. I wrote the GNU Manifesto when I was getting ready to start theproject, as a proposal to ask computer manufacturers for funding. Theydidn't want to get involved, and I decided that rather than spend my timetrying to pursue funds, I ought to spend it writing code. The manifesto waspublished about a year and a half after I had written it, when I had barelybegun distributing the GNU EMACS. Since that time, in addition to makingGNU EMACS more complete and making it run on many more computers, I havenearly finished the optimizing C compiler and all the other software thatis needed for running C programs. This includes a source-level debuggerthat has many features that the other source-level debuggers on Unix don'thave. For example, it has convenience variables within the debugger so youcan save values, and it also has a history of all the values that you haveprinted out, making it tremendously easier to chase around list structures.

BYTE: You have finished an editor that is now widely distributed and youare about to finish the compiler.

Stallman: I expect that it will be finished this October.

BYTE: What about the kernel?

Stallman: I'm currently planning to start with the kernel that was writtenat MIT and was released to the public recently with the idea that I woulduse it. This kernel is called TRIX; it's based on remote procedure call. Istill need to add compatibility for a lot of the features of Unix which itdoesn't have currently. I haven't started to work on that yet. I'mfinishing the compiler before I go to work on the kernel. I am also goingto have to rewrite the file system. I intend to make it failsafe just byhaving it write blocks in the proper order so that the disk structure isalways consistent. Then I want to add version numbers. I have a complicatedscheme to reconcile version numbers with the way people usually use Unix.You have to be able to specify filenames without version numbers, but youalso have to be able to specify them with explicit version numbers, andthese both need to work with ordinary Unix programs that have not beenmodified in any way to deal with the existence of this feature. I think Ihave a scheme for doing this, and only trying it will show me whether itreally does the job.

BYTE: Do you have a brief description you can give us as to how GNU as asystem will be superior to other systems? We know that one of your goals isto produce something that is compatible with Unix. But at least in the areaof file systems you have already said that you are going to go beyond Unixand produce something that is better.

Stallman: The C compiler will produce better code and run faster. Thedebugger is better. With each piece I may or may not find a way to improveit. But there is no one answer to this question. To some extent I amgetting the benefit of reimplementation, which makes many systems muchbetter. To some extent it's because I have been in the field a long timeand worked on many other systems. I therefore have many ideas to bring tobear. One way in which it will be better is that practically everything inthe system will work on files of any size, on lines of any size, with anycharacters appearing in them. The Unix system is very bad in that regard.It's not anything new as a principle of software engineering that youshouldn't have arbitrary limits. But it just was the standard practice inwriting Unix to put those in all the time, possibly just because they werewriting it for a very small computer. The only limit in the GNU system iswhen your program runs out of memory because it tried to work on too muchdata and there is no place to keep it all.

BYTE: And that isn't likely to be hit if you've got virtual memory. You mayjust take forever to come up with the solution.

Stallman: Actually these limits tend to hit in a time long before you takeforever to come up with the solution.

BYTE: Can you say something about what types of machines and environmentsGNU EMACS in particular has been made to run under? It's now running onVAXes; has it migrated in any form to personal computers?

Stallman: I'm not sure what you mean by personal computers. For example, isa Sun a personal computer? GNU EMACS requires at least a megabyte ofavailable memory and preferably more. It is normally used on machines thathave virtual memory. Except for various technical problems in a few Ccompilers, almost any machine with virtual memory and running a fairlyrecent version of Unix will run GNU EMACS, and most of them currently do.

BYTE: Has anyone tried to port it to Ataris or Macintoshes?

Stallman: The Atari 1040ST still doesn't have quite enough memory. The nextAtari machine, I expect, will run it. I also think that future Ataris willhave some forms of memory mapping. Of course, I am not designing thesoftware to run on the kinds of computers that are prevalent today. I knewwhen I started this project it was going to take a few years. I thereforedecided that I didn't want to make a worse system by taking on theadditional challenge of making it run in the currently constrainedenvironment. So instead I decided I'm going to write it in the way thatseems the most natural and best. I am confident that in a couple of yearsmachines of sufficient size will be prevalent. In fact, increases in memorysize are happening so fast it surprises me how slow most of the people areto put in virtual memory; I think it is totally essential.

BYTE: I think people don't really view it as being necessary forsingle-user machines.

Stallman: They don't understand that single user doesn't mean singleprogram. Certainly for any Unix-like system it's important to be able torun lots of different processes at the same time even if there is only oneof you. You could run GNU EMACS on a nonvirtual-memory machine with enoughmemory, but you couldn't run the rest of the GNU system very well or a Unixsystem very well.

BYTE: How much of LISP is present in GNU EMACS? It occurred to me that itmay be useful to use that as a tool for learning LISP.

Stallman: You can certainly do that. GNU EMACS contains a complete,although not very powerful, LISP system. It's powerful enough for writingeditor commands. It's not comparable with, say, a Common LISP System,something you could really use for system programming, but it has all thethings that LISP needs to have.

BYTE: Do you have any predictions about when you would be likely todistribute a workable environment in which, if we put it on our machines orworkstations, we could actually get reasonable work done without usinganything other than code that you distribute?

Stallman: It's really hard to say. That could happen in a year, but ofcourse it could take longer. It could also conceivably take less, butthat's not too likely anymore. I think I'll have the compiler finished in amonth or two. The only other large piece of work I really have to do is inthe kernel. I first predicted GNU would take something like two years, butit has now been two and a half years and I'm still not finished. Part ofthe reason for the delay is that I spent a lot of time working on onecompiler that turned out to be a dead end. I had to rewrite it completely.Another reason is that I spent so much time on GNU EMACS. I originallythought I wouldn't have to do that at all.

BYTE: Tell us about your distribution scheme.

Stallman: I don't put software or manuals in the public domain, and thereason is that I want to make sure that all the users get the freedom toshare. I don't want anyone making an improved version of a program I wroteand distributing it as proprietary. I don't want that to ever be able tohappen. I want to encourage the free improvements to these programs, andthe best way to do that is to take away any temptation for a person to makeimprovements nonfree. Yes, a few of them will refrain from makingimprovements, but a lot of others will make the same improvements andthey'll make them free.

BYTE: And how do you go about guaranteeing that?

Stallman: I do this by copyrighting the programs and putting on a noticegiving people explicit permission to copy the programs and change them butonly on the condition that they distribute under the same terms that Iused, if at all. You don't have to distribute the changes you make to anyof my programs—you can just do it for yourself, and you don't have to giveit to anyone or tell anyone. But if you do give it to someone else, youhave to do it under the same terms that I use.

BYTE: Do you obtain any rights over the executable code derived from the Ccompiler?

Stallman: The copyright law doesn't give me copyright on output from thecompiler, so it doesn't give me a way to say anything about that, and infact I don't try to. I don't sympathize with people developing proprietaryproducts with any compiler, but it doesn't seem especially useful to try tostop them from developing them with this compiler, so I am not going to.

BYTE: Do your restrictions apply if people take pieces of your code toproduce other things as well?

Stallman: Yes, if they incorporate with changes any sizable piece. If itwere two lines of code, that's nothing; copyright doesn't apply to that.Essentially, I have chosen these conditions so that first there is acopyright, which is what all the software hoarders use to stop everybodyfrom doing anything, and then I add a notice giving up part of thoserights. So the conditions talk only about the things that copyright appliesto. I don't believe that the reason you should obey these conditions isbecause of the law. The reason you should obey is because an upright personwhen he distributes software encourages other people to share it further.

BYTE: In a sense you are enticing people into this mode of thinking byproviding all of these interesting tools that they can use but only if theybuy into your philosophy.

Stallman: Yes. You could also see it as using the legal system thatsoftware hoarders have set up against them. I'm using it to protect thepublic from them.

BYTE: Given that manufacturers haven't wanted to fund the project, who doyou think will use the GNU system when it is done?

Stallman: I have no idea, but it is not an important question. My purposeis to make it possible for people to reject the chains that come withproprietary software. I know that there are people who want to do that.Now, there may be others who don't care, but they are not my concern. Ifeel a bit sad for them and for the people that they influence. Right now aperson who perceives the unpleasantness of the terms of proprietarysoftware feels that he is stuck and has no alternative except not to use acomputer. Well, I am going to give him a comfortable alternative.

Other people may use the GNU system simply because it is technicallysuperior. For example, my C compiler is producing about as good a code as Ihave seen from any C compiler. And GNU EMACS is generally regarded as beingfar superior to the commercial competition. And GNU EMACS was not funded byanyone either, but everyone is using it. I therefore think that many peoplewill use the rest of the GNU system because of its technical advantages.But I would be doing a GNU system even if I didn't know how to make ittechnically better because I want it to be socially better. The GNU projectis really a social project. It uses technical means to make a change insociety.

BYTE: Then it is fairly important to you that people adopt GNU. It is notjust an academic exercise to produce this software to give it away topeople. You hope it will change the way the software industry operates.

Stallman: Yes. Some people say no one will ever use it because it doesn'thave some attractive corporate logo on it, and other people say that theythink it is tremendously important and everyone's going to want to use it.I have no way of knowing what is really going to happen. I don't know anyother way to try to change the ugliness of the field that I find myself in,so this is what I have to do.

BYTE: Can you address the implications? You obviously feel that this is animportant political and social statement.

Stallman: It is a change. I'm trying to change the way people approachknowledge and information in general. I think that to try to own knowledge,to try to control whether people are allowed to use it, or to try to stopother people from sharing it, is sabotage. It is an activity that benefitsthe person that does it at the cost of impoverishing all of society. Oneperson gains one dollar by destroying two dollars' worth of wealth. I thinka person with a conscience wouldn't do that sort of thing except perhaps ifhe would otherwise die. And of course the people who do this are fairlyrich; I can only conclude that they are unscrupulous. I would like to seepeople get rewards for writing free software and for encouraging otherpeople to use it. I don't want to see people get rewards for writingproprietary software because that is not really a contribution to society.The principle of capitalism is the idea that people manage to make money byproducing things and thereby are encouraged to do what is useful,automatically, so to speak. But that doesn't work when it comes to owningknowledge. They are encouraged to do not really what's useful, and whatreally is useful is not encouraged. I think it is important to say thatinformation is different from material objects like cars and loaves ofbread because people can copy it and share it on their own and, if nobodyattempts to stop them, they can change it and make it better forthemselves. That is a useful thing for people to do. This isn't true ofloaves of bread. If you have one loaf of bread and you want another, youcan't just put your loaf of bread into a bread copier. You can't makeanother one except by going through all the steps that were used to makethe first one. It therefore is irrelevant whether people are permitted tocopy it—it's impossible.

Books were printed only on printing presses until recently. It waspossible to make a copy yourself by hand, but it wasn't practical becauseit took so much more work than using a printing press. And it producedsomething so much less attractive that, for all intents and purposes, youcould act as if it were impossible to make books except by mass producingthem. And therefore copyright didn't really take any freedom away from thereading public. There wasn't anything that a book purchaser could do thatwas forbidden by copyright.

But this isn't true for computer programs. It's also not true fortape cassettes. It's partly false now for books, but it is still truethat for most books it is more expensive and certainly a lot more workto Xerox them than to buy a copy, and the result is still lessattractive. Right now we are in a period where the situation thatmade copyright harmless and acceptable is changing to a situationwhere copyright will become destructive and intolerable. So thepeople who are slandered as “pirates” are in fact thepeople who are trying to do something useful that they have beenforbidden to do. The copyright laws are entirely designed to helppeople take complete control over the use of some information fortheir own good. But they aren't designed to help people who want tomake sure that the information is accessible to the public and stopothers from depriving the public. I think that the law shouldrecognize a class of works that are owned by the public, which isdifferent from public domain in the same sense that a public park isdifferent from something found in a garbage can. It's not there foranybody to take away, it's there for everyone to use but for no one toimpede. Anybody in the public who finds himself being deprived of thederivative work of something owned by the public should be able to sueabout it.

BYTE: But aren't pirates interested in getting copies of programs becausethey want to use those programs, not because they want to use thatknowledge to produce something better?

Stallman: I don't see that that's the important distinction. More peopleusing a program means that the program contributes more to society. Youhave a loaf of bread that could be eaten either once or a million times.

BYTE: Some users buy commercial software to obtain support. How does yourdistribution scheme provide support?

Stallman: I suspect that those users are misled and are not thinkingclearly. It is certainly useful to have support, but when they startthinking about how that has something to do with selling software or withthe software being proprietary, at that point they are confusingthemselves. There is no guarantee that proprietary software will receivegood support. Simply because sellers say that they provide support, thatdoesn't mean it will be any good. And they may go out of business. In fact,people think that GNU EMACS has better support than commercial EMACSes. Oneof the reasons is that I'm probably a better hacker than the people whowrote the other EMACSes, but the other reason is that everyone has sourcesand there are so many people interested in figuring out how to do thingswith it that you don't have to get your support from me. Even just the freesupport that consists of my fixing bugs people report to me andincorporating that in the next release has given people a good level ofsupport. You can always hire somebody to solve a problem for you, and whenthe software is free you have a competitive market for the support. You canhire anybody. I distribute a service list with EMACS, a list of people'snames and phone numbers and what they charge to provide support.

BYTE: Do you collect their bug fixes?

Stallman: Well, they send them to me. I asked all the people who wanted tobe listed to promise that they would never ask any of their customers tokeep secret whatever they were told or any changes they were given to theGNU software as part of that support.

BYTE: So you can't have people competing to provide support based on theirknowing the solution to some problem that somebody else doesn't know.

Stallman: No. They can compete based on their being clever and more likelyto find the solution to your problem, or their already understanding moreof the common problems, or knowing better how to explain to you what youshould do. These are all ways they can compete. They can try to do better,but they cannot actively impede their competitors.

BYTE: I suppose it's like buying a car. You're not forced to go back to theoriginal manufacturer for support or continued maintenance.

Stallman: Or buying a house—what would it be like if the only person whocould ever fix problems with your house was the contractor who built itoriginally? That is the kind of imposition that's involved in proprietarysoftware. People tell me about a problem that happens in Unix. Becausemanufacturers sell improved versions of Unix, they tend to collect fixesand not give them out except in binaries. The result is that the bugs don'treally get fixed.

BYTE: They're all duplicating effort trying to solve bugs independently.

Stallman: Yes. Here is another point that helps put the problem ofproprietary information in a social perspective. Think about the liabilityinsurance crisis. In order to get any compensation from society, an injuredperson has to hire a lawyer and split the money with that lawyer. This is astupid and inefficient way of helping out people who are victims ofaccidents. And consider all the time that people put into hustling to takebusiness away from their competition. Think of the pens that are packagedin large cardboard packages that cost more than the pen—just to make surethat the pen isn't stolen. Wouldn't it be better if we just put free penson every street corner? And think of all the toll booths that impede theflow of traffic. It's a gigantic social phenomenon. People find ways ofgetting money by impeding society. Once they can impede society, they canbe paid to leave people alone. The waste inherent in owning informationwill become more and more important and will ultimately make the differencebetween the utopia in which nobody really has to work for a living becauseit's all done by robots and a world just like ours where everyone spendsmuch time replicating what the next fellow is doing.

BYTE: Like typing in copyright notices on the software.

Stallman: More like policing everyone to make sure that they don't haveforbidden copies of anything and duplicating all the work people havealready done because it is proprietary.

BYTE: A cynic might wonder how you earn your living.

Stallman: From consulting. When I do consulting, I always reserve the rightto give away what I wrote for the consulting job. Also, I could be makingmy living by mailing copies of the free software that I wrote and some thatother people wrote. Lots of people send in $150 for GNU EMACS, but now thismoney goes to the Free Software Foundation that I started. The foundationdoesn't pay me a salary because it would be a conflict of interest.Instead, it hires other people to work on GNU. As long as I can go onmaking a living by consulting I think that's the best way.

BYTE: What is currently included in the official GNU distribution tape?

Stallman: Right now the tape contains GNU EMACS(one version fits all computers); Bison, a program thatreplacesYACC; MIT Scheme, which is ProfessorSussman's super-simplified dialect of LISP; and Hack, adungeon-exploring game similar to Rogue.

BYTE: Does the printed manual come with the tape as well?

Stallman: No. Printed manuals cost $15 each or copy them yourself. Copythis interview and share it, too.

BYTE: How can you get a copy of that?

Stallman: Write to the Free Software Foundation, 675 Massachusetts Ave.,Cambridge, MA 02139.

[The current address (since 2005) is:
Free Software Foundation,51 Franklin St, Fifth Floor,Boston, MA 02110-1301, USA.
Voice: +1-617-542-5942
Fax: +1-617-542-2652]

BYTE: What are you going to do when you are done with the GNU system?

Stallman: I'm not sure. Sometimes I think that what I'll go on to do is thesame thing in other areas of software.

BYTE: So this is just the first of a whole series of assaults on thesoftware industry?

Stallman: I hope so. But perhaps what I'll do is just live a life of easeworking a little bit of the time just to live. I don't have to liveexpensively. The rest of the time I can find interesting people to hangaround with or learn to do things that I don't know how to do.