Date: Wed, 07 May 1997
From: David Bennahum

Interview with Richard Stallman,
founder of the Free Software Foundation

David Bennahum

In this issue of MEME:

"In 1971 when I joined the staff of the MIT Artificial Intelligence lab, all of us who helped develop the operating system software called ourselves hackers. We were not breaking any laws, at least not in doing the hacking we were paid to do. We were developing software and we were having fun. Hacking refers to the spirit of fun in which we were developing software. The hacker ethic refers to the feelings of right and wrong, to the ethical ideas this community of people had — that knowledge should be shared with other people who can benefit from it, and that important resources should be utilized rather than wasted." Richard Stallman, in MEME 2.04

This issue of MEME presents an interview with Richard Stallman, founder of the Free Software Foundation, recepient of a $240,000 MacArthur "genius" grant, and an inveterate hacker of the old-school. Stallman’s dream was to create "free" software for the people. Today, that dream is largely realized: several hundred-thousand people now compute for free using the Linux operating system in conjunction with programs from the Free Software Foundation. Without further delay, I’ll let Richard tell you the story, in his own words.

Richard, thanks for taking the time to talk with me today. I want to start our conversation by asking, what is the Free Software Foundation? Why is it important?

The Free Software Foundation is important because of the project it hopes to further, which is the GNU project. The GNU Project was started 12 years ago to produce a complete, free operating system which is compatible with Unix. At the time, that seemed like such a large project that it was daunting. Many other people might have liked to see such a thing, but it seemed like such a big job that they went on to do something else. I was determined to reach that goal. I started working by myself, and I invited people to join me, and more and more people started working on it. We looked around to see what free components were available, and we found some like X-Windows and the text-formatter TeX, and we pushed for some components to be made available as free software, such as the Berkeley networking utilities, and many components we wrote ourselves such as the GNU C compiler, GNU EMACS, the GNU Linker, the GNU C Library. Whatever we could not find already available, we had to write.

And the point was?

The idea of a complete free operating system is to make it possible to use a computer entirely with free software. The reason that I sought that goal has do with — Gee this is coming out all backwards. For some reason you are asking me about the means before we talk about the ends. Talking about the means first and then getting to the ends doesn’t make a clear picture.

All right, let’s talk about the ends first.

The question to ask is "what is free software and why is it important."

All right. What is it then, why is it important?

Free software is a matter of freedom, not price. Free software means that you the user have certain freedoms. The freedom to run the program, the freedom to adapt the program to your own needs by reading the source code and changing the parts that don’t suit you. The freedom to help your neighbor by giving your neighbor a copy of the program, and the freedom to help build your community by adding new capabilities to the program and releasing them so other people can use them and further build on them. This is important because it permits voluntary cooperation. It encourages civic spirit. Every society depends on good will to function. There is no other possible basis for a liveable world. People have tried alternatives to good will, for example one alternative was to have a centralized organization tell everybody how to work together. But that didn’t work well. Another alternative was to encourage everyone to be totally selfish, and hope that enlightened self-interest would encourage everyone to work together. But that doesn’t work well. The general fellowship that leads you to tell someone the time of day, even though you are not going to make any money from it, is what makes the world go round. The most fundamental way of helping other people is to teach people how to do things better, to tell people things that you know that will enable them to better their lives. For people who use computers, this means sharing the recipes you use on your computer, in other words the programs you run. Sharing software between computer users is the most natural form of cooperation. What I decided in the early 1980s was that using computers is only a good way of living if I could do this. However, by that time, most of the software people could use had owners that wouldn’t let people share the software or learn how it worked, or change it or improve it. Using software their way was not a way of life I wanted to participate in.

What happened at that time to make the world less willing to share software?

I went to MIT in 1971, and I became part of a community of people who shared software. This community went all the way back to the beginning of computation. It included various high-powered computer science departments, and sometimes computer companies — people who would write programs and share them with the whole community, and people would improve them. In fact, at MIT we entirely used software that was part of this community. We did not make big fuss over whether it was free, but if anyone wanted a copy, they could have it.

That’s because it was part of research?

Well, I don’t know if it was because of that. Not all the software was research software. Some of it was written for practical reasons, because we needed a time sharing system.

Who were some of the people with you at the time, at MIT, creating this?

Richard Greenblat, Jeff Rubin, were major system developers at the time. Dave Moon, somewhat later Guy Steele. Those were some of the ones at MIT. There were others at Stanford and Carnegie Mellon, Berkeley and other places.

What I mean is that it seems at some point people decided to no longer be sharing software the way they had been. .... What year was this?

This was around 1980, give or take a year or two. The next step in the process was when the kind of computers we used — we were using PDP-10s, and related computers since the 1960s — were discontinued. All of a sudden all our old work which was free software became obsolete — useless. You couldn’t use it to run any modern computers. All of a sudden in the early 1980s, if you wanted to get a modern, fast computer and run it, the only way to do that was to get proprietary software. It was a black box. The users had no freedom. Most people just accepted this, but I didn’t, because I was more concerned with the quality of life, with the quality of the community, than with simply technical matters. Yes, I love the technology of computers, I enjoy programming, but that wasn’t all that mattered to me, and I would not accept anything, no matter what, just to do that.

Is this what might be meant by the phrase the "Hacker Ethic?"

Somewhat. Indeed, the hacker ethic, I should explain first of all who hackers are. In 1971 when I joined the staff of the MIT Artificial Intelligence lab, all of us who helped develop the operating system software, we called ourselves hackers. We were not breaking any laws, at least not in doing the hacking we were paid to do. We were developing software and we were having fun. Hacking refers to the spirit of fun in which we were developing software. The hacker ethic refers to the feelings of right and wrong, to the ethical ideas this community of people had — that knowledge should be shared with other people who can benefit from it, and that important resources should be utilized rather than wasted. Back in those days computers were quite scarce, and one thing about our computer was it would execute about a third-of-a-million instructions every second, and it would do so whether there was any need to do so or not. If no one used these instructions, they would be wasted. So to have an administrator say, "well you people can use a computer and all the rest of you can’t," means that if none of those officially authorized people wanted to use the machine that second, it would go to waste. For many hours every morning it would mostly go to waste. So we decided that was a shame. Anyone should be able to use it who could make use of it, rather than just throwing it away. In general we did not tolerate bureaucratic obstructionism. We felt, "this computer is here, it was bought by the public, it is here to advance human knowledge and do whatever is constructive and useful." So we felt it was better to let anyone at all use it — to learn about programming, or do any other kind of work other than commercial activity.

So what happens in the early 1980s to change that? The arrival "black box" software?

The black box type of software was crucial. People could no longer learn hacking the way I did, by starting to work on a real operating system, making real improvements. In fact, in the 1980s I often came across newly graduated computer science majors who had never seen a real program in their lives. They had only seen toy exercises, school exercises, because every real program was a trade secret. They never had the experience of writing features for users to really use, and fixing the bugs that real users came across. The things you need to know to do real work.

Is that around when you resigned from the AI lab?

Well I resigned from the AI lab, but that’s getting ahead of the game. To explain why, now, would make a confusing order of things, so let’s talk about that later when I talk about how I went about the GNU project. I saw that the world, the social system that encouraged people to cooperate was being replaced by one in which cooperation was called piracy, and I decided that all I could possibly get by participating in that was money, and that just money was not enough to live for. I had to aim for something more important than that.

What was that?

Giving people freedom. I was a skilled operating system developer, I had the ability to try at least to change the way things worked. It was clear this was the most important thing I could try to do. By developing another operating system that was free I might or might not advance technology, but I could certainly advance society. I might give people technical abilities and features they didn’t have, but certainly, by succeeding to write the operating system, I could give them freedom they didn’t have. Giving people freedom and encouraging people to cooperate are the two highest goals of any work we can do.

When did this coalesce into a plan of action for you?

I decided on developing a new operating system in 1983. I concluded it should be a Unix compatible operating system for two reasons. First, I knew that Unix was portable, and therefore it was possible to make such a system portable. Portability had to be a major goal. I knew this project would take many years, and I did not want it to be tied to one computer, which might become obsolete and thus invalidate all the work. Second, by making the system [Unix] compatible there would be a large number of people who would be able to switch without having to throw away the work they had already done. If the had already their programs to run on Unix, they would be able to run on this Unix-compatible system. Having chosen the overall design, the next thing I needed was a name. I chose the name GNU as a recursive acronym, following an old hacker tradition for what you can do when you are developing a program that is compatible. GNU stands for GNU’s Not Unix.

What’s the image of the recursive algorithm?

Recursive acronym.

Recursive acronym? Why is that a reference to hackers?

Hackers love recursion.

How come?

How can I say? [Laughter.]

Why do ducks love water? I mean, recursion is a paradoxical thing? What is it?

You don’t know what recursion is?

Well, let’s just explain it.

Recursion is self-reference, when you define something in terms of itself.

Why do hackers like that?

Because it is sort of paradoxical that you can successfully define something in terms of itself, that the definition is actually meaningful. People assume that if you define something in terms of itself that you fail to define it all. But that’s not always true. The fact that’s not always true, that you can define something in terms of itself and have it be well defined, that’s a crucial part of computer programming.

So this inspired the name?

Yes. It inspired the tradition of recursive acronyms. It might seem when we say "GNU means GNU’s Not Unix" that it refers to itself, and yet at the same time it does perfectly well define this [its meaning].

When you started the GNU project where were you physically located?

I was still working at MIT when I conceived the project. But I had to resign from my job to make sure MIT couldn’t take the programs I had written and turn them into proprietary products and license them to companies. I was determined to enable the public to share this software, and I couldn’t take the risk of legally being prevented from doing so. So I resigned from my job, but the AI lab graciously let me continue to use their computers, and I’ve remained physically located at the AI lab, although not employed by it, ever since.

That’s great. What do you think their interest is in letting you stay there?

I don’t know. Old-time’s sake? They like some of the software and use it. A combination of things, I suppose. .... So I and friends just started writing things. After we had some useful software, the real surprise came when found how we could raise funds: by selling copies of free software.

How is that possible?

It seems like an impossibility. That is, if you use a simplistic economic model of the world, then it seems impossible to raise money by selling free software. People told me that, if everyone was free to redistribute the software, I would sell one copy and then whoever bought it would turn around and undersell, and we would never sell another copy again. But they are exaggerating. Anyone who says that people will never pay for something if they don’t have to is exaggerating fatally. Look at all the listener-supported radio stations in this country, all of whose money comes from listeners who are not forced to send it. In 1985 we founded the Free Software Foundation, which is a tax-exempt charity for free software development, to promote user’s freedom to share software. We get donations from people, but most of our funds have come from selling copies. Originally it was magnetic tapes, now it is CD-ROMs. Thousands of people buy our CD-ROMs every year....

Can you give me a sense of the ecology that’s grown around the Free Software project?

I know the bulk of software now will fill several CD-ROMs. In fact, there are now complete operating systems. The initial goal has been reached. As I was explaining in the false starts, we looked around at the components that were missing. By three years ago, all the essential components existed, except for the operating system kernel, which is one of the most essential components. ... It happens that most people call GNU systems Linux systems, identifying the whole system with the kernel, but the result is that the initial goal of the project has in effect been reached. It is now possible to use a computer and do electronic mail, edit your papers, develop software, publish books — with free software entirely. People now have an alternative to the ugly way of life that four years ago was the only choice. ...

The other trend right now is the arrival of the Internet among consumers. There is this battle right now to distribute proprietary multimedia protocols on the Internet. Do you see this as some kind of opportunity for the Free Software Foundation?

I don’t know. I’m not a businessman, I do not look at the world with a businessman’s point of view. My view of the world is there is a long list of things we need to be able to do with free software. I’m not terribly concerned with which we get this year and which we get next year, we’re just going to continue chipping away. We’re going to work unceasingly, eventually we are going to get them all. I don’t see this in terms of trying to conquer the world. I’m more concerned with teaching people to value freedom, rather than making a killing and having a big success.

I didn’t mean that would make money off of this.

I understand. But the point is, I don’t tend to think in terms of "gee, do we have a big opportunity this month." Free software is not the sort of thing where you can say, "this month, let’s develop this thing." A lot of it is done by volunteers, and they choose what they are going to do. They write what they feel like writing. I can give them suggestions, but what they do is up to them. I don’t try to match what we are going to develop to this particular month’s excitement. I just say, "what are things we’re missing that are the most important things," then I encourage people to work on them.

People speculate that the Internet will become a kind of operating system, that we will be plugging into this computer utility.

I can’t see that as making any sense. As computers get faster and faster, and what I want to do stays the same, the reason I would want to use any computer, except the one I am typing on, gets less and less.

What about the element of somehow sharing data and the communications side?

Well, communicating with people is very very useful, and having the Internet for that is very important. But what you brought up before is plugging into a computer utility. What that means to me is that you are executing your programs on some computer somewhere else. I see no reason for that. But getting information from other computers is very useful....

The Free Software Foundation is a non-profit organization because I can’t foretell the future. As the kind of prophet who predicts the future, I would be a flop.

Is there anything you want to add that I haven’t brought up?

The problem is we’ve gone over things in an unusual way. Gee. I don’t know if there is anything else we should talk about. You might want to ask me whether people make money from developing free software.

Why don’t you tell me how someone can make a buck off this system.

Two ways that have worked so far include selling — I’ve already mentioned how the Free Software Foundation raises money by selling copies — but another method is selling support. A lot of people, especially organizations that use software, want to have support. Just because the software is fee doesn’t mean the support happens automatically. There are people who are interested in paying to get support. This provides an opportunity for the author of a free program, and other people, to go into business. On the one hand, the author has an advantage because the author knows the program quite well and people expect him to do a good job [of supporting the program he wrote]. However, the author does not have a monopoly. Other people can start offering support for free software, this means that there is a free market for support and services....

Why is that?

I don’t know why the myth exists. But, I do see people believe this, yet at the same time people’s experience of support for commercial software is typically lousy. If you find a problem and send in a bug report, they probably don’t admit there is anything wrong. Or maybe they’ll say to you in six months you’ll be able to buy an upgrade and maybe it will get fixed. That’s the most you can get unless you are a gigantic corporation with clout. With free software, if you want the problem fixed tomorrow, you have a choice of people who can do just that for you. If I were running a business, and I wanted some kind of equipment, I would not choose the equipment that was served by a monopoly that I could sue if they weren’t doing a good job. I would choose equipment which I could get serviced or repaired or adapted by a lot of people, so that if the first one I tried didn’t do the job I could try someone else. Support is the sole business of these support companies, so they have to provide good support. Free software is in fact very important for businesses. The freedom to change a program might sound like something only hackers would care about, but actually it is very important to businesses. It means you are not at the mercy of one monopolistic company.

You created this term called "copyleft." What does this mean?

I don’t simply want many people using the program I wrote. I want people to have freedom — all of them. So I set up a set of distribution terms designed to ensure that every user gets the freedom, and this is called copyleft. Copyleft says that everyone can redistribute this program, everyone can modify it, but no additional restrictions can be added in the process. Every copy, whether it is verbatim or modified, must have all of these freedoms for everyone who has a copy.

Otherwise the system would get closed again.

Exactly. The system of copyleft achieves two things. It makes sure every user who gets a copy gets the freedom, but secondly it also encourages improvements that are made to feed back to the whole community. It is very common for someone to make an improvement in a GNU program, but these people often work for companies, or a university, and both these days are mostly looking for financial advantage, so the person who wrote the improvement might want to share it with the community, but that doesn’t mean the employer will approve it. If they see financial gain from withholding the improvement, they are likely to do so. Copyleft makes that impossible. So the improvements get released and everybody benefits.

If people want to get GNU software, how do they do it?

We’re listed in the phone book in Boston, Massachusetts.

You want to give me the number?

It’s 617-542-5942, or fsforder@gnu.ai.mit.edu. People interested in volunteering, who want to write software — this would be experienced programmers only — they can send mail to gnu@gnu.ai.mit.edu. I don’t want to be too pushy.


Meme 2.04 and its contents copyright 1996 by David S. Bennahum. First spawned by Into The Matrix at http://www.reach.com/matrix. Pass me along all you want, just include this signature file at the end. (shortended for zkp4)