Richard Stallman : Free Software, Free Society
Free software is the first battle in the liberation of cyberspace. Who controls your computer? Is it you or is it some big company that’s really controlling it?
Well, what is a computer? A computer is a universal machine. It will do any computation you want it to, because you give it a program that says what the computation is that you want. So the computer only knows how to get out an instruction and do it, and get out another instruction and do it. The program has the instructions, it says what to do. So by writing the right program, you can make it do anything. Well, almost anything.
So, who gives the instructions to your computer? You might think it’s obeying your instructions when really it’s obeying somebody else first, and you only as much as that company will let it listen to you.
With software, there are two possibilities: Either the users control the program, or the program controls the users. It’s inevitably one or the other. So in order for the users to control the program, they need the four essential freedoms. And that’s the definition of free software. Free software respects the user’s freedom and community. Now, we often call it “Libre” using the French or Spanish word. Pronounce it as you like, the point is that’s what we mean. We don’t mean it’s gratis, we’re not talking about price. We’re concerned with your freedom, and we sometimes say “Free/Libre” to show that.
So freedom zero is the freedom to run the program as you wish for whatever purpose. Freedom one is the freedom to study the source code of the program and change it, so it does the computing you want it to do.
But what is the source code? Well, every program typically will have two forms. There’s the form that you can read, and you can understand if you know the programming language. That’s the source. That’s what programmers write and change.
Then, there’s the executable, which is a bunch of numbers which even a programmer can’t figure out. If all you get is the executable, it’s a horrible pain in the neck to figure out what it does, and even harder to change it. So, to give you the real possibility to study and change it, they’ve got to give you the source code. That’s a requirement.
Well, with those two freedoms, each user separately can make a copy and start changing it and make it do what she wants. That’s individual control. But what if you’re not a programmer? You look at the source code, and you don’t understand it. Individual control isn’t enough. We also need collective control, which means any group of users are free to work together to adapt the program to what they want. Of course, in the group, some of them are programmers. They’re the ones who actually write the changes, but they’re doing it as part of the group for what the group wants.
Of course, the group doesn’t have to be everybody. Others can use it some other way. They’re all free to do that. So collective control requires two more essential freedoms. Freedom two is the freedom to redistribute exact copies, to make the copies and then give them away or sell them when you wish. And freedom three is similar, but it’s for your modified versions. You’re free to make copies, and then give them or sell them when you wish.
So if you do have these freedoms, then it’s free software, the users control the program. But if any of those freedoms is missing, then the users don’t control the program. Instead, the program controls the users and the developer controls the program. So, that means this program is an instrument of unjust power for its developer over the users. That means the users don’t have freedom, that’s non-free, proprietary software which we’ve got to get rid of.
Well, when you’ve got proprietary software, what happens? Sometimes, the program snoops on the user. Sometimes, it tracks the user. Sometimes, it restricts the user, and stops users from doing what they want to do. You can see that the Blu-Ray is your enemy. Sometimes, the software remotely deletes books as Amazon did with “Nineteen Eighty-Four”. Sometimes, the developer compels users to install a harmful upgrade, by threatening to take away other functionality if it’s not installed, as Sony did. And sometimes, they can even forcibly change the software at a distance as Microsoft can with Windows through the universal back door.
So sometimes, they even sabotage users, as Microsoft does when it tells the NSA about bugs in Windows, so it can use them to attack people’s computers. Well, what you get is basically, with proprietary software, the owner has power over the users, and takes advantage of this power, putting in those various malicious functionalities to hurt the users. Of course, they don’t do this because they’re sadists; they’re doing it just for money, for greed. They have various ways that they can profit from having this power over users, which does not make it even the tiniest bit less evil. But they have no shame about it. They have conferences where they talk about the latest ways they can take advantage of users through the power they have.
asically, proprietary software, which is now for almost all of the users of proprietary software, they’re using proprietary malware. It’s “software for suckers”. So how do you stop being the victim? Formerly, you had to stop using computers, but not anymore. Now, you can come join us in the free world that we’ve built.
In 1983, I announced I would develop a completely free software operating system called GNU. In 1992, we had it almost finished, but one piece was missing, the kernel. Linus Torvalds, in that year, freed his kernel, Linux, which filled the last gap, and gave us the first complete system you could run on a PC: GNU/Linux.
Unfortunately, having freedom at one point doesn’t guarantee you’ll keep it. There are over a thousand different variants of GNU/Linux. They’re called distributions. A few of them are entirely free software; most of them have non-free software added, because they’re maintained by people who aren’t concerned about freedom. They’d rather add convenience — but at the cost of freedom. So you have to check which is a free distro.
To keep your freedom, sometimes requires a sacrifice, sometimes a big sacrifice, as at Lexington. But in our campaign, they tend to be little sacrifices. Anybody with a little bit of maturity can make these sacrifices. For instance, you want applications, but some of them are non-free. If you want freedom, you’ve got to do without them. So there may be some inconveniences you have to suffer for your freedom’s sake.
Well, you should look. It’s service-as-a-software substitute, and it takes away control of your computing. So a large fraction of the world’s web servers are running GNU/Linux and other free software. But I think the most important computers to put freedom in are your computers, not companies’ web servers. They deserve freedom, also. But above all, it’s people that deserve freedom.
So we need to advance, and to do that, we have to cross obstacles. One of them is there are big companies that make a lot of money by having control over users. And they don’t want to let us advance. We have to overcome their opposition.
Another is that the mainstream media don’t talk about free software. They have a term that they use to bury these ethical issues. They say “open source” instead. Now, it talks about more or less the same programs, but with different ideas. Where free software activists say, “This is a matter of right and wrong. Users deserve freedom. We demand freedom.” The people who say open source, they don’t want to say that. So instead, they say, “Let the users change the software and redistribute it, and they’ll make the code better. They’ll fix some bugs.” It may be true, but it’s a less important issue. If we want to keep our freedom, we’ve got to talk about freedom. So say, “free software,” and you’re helping us every time.
Another obstacle is that lots of schools teach non-free software, which is basically like teaching the kids to smoke tobacco. It’s implanting dependence, which is the opposite of what schools should do. A school should prepare citizens to live in a strong, capable, independent, cooperating and free society, which means, teaching free software in the school.
But there’s another reason to do that for education. Some kids want to become programmers, they’re curious. They want to know how the programs work. While the one who’s studying a free software can understand it, the one who’s studying a non-free program can’t learn anything, because the knowledge in the non-free program is withheld, denied to the students.
So to uphold the spirit of education, the school should make sure its programs are free. But there’s an even more important reason: Schools should teach the spirit of goodwill, the habit of helping other people. So the class should say, “If you bring a program to class, just as if you bring cookies to class, you’ve got to share it with everyone else. You can’t keep it to yourself. You’ve got to share the source code, so other people can learn. So don’t bring any proprietary software to this class.” The school has to set a good example by following its own rule: You should bring only free software to class, except as a reverse engineering exercise.
Another obstacle is there’s hardware we don’t know how to write free software for, because they won’t tell us how to use the hardware. That’s shocking. They want to sell you the product, and they won’t tell you how to use it. They say, “Here’s a non-free program you can use. Run it, and shut up. Don’t bother us.”
Well, how do we find out how to run that hardware with reverse engineering? You’ve got to study all those 0’s and 1’s to figure out what they really do, and write down how to use that hardware, so someone else can write the free program to do it. It’s hard work, but it can be done — if you want to make a big technical contribution, that’s what you should do.
Each new area, activity of life, can bring with it new human rights that are necessary. And the human rights depend on each other. If you lose one, it becomes harder to maintain the others. So, nowadays, computing is so important in society that the freedoms of free software are among the human rights that society must establish and protect.
Thus, how to help? You can write free software. You can organize groups to campaign, and persuade schools and governments to move to free software. You can help other people when they have trouble using free software, or help them install it. You can say, “free software,” and spread the philosophical ideas.
Moving to free software is the first step in the liberation of cyberspace, but of course, we also use the Internet. We need other freedoms there, like network neutrality, and putting an end to surveillance of people in general.