Around 20 years ago a programmer at MIT quit his job to develop a complete and free Unix-style operating system--the GNU system. That programmer was Richard Stallman, also known as rms, the founder of the Free Software Foundation.
Since 1984 he has fought for software freedom and created the concept of free software. Software is considered free if users have the following four freedoms:
Copyleft licenses protect these four freedoms. The most prominent license is the GNU General Public License, which allows the author to retain a copyright and permits redistribution and modification under terms designed to ensure that all modified versions of the software remain under copyleft terms.
In this period of threats to freedom, Federico Biancuzzi interviewed this freedom paladin.
FB: GNU/Linux (the complete OS!) is probably the most known free software project. What do you think about the fact that Linux (the kernel!) uses a proprietary program to manage its source code?
RMS: It is unfortunate when anyone uses proprietary software. Using it publicly for the development of a prominent free software package is particularly unfortunate, because it sets a bad example for the community.
FB: Isn't there any free alternative under development?
RMS: There are already free programs that do the same basic job. Linus Torvalds feels they are not convenient enough, and he values convenience more than he values standing firm for freedom. I think that is leading the community in the wrong direction.
As part of the GNU Project, Tom Lord is developing a new free source control system called Arch, which we hope will outdo the proprietary ones.
But just because we are competing with proprietary software on issues of technical merit doesn't mean we think people should choose the program for source control based on technical qualities alone. That would mean assigning zero value to freedom itself. If you value freedom, you will resist the temptation to use a program that takes away your freedom, whatever technical advantages it may have.
FB: What do you think about proprietary software? Does it have low quality? Is it unsecure? Does it restrict freedom too much? Is it unethical?
RMS: Proprietary software is unethical, because it denies the user the basic freedom to control her own computer and to cooperate. It may also be of low quality or insecure, but that's a secondary issue. I will reject it even if it is the best quality in the world, simply because I value my freedom too much to give it up for that.
FB: Would you accept a federal law in the United States to enforce the distribution of source code with every type of software?
RMS: I am not calling for such a law as of now, but I think that would be a valid consumer protection measure--like requiring food products to publish the list of ingredients.
Of course, some software companies would object to this, just as some food companies resisted the requirement to publish the ingredients and nutritional information. The question should not be up to them.
FB: Which license do you think should be chosen?
RMS: I don't understand that question clearly. Chosen by whom, for what?
FB: I mean if such a law were to pass, which license do you think the government should impose for software source code?
If the government gives any company freedom to choose or write a license for its source code, probably most of them will be very restrictive, something like "look but don't touch."
RMS: The question was about a hypothetical law requiring "every type of software to be distributed with its source code." This would not require any particular license for that source code; it would only require that the user get the source code. How users can use the source code is a separate question.
To consider that question, we have to start by asking ourselves what might limit the user in his use of said source code. The answer is, only government-enforced restrictions such as copyright law and contracts. So if the government wants to ensure that all source code is free software, it doesn't need to intervene to achieve this. It need only stop intervening to make the source code nonfree.
FB: Do you think it's a good idea to port a free software project to a proprietary OS such as Windows?
RMS: Porting free applications to nonfree operating systems is often useful. This allows users of those operating systems to try out using a few free programs and see that they can be good to use, that free software won't bite them. This can help people overcome worries about trying a free operating system such as GNU/Linux. Many users really do follow this path.
However, we need to be careful to avoid suggesting that the purpose of free applications is to be used on a proprietary system in that way. Using free applications is a step forward, but it doesn't take you all the way to freedom. To reach that destination, we need to avoid the proprietary software that denies users their freedom.
FB: Don't you think that having all those tools free of charge will let common users on that platform?
RMS: I don't quite understand this question, but I should mention that "free software" means "software libre." It is not necessarily "free of charge." There are companies that sell thousands of copies of free software every month.
FB: I do know the difference between free as "free beer" and free as in "freedom." This question is about "free beer." There are a lot of free software that comes free of charge. What I want to underline is the fact that most of the proprietary software for proprietary operating systems costs money. Imagine a common computer user, one that doesn't even know about software licenses. He bought his new computer and paid $100 for Windows. Now he would be able to use, free of charge, a lot of free software. Why should he try GNU/Linux? You say "freedom."
RMS: Yes, and I will keep saying "freedom." The advantages of saving money are sufficiently obvious--people don't need me to explain that. However, our age emphasizes money so much that people sometimes forget to value freedom. That is something we need to remind them about.
FB: OK, but how can we explain to him that he should change his OS because his current one doesn't provide the source code under a free-software license? He doesn't even know what source code is!
RMS: Free software is controlled by the users. When you get a copy, you own it.
If you buy a house, you are free to change it. If you don't know how to change it yourself, you can hire a carpenter or a plumber to change it for you. The same with software. Every user can take advantage of the the freedom to change the software. If it's free, you can persuade your cousin the programmer to change it for you, or you can hire someone.
Nonfree software is controlled by its developer. The developers often implement malicious features--for example, to spy on the user or to restrict the user. Sometimes they keep the malicious features secret. But they also figure that people will be so desperate for the software that they will accept it even with malicious features. Users can't remove the malicious features, because they don't have the source code.
This cannot happen with free software, because free software is controlled by the users. If ever a free program had a malicious feature, any programmer could remove the malicious feature and release a modified version--and all users would choose that version, including nonprogrammers. You won't have to make this change yourself, because someone else will have done the job for you before you get it.
The users of free software also decide how to develop it. On most issues, most users want the same thing. Sooner or later, some user who knows how to program, or has money to pay for changes, will make the changes that you want.
FB: What is your opinion on the fact that Linux (the kernel!) supports binary drivers without too many problems? I'll make an example: the OpenBSD project didn't support Atheros wireless chips because they require a binary HAL provided with an incompatible license for their goals and policy. They act consistently. Do you think that Linux (the kernel!) should try a similar rigorous approach?
RMS: Yes! And so should the developers of GNU/Linux distributions. This is very important.
FB: Do you think that hardware manufacturers should make public all the datasheets, docs, specifications, and details about their products? Something like free (as in freedom) hardware?
RMS: If a hardware developer won't tell you how to use the hardware they sell you, don't buy it.
I am not campaigning for laws that would require all software to come with source code, but I do think that governments should require all new computer hardware that is sold commercially to come with full specifications.
FB: Would you sign and promote a petition or an initiative for free access to hardware specifications?
RMS: I'd endorse any sort of nonviolent democratic political activity to promote such a law.
FB: It seems that Sun Microsystems wants to release Java source code. Do you think that a language such as Java could spread more if it were covered by the GPL?
RMS: I think that's a secondary question. Whether a particular programming language becomes more or less popular is just a technical issue. That Sun's Java platform is nonfree is a social, ethical issue--more important than a merely technical issue.
We're not waiting for Sun to start respecting our freedom. We're developing free replacements for all the various parts of the Java platform. We don't have all the features yet, but you can write and run Java programs.
If you develop a Java program on Sun's Java platform, it won't really be platform-independent; it will depend on a specific proprietary platform. If you use our Java platform to develop it, then it really will run on all platforms.
FB: Don't you think that the problem is who controls its development and with what aim?
RMS: The problem with proprietary software is that a specific developer controls its development--you, the user, do not. Every nonfree program has a lord, a master--and if you use the program, he is your master.
Different masters have different aims; some masters are nicer than others. However, comparing one master with another is a distraction from the real issue, which is liberty. Liberty means is not having a master. With free software, you do not have to worry about what aims the master has for developing the program, because you are free to decide for yourself.
FB: What do you think about reports that Sun Microsystems will create an open source project around its Solaris 10 operating system?
RMS: I am not sure what that means concretely, and I do not advocate open source. If Sun makes Solaris free software, then it will be respecting the users' freedom. That is the right thing to do. Making Solaris free would be a substantial contribution to the free software community, but since we already have software (GNU/Linux) that does more or less the same thing, it would not be a major contribution such as OpenOffice was or as freeing Java would be.
FB: Do you think to promote something like a fork or maybe replace Hurd with its kernel?
RMS: I do not understand that question. Fork of what? Replace Hurd with whose kernel?
FB: I was talking about replacing the Hurd kernel with the Solaris 10 kernel (obviously only if free software).
RMS: This would be possible, but I don't see a purpose in it. There is already a free kernel that works quite well with the GNU system--namely, Linux. Why would we want to replace it with the kernel of Solaris?
FB: For the same reason GNU develops Hurd?
RMS: When we started developing the Hurd, there was no free kernel. Our motive was to get a free kernel.
Since we now have a free kernel that works, namely Linux, it's no longer essential to develop the Hurd. We are continuing to work on it for two reasons:
Neither of these advantages applies to the idea of using Solaris.
FB: What is the status of Hurd development?
RMS: The Hurd runs, but not reliably. The developers are working on it slowly now, although one is arranging to get funds to work on it a substantial fraction of his time. The developers have concluded that Mach is unreliable as a microkernel and that they need to transplant the Hurd to L4 instead. But this requires substantial rewrites.
FB: What type of competition there will be between a complete GNU/Hurd and GNU/Linux?
RMS: When GNU/Hurd is running reliably, it and GNU/Linux will both be free operating systems (provided one does not add nonfree packages to them). So the choice between them would be a purely practical choice. I hope that the Hurd will offer increased power from its architecture.
FB: This is a bit long to read ...
Quoting from The Hurd and Linux:
When we started developing the Hurd in 1990, the question facing us was, "How can we get a free kernel for the GNU system?'' There was no free Unix-like kernel then, and we knew of no other plan to write one. The only way we could expect to have a free kernel was to write it ourselves. So we started.
Quoting from Linux and the GNU Project:
Aside from GNU, one other project has independently produced a free Unix-like operating system. This system is known as BSD, and it was developed at UC Berkeley. It was non-free in the 80s, but became free in the early 90s.
Quoting from Open Sources: Voices from the Open Source Revolution:
The BSD originated networking code and supporting utilities were released in June 1989 as Networking Release 1, the first freely-redistributable code from Berkeley.
The licensing terms were liberal. A licensee could release the code modified or unmodified in source or binary form with no accounting or royalties to Berkeley. The only requirements were that the copyright notices in the source file be left intact and that products that incorporated the code indicate in their documentation that the product contained code from the University of California and its contributors. Although Berkeley charged a $1,000 fee to get a tape, anyone was free to get a copy from anyone who already had received it. Indeed, several large sites put it up for anonymous ftp shortly after it was released. Given that it was so easily available, the CSRG was pleased that several hundred organizations purchased copies, since their fees helped fund further development.
Reading these pages, I found something that I don't understand: if BSD was already available in June 1989 with a free license, why didn't you start with its kernel instead of writing Hurd from scratch? The same question is valid for the choice of the Linux kernel in 1991.
RMS: Only parts of BSD were available in June 1989 with a free license. Look carefully at what it says here:
The BSD originated networking code and supporting utilities were released in June 1989 as Networking Release 1
The "BSD-originated networking code" is just a part of a kernel.
FB: What type of free license were those parts using?
RMS: I think it was the original BSD license, same as BSD 4.4 later, but I am not certain.
FB: Wasn't that BSD license free enough?
RMS: This license does qualify as free software, but I think it is not as good as some free software licenses because it doesn't protect the freedom of all users. It allows middlemen to make the software proprietary, which means they distribute the software to others but without the freedom.
FB: Why have you chosen to write a new license (the GPL)?
RMS: I think I see a confusion here. My decision to develop GNU licenses had nothing to do with any of the BSD licenses. The BSD licenses were used after the GNU GPL.
In 1985 or 1986 I visited the people at Berkeley CSRG and asked them to please separate their work from the AT&T Unix code. I asked them to release their code as free software rather than making it available only to AT&T licensees. I did this because I wanted to be able to use BSD code in GNU.
FB: I know you are the founder of the free (as in freedom) software movement; however, I don't understand how you could define as freedom all the limits that the GPL imposes. For example you must make available modified source code for software released to the public, and it must be under the same GPL. It seems to my eyes that the BSD license gives more freedom to users, developers, and businesses. Am I wrong?
RMS: This is what ensures that the users have the four freedoms. The BSD licenses do not ensure this, and thus not all users have these freedoms.
The BSD licenses (there were more than one of them) do not give more freedom. What they offer, to those who can take advantage of it, is power: power to deny others' freedom. That is not a good thing.
See this page for more explanation.
FB: The first GPL version dates from February 1989. A second version came out in June 1991. Why?
RMS: I don't remember what the specific changes were, but you could compare the two versions and see. We made each change for a very specific reason. It is like releasing version 1.2 of a program: you find bugs, so you fix them.
FB: Is there any version 3 planned?
RMS: We are working on another version, but there are some places where we are not sure of what is right to do.
FB: Why is the GPL so long and full of legalese?
RMS: The GPL is a legal document, so it is written in legalese. Otherwise it would not work. It has the simplest words I could find that unambiguously state these conditions clearly.
FB: On October 7, 2004, Jeff V. Merkey made the following offer on the linux.kernel mailing list:
We offer to kernel.org the sum of $50,000.00 US for a one time license to the Linux Kernel Source for a single snapshot of a single Linux version by release number. This offer must be accepted by **ALL** copyright holders and this snapshot will subsequently convert the GPL license into a BSD style license for the code. In other words, what we are asking for is the ability to snapshot kernel.org at 50K a pop for a license to each 2.<even number> release, then take any even number release private. This allows all changes to a 2.<even number> release to be used for a particular release per license without returning changes. This money will be made payable to kernel.org and must be accepted by everyone.
What do you think about this offer?
RMS: It would be foolish for people to accept. Why let him provide Linux to users without respecting their freedom? If I had contributed to Linux, I would say no to him, and insist that he must respect the users' freedom.
I have not written any part of Linux, but that's what I do regarding the programs I have developed.
FB: Some developers promptly refused the offer, so it seems there are no chances to see a BSD-licensed Linux snapshot.
RMS: Good on them!
FB: However, I'm wondering if this situation will change in the future; after all, Linux already uses a proprietary software to manage its source code. It could be a really bad example for the free software movement: giving away freedom for money. Do you have any plan to be sure this would never happen?
RMS: I can't see the future, but I would guess that the people who said no this time will keep saying no.
Linus sets a bad example for the community by using nonfree software in this prominent, public way. I criticized him on the linux.kernel list when he did it, and I think that by raising the issue I helped dissuade other projects from doing likewise--if so, that has reduced the harmful effects of this example.
The FSF cannot do more than that in regard to Linux, since we are not involved in development of that particular program.
FB: Today Linux is just a kernel, so you still have direct control over other parts of the OS. That's why the name GNU/Linux for the complete OS.
RMS: That isn't what the name GNU/Linux means; it has nothing to do with that. The name GNU/Linux means that the system started out as GNU, with Linux added.
Nowadays, the system includes thousands of packages developed by thousands of developers, but at the base it is still GNU with Linux added.
FB: Thanks for this explanation. I think I wasn't the only one with this wrong idea, because the Debian project homepage states: "Debian uses the Linux kernel (the core of an operating system), but most of the basic OS tools come from the GNU project; hence the name GNU/Linux."
Have you ever thought that one day Linus Torvalds could choose to become the leader of a GNU/Linux distribution?
RMS: No, because he has always said he isn't interested. If he wants to do it, of course he is entitled to. Anyone can do this.
FB: Today the magic word in IT is Linux, and there's a lot of confusion between the meaning of free software and open source, and Linux and GNU/Linux. Don't you fear that GNU and the FSF could lose acknowledgment and influence in that case?
RMS: The word fear is rather strong. What I feel is concern about a real problem. The GNU Project loses influence when people attribute our most important past work to someone else, and that reduces the effectiveness of the work we do today.
Tens of millions of people now use an operating system that was developed as a sustain campaign for freedom--something unique in the history of computing--and they don't know it. The name Linux has never been associated with making freedom the goal; that idea is associated with the name GNU. When people think the system is Linux, they learn a false picture of why it was developed. They think it was developed by Linus Torvalds, who wanted to learn and have fun.
Both enjoyment and freedom can motivate people to develop free software; each of these motivations can inspire people, if they know about it. I want the users of GNU/Linux to know that the system exists for the sake of freedom, because then some of them will be inspired to join in defending our freedom. There are never enough defenders of freedom in the world.
FB: As you said, there are "never enough defenders of freedom in the world"; however, DistroWatch.com counted more than 350 GNU/Linux distributions. Don't you think that this is a dispersion of resources?
RMS: There is a certain amount of waste, but not as much as you would think. Many, probably most of these distros are derived from other distros, and maintaining a derived distro is not a lot of work.
FB: How would you define Apple's Darwin? Both proprietary and open source?
RMS: Darwin is currently free software, not proprietary. (It is also open source.)
However, two years ago some of the code in Darwin had a different license. It was open source, but it was not free software.
FB: I was looking at the operating systems market of the past few years. I think that every Mac OS X release keeps adding innovations that improve the experience of its users, but I don't see this type of improvements in any commercial (Red Hat, Mandrake, Novell/SuSE ...) GNU/Linux distribution. It seems to me that these big companies build a complete product simply putting together the result of various external projects. They take Linux (the kernel!), GCC, and other GNU utilities, XFree/X.Org, KDE/Gnome, and so on. Where are the innovations for the user?
RMS: Your last question embodies the assumption that innovation is what we want and freedom is secondary. I think it's just the opposite: freedom is most important, and innovation is nice as long as we maintain our freedom.
I never asked myself whether free software would mean more innovation, because what I want is freedom. Free software is software that respects your freedom. Proprietary software denies the user freedom. If proprietary software is innovative, I still won't use it. I've fought for 20 years for my freedom and yours, and I won't give it up just for the sake of convenience.
Innovation is good when it respects people's freedom, but bad when it is bait for people to give up their freedom.
FB: I was talking about business companies that already defend freedom releasing free software, so freedom is already there. They can innovate or not. That's just an aspect of business. They could prefer to spend money on big marketing ads. The only suspicion was that the GPL could be a deterrent to innovations.
RMS: The GPL prohibits nonfree modifications. The only "innovations" which the GPL might interfere with are those that would be nonfree. Do you see a problem in that? I don't. If a program is nonfree, it is an attack on social solidarity. I am glad if I can prevent that program from being developed.
FB: I read that Microsoft claimed that GPL kills innovation for businesses.
RMS: The GPL is designed to protect the freedom of free software. It says that modified versions of the software must be free as well. This is what Microsoft does not like. Microsoft thinks it should be entitled to use our work in its own products--even when those products are proprietary.
Microsoft won't let us use their source code in our programs, but they think we are obliged to let them use our source code in their programs. Microsoft says, "What's mine is mine, and what's yours is mine."
But will our protection of the users' freedom prevent certain innovations? Perhaps. When an innovation would come only at the cost of our freedom, the GPL says no. Is that a bad thing? That depends on your values.
If all you value is innovation, and you don't value your freedom, then you might consider it a bad thing that the GPL firmly protects the users' freedom. If, on the other hand, you value freedom, you will be glad that the GPL prevents unscrupulous software developers from using some tempting innovation as bait for users to give up their freedom.
Since I am determined to keep my freedom, I won't use nonfree software. So if your innovation would be nonfree software, please don't write it. Please do something else, something that won't deny users their freedom.
FB: Microsoft's CEO Steve Ballmer said, "About three years ago, we made software security a top priority." Is software security a primary goal of GNU?
RMS: I would not say that, but we do try to make it secure.
FB: Why hasn't GCC included any memory protection technology (PDF) yet?
RMS: I will ask the GCC developers to take a look at these methods and report to me about the possibility of installing one or more of them in GCC.
FB: After reading the paper I've sent you, what do you and GCC developers plan to do?
RMS: They are now prepared to work with the people who wrote ProPolice. I hope the result will be to install ProPolice, but it will take some time.
FB: Does the GNU Project accept and recognize standards, such as IEEE standards and de facto standards?
RMS: We follow all standards when doing so is useful for users. However, we do not treat them as authorities, merely as suggestions. When it is more convenient for the users if we depart from a standard, we do so.
For instance, the C standard "requires" that the compiler print a diagnostic for many kinds of input that doesn't fit the syntactic rules of the standard. GCC has various C extensions that give meaning to some cases that don't fit the syntactic rules of the standard. It does not print any diagnostic when you use them. This therefore conflicts with the standard.
For the sake of correct compilation of all standard C programs, I added an
--ansi to turn off syntactic extensions. But even
that doesn't print an error message for all cases where the standard demands
one. So I added
--pedantic also. To get the behavior demanded by
the standard, you must specify
We say that there is no reason to use
--pedantic; it is just
there to satisfy pedants who would otherwise say, "This isn't really an ANSI C
Some GNU utilities such as
du do not follow
the POSIX spec unless you set the environment variable
POSIXLY_CORRECT. Normally GNU
print disk space figures in units of k. POSIX says to print disk space figures
in units of 512 bytes. If you set
du do that. (My original plan was to name it
POSIX_ME_HARDER.) I would guess that very very few users set
If users don't like these decisions (or any others we make), they are free to change them.
Copyright (c) 2004, Federico Biancuzzi.
Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this notice is preserved.
Federico Biancuzzi is a freelance interviewer. His interviews appeared on publications such as ONLamp.com, LinuxDevCenter.com, SecurityFocus.com, NewsForge.com, Linux.com, TheRegister.co.uk, ArsTechnica.com, the Polish print magazine BSD Magazine, and the Italian print magazine Linux&C.
Return to the Linux DevCenter.
Copyright © 2009 O'Reilly Media, Inc.