Richard Stallman, the founder of the Free Software Foundation and The GNU Project, has had a consistent message about freedom for computer users for over 23 years. His first experiences with computers predate his work with the MIT AI Lab, which began in 1972. When I began researching for this interview, I had a different concept of Free Software and Open Source – so much so, that I rarely distinguished between the two. After nearly two months since my initial contact with Mr. Stallman, I’d like to think that I have a better grasp on the differences between them. I’ve also learned that Richard Stallman’s vision for Free Software – that’s “Free” as in “Free Speech” – has remained his primary focus.
You’ve been a programmer for longer than most common folk realize computers have even been around. What is it about programming that you enjoy most? What compels you to code?
These days I can’t say that anything compels me to write software, since I don’t do it very much anymore. In the early days of development of the GNU system, most of my work was developing parts of the system. These days, my work is mainly that of an activist and organizer. I give speeches about the ideals of free software. While trying to promote the free software movement, I also manage the Free Software Foundation and the GNU Project.
Where and what were your first experiences with computers and programming like for you?
My first experience with programming occurred when I was around ten years old. One year at summer camp, a counselor brought with him a manual for MAD. Another year, a counselor had a manual for 7094 assembler language. I read these manuals and began writing programs on paper, because I was totally fascinated. There was no computer and I never tried to run these programs. They were not useful for anything anyway; since I had no computer, I also had no real need to do anything with software. What I had was a yearning to write a program.
How do we encourage young people to become programmers? What is it that makes it such a satisfying profession for you in this context?
I am not sure we should try. The youth with the best aptitude for programming don’t need encouragement, just an opportunity. To learn to write good, clear code, they need the opportunity to read and study lots of real code, and then try to change it. The best way to create this kind of opportunity is to switch to free software on the computers at school. That way, when they ask how the system programs work, the teacher will be able to give them an answer. And when they say, “That’s not enough — I want to understand EVERYTHING about this program!” the teacher can respond, “Ok, here’s the source code. Read it, and if you find anything you don’t understand, show it to me and we will try together to figure it out.” Then they can practice writing the comments that the program should have had to explain the point that was unclear, or changing the program to be clearer.
How have your programming experiences shaped your views about software licensing models?
Working at the MIT AI lab in the 70s gave me the experience of living in a free software community. However, from time to time I got a nasty whiff of the restrictions of proprietary software, and I did not like it. In 1982, when the old community died, and I faced the prospect of a life of using and developing proprietary software. It was so disgusting that I refused to stand for it. I decided to escape.
What did you do to escape?
Those events did not happen instantly. It took about a year, and my manner of escaping was developing GNU.
What is Free Software all about?
Free software means software that respects the user’s freedom. Free software does not mean that the price of a copy is zero. It has nothing to do with price; it is free as in freedom, not free as in price. To keep the distinction clear, think of “free speech, not free beer”. To be more specific, there are four essential freedoms that every software user should have:
0. The freedom to run the program as you wish.
1. The freedom to study the source code, and then change it so the program does what you wish.
2. The freedom to distribute copies to others, when you wish. This is the freedom to help your neighbor. It includes both giving away copies and selling copies.
3. The freedom to distribute copies of your modified versions to others, when you wish. This is the freedom to contribute to your community.
A program is free software if the user has all four of the essential freedoms. There are many different software licenses which grant all four freedoms, and they are called “free software licenses”. See http://www.gnu.org/philosophy/free-sw.html for more detail. Free software is the ethical way to distribute software, and all software should be free.
Free Software and Open Source are often treated as synonymous, but you say they are very different. How would you explain or define the difference?
The basic ideas of free software are ethical ideas about freedom and community. The technical plan to develop the GNU system followed logically from the ethical goals. The GNU/Linux operating system caught on widely in the 90s among techies. Many of them appreciated its practical advantages such as power, reliability, efficiency, and absence of license fee. But many techies are uncomfortable thinking about issues right and wrong. (In fact, many say that technology should be kept pure and untouched by any sort of criteria of social responsibility.) So a split developed between those who appreciated freedom and those who did not want to talk about it. In 1998, the latter group adopted the term “open source”, so that they could take a new approach to the public which focused on practical values, and did not refer to freedom and social solidarity much, if at all. See http://www.gnu.org/philosophy/open-source-misses-the-point.html for more explanation.
1984 was the year that the IBM AT PC was introduced, MS-DOS 3.0 was released, and Karmarkar released his linear programming algorithm.
Those things did not influence me at the time. The only thing I needed to know about the IBM PC in 1984 was that it was a 16-bit computer and thus inadequate for my purposes. The only thing I needed to know about MS-DOS was that it was proprietary software and thus not ethical.
Professionally, what were you doing in 1984?
On Jan 5, 1984, I resigned from my job at MIT’s Artificial Intelligence Lab to begin developing the GNU operating system. During that year, most of what I did was work on developing components of GNU. The purpose of GNU was to be a complete free software operating system, so that users could run their computers and have freedom as part of a community of freedom. Of course, a system requires technical design decisions. I decided to make GNU a Unix-compatible system so that it would be portable and easy to switch to. That’s why I gave it the name GNU (it is an acronym for “GNU’s Not Unix”). I also decided for technical reasons not to try to support 16-bit computers such as the PC AT. To make the programs small enough to run in such a small address space would have been too much extra trouble. I figured that by the time GNU was finished, people would have 32-bit computers. And so it turned out.
What was happening with AT&T that led you to your ‘new UNIX implementation’ post on net.unix-wizards?
Nothing was happening with AT&T that made any difference to me. I had never been a Unix user, and my decision to develop a free operating system had nothing to do with AT&T in particular. AT&T’s systems were proprietary like those of IBM, DEC, Apple, Microsoft, and others. The only relevance of AT&T was that Unix had a design that was convenient to follow. I chose that design for the technical reasons stated above. At the time, I had read about Unix, but never seen it run. I first used Unix around the start of 1984 when I began to work on developing GNU.
What operating systems were you using at MIT?
What other factors prompted you to start the Free Software movement?
The situation for computer users was that all operating systems were proprietary (non-free). Since a computer won’t run without an operating system, that meant it was impossible to get any modern computer and run it without losing your freedom. That problem needed a solution, and the solution I thought practical was to develop a complete free operating system.
How has the Free Software philosophy changed or evolved since then?
It took a few years for me to recognize the need to distinguish between the two meanings of “free” — “libre” and “gratis”. In the GNU Manifesto, published in 1985, I didn’t make that distinction because I had not recognized it yet.
I understand that TRIX was, at one point being considered for the GNU kernel. Why was this dropped?
I thought about using TRIX, but never actually started to use it, because I found that it would need a lot of work before we could use it. It seemed better to keep looking. In 1990, after I got assurances that CMU would release the Mach microkernel as free software, I decided that we would develop a collection of servers to run on Mach. The FSF hired a programmer to develop it.
How was GNU kernel development affected by the release of the Linux kernel?
At the beginning, it was not affected at all. In fact, Linux was not free software at first, because its license did not allow commercial distribution. Later, in 1992, Linux became free software, and we put substantial effort into supporting the GNU/Linux system, but we continued development of the GNU Hurd. See http://www.gnu.org/gnu/gnu-linux-faq.html for more explanation of the relationship between GNU and Linux.
Was GNU kernel development stopped?
It continues as a volunteer activity. In the late 90s we decided that finishing our kernel was no longer a priority for the FSF’s funds, since the existing free kernel (Linux) was good enough.
What became of the Hurd?
The main Hurd developer has decided that we need a new microkernel in order to make it really work. He is now writing one. Perhaps someday the GNU Hurd will work well and become a success — I would like to see that happen.
While the spirit of previous versions of the GNU GPL are maintained, GNU GPL3 appears to be much more complex. What necessitated this complexity?
We had many issues to deal with in revising the GNU General Public License, and the first priority was to address them well. Making the license short was a lesser priority. It is as long as it needs to be.
What were some of the factors that required a new version of the GNU GPL?
International uniformity, explicit software patent licenses from contributors and distributors, systematizing added permissions and license compatibility, being compatible with a few more licenses, preventing deals like the Novell/Microsoft deal, prohibiting tivoization,thwarting unjust DMCA-style laws, more forgiving termination, adjusting the system library exception, dealing with hosting companies, permitting distribution with BitTorrent, permitting internet release of source code for a physical product, etc. That’s not a complete list. See the rationale document (PDF) on gplv3.fsf.org.
What has changed with the proprietary licensor approach, since June of 1991, when the GNU GPL2 was released, and June of 2007, when GNU GPL3 was released that required such a change in the license language?
As you can see, a few of the issues in the above list are of that kind, but most are not.
What barriers or concerns, if any, do you see developers having in adopting the GNU GPL3?
The opposition to GPL v3 seems to be mostly irrational, and coming from Linus Torvalds.
What kinds of irrational things do you hear from Linus Torvalds – and others – regarding GNU GPL3?
He derides the idea that freedom for computer users is important, and champions GPL version 2 over version 3 based on incorrect reasons.
A certain large company (Microsoft) has recently tried to argue that they are “exempt” from the GNU GPL3. How are issues like that addressed? What resources are available to fend off these types of attacks? (Does this mean GNU GPL licensees are exempt from the dreaded EULA of said company?)
The GNU GPL is based on copyright; for anyone to claim to be “exempt” from it is like claiming to be exempt from copyright law. Nothing needs to be done to address such claims except to say we don’t recognize them. However, when anyone redistributes a program in violation of the GNU GPL (whichever version), or any other free software license, the copyright holders of the program in question need to take legal action against the violator.
Not all developers have the resources to begin legal action, regardless of violations. Are there organizations or resources available to developers in this respect?
SFLC will help nonprofit free software developers.
Do you or the FSF still have a relationship with UNESCO?
Why not? What changed or happened?
I don’t know for certain, but I heard a rumor that Bush made UNESCO drop its support for free software when the US rejoined UNESCO. Bush has a long history of supporting Microsoft. For instance, he let Microsoft off the hook of its second US felony conviction, with an agreement that gave an appearance of restraining Microsoft, but in practical fact had no effect on it. I’ve heard that this was payback for campaign contributions. This practice continues. The US Trade Representative has pressured some other governments to be Microsoft customers, and just recently the administration told various US agencies to support Microsoft’s bid to fast-track OOXML as an ISO standard.
What principles or concepts of Free Software can be applied to the content of educational classes?
Educational materials ought to be free, in the same sense of the four freedoms, because educational materials are also works that you use for a practical purpose in your life (learning or teaching).
Were you in anyway influential or involved in MIT’s decision to offer it’s OpenCourseWare?
No, and if they had consulted me, I would have pressed them to adopt a free license for these materials. The license they use is not free: it is limited to noncommercial distribution. That’s ok for art, but not for educational materials.
To what would you attribute the broader acceptance and use of Free Software by consumers of late?
I don’t keep watch on measures of consumer acceptance, so I don’t know if that has occurred. But if it has, I can guess possible reasons. Since 5 to 7 years ago, we have had convenient graphical interfaces. In the past few years, some distributions of GNU/Linux have become much easier to install and configure. In addition, we have free office productivity suites.
Do you see this acceptance continuing to gain momentum? How do you see the “big picture” changing in this respect?
I can’t foretell the future because it depends on you, and on your readers. The more users come to value freedom, and think as citizens, the more they will insist on freedom-respecting software. But if they continue to think as consumers, valuing short-term convenience at the expense of freedom, then the future of freedom will be at the mercy of practical side issues. The main obstacle to the triumph of free software is social inertia. Microsoft plays very expertly with social inertia. If you always take the easy way out, you let Microsoft herd you into positions of ever-deeper dependency and weakness. Which way will you decide your future?