What means Free Software and why matters, May 22nd 2009

The following is a transcript of a lecture given by Richard Stallman in Bucharest on May 22nd 2009. The lecture was given in English. You may also be interested in our list of transcripts by Richard Stallman.

Richard Stallman launched the GNU project in 1983, and with it the Free Software movement. Stallman is the president of FSF - a sister organisation of FSFE.

Transcription of this presentation was undertaken by Răzvan Sandu (see also his blog). Please support work such as this by joining the Fellowship of FSFE, by donating to FSFE, and by encouraging others to do each.

Lecture sections

Who controls your computer? Forty years ago people used to be very worried that computers would take over the world. They were very afraid but now we know that computers do what people tell them to do - and nothing else. Which people tell your computer what to do? Is your computer doing what you tell it to do or is it doing what Microsoft tells it to do? If you're running Windows, it's Microsoft that really tells your computer what to do. But if you're using MacOS, then it's Apple that really tells your computer what to do. Or maybe some of the time it's Adobe that tells your computer what to do. Or a bunch of other companies that make proprietary software. Because if you are using proprietary software on your computer, that means the program's developer controls what it does and you, the user, don't. And that's why it's vital to use Free Software, ”free” as in ”freedom”.

( go to menu ) [Section: What is Free Software?]

Free Software means software that respects the users' freedom and the social solidarity of the users' community. So, it's ”free” as in ”freedom”, not as in price: think of ”free speech”, not ”free beer” if you want to understand the word ”free” when it appears in the combination ”Free Sofware”. Free Software respects the user's freedom, but proprietary software keeps the users divided and helpless. Divided, because they're forbidden to share it; and helpless, because they don't have the source code, so they can't change it, they can't even independently check what it's really doing to them – and, often, it does something rather nasty. However, what I've said is rather general: software should respect your freedom. What exactly does that mean? I need to say something more specific.

(go to menu ) [Section: Four essential freedoms]

A program is Free Software if you, the user, have the four essential freedoms.

If the program gives you all four of the essential freedoms, than it's Free Software, which means that the social system of its distribution and use is ethical, because it respects the users' freedom and the users community. But, if one of these freedoms is missing or insufficient, then the program is proprietary software, users subjugating software, because the social system of its distribution and use puts the developer in a position of power over the users, which means it doesn't respect their freedom: the users of that program are not fully in control of what it does. Thus, to develop a free program and make it available to others is a contribution to society – how much of a contribution, that depends of all the details, but, at least is being offered to society in an ethical way. But, when a program is proprietary software, its use is a social problem. If the program has attractive features, those are the bait for the trap: they attract users to give up their freedom and become users of this program – and, really, that shouldn't happen, it shouldn't be done at all. The aim of the Free Software Movement is to put an end to this social problem: all software should be free, so that all users can be free.

But why are these four freedoms essential? Why define Free Software this way? Each of these freedoms is essential for a reason.

(go to menu ) [Section: Freedom two]

Freedom 2, the freedom to help your neighbour, is essential on fundamental moral grounds, so that you can lead an upright ethical life, as a good member of your community. If you use a program that does not give you Freedom no. 2, the freedom to redistribute exact copies when you wish, then you are in danger of falling into a moral dilemma:

At any moment, whenever your friend says: ”This program is nice, could I have a copy?”, at that moment you would face a choice between two evils. One evil is to give your friend a copy and violate the license of the program; the other evil is to deny your friend a copy and comply with the license of the program. If you're in the dilemma, you ought to choose the lesser evil which is to give your friend a copy and violate the license of the program. What makes this evil the lesser evil? Well, if you can't avoid doing wrong to somebody or other, it's better to do wrong to the one who deserves it: the developer of the program. You see, we can assume that your friend is a good friend and a good member of your community and normally deserves your cooperation. By contrast, the developer of this proprietary program has deliberately attacked the social solidarity of your community. So, if you're stucked doing wrong either to your friend or the developer, do it to the developer. But, being the lesser evil, this not mean it's good. It's never a good thing to make an agreement and break it – not even in cases like this, where the agreement is inherently evil and keeping it is worse than breaking it; still, breaking it is not good. And, if you give your friend a copy, what would she have? She would have an unauthorised copy of a proprietary program - and that's something rather nasty, almost as nasty as an authorised copy would be.

So, once you have fully understood this dilemma, what should you really do? What you should do is make sure you are never in this dilemma. I know of two ways to do that. One is: don't have any friends. That's the method implicitly suggested by the proprietary software developers. The other method is: reject proprietary software! If you don't have the program, you don't have to worry what you will do if your friend asks for a copy from you. That is my method. If someone offers me an attractive, convenient program on the condition I promise not to share with other people, I say ”No”, I say ”My conscience will not allow me to accept such a condition”. And that's you should say, too. And you should also reject the propaganda terms that the proprietary software developers use to demonize the act of cooperation - terms like ”pirate”. When they compare people who share software with pirates, what are they really saying? They're saying that helping your neighbour is the moral equivalent of attacking a ship. Morally speaking, nothing could be more wrong than that, because attacking ships is very bad, but helping your friends and your neighbours is good. So, don't call it ”piracy”. When they call it ”piracy”, say ”No”. When people ask me what do I think of ”piracy”, I say ”Attacking ships is very bad”. And when they ask me what I think of ”software piracy” or ”music piracy” I say ”As far as I know, pirates don't attack using computers or by playing musical instruments badly, they use arms”. Don't fall into the trap of repeating the enemy's propaganda.

So, that's the reason for Freedom 2, the freedom to help your neighbour, the freedom to redistribute exact copies of the program when you wish.

(go to menu ) [Section: Freedom zero]

Freedom 0, the freedom to run the program as you wish is essential for a different reason, so you can control your computing. It may be surprising, but there are proprietary programs that restrict even how people, the authorised users, use the authorised copies. That's obviously not having control of your computing! So Freedom 0 is essential, but it's not enough, because that just means you can either do or not do whatever the code of the program is set up to permit, and it's the developer who decides that, so the developer still controls you. Not through the license, but instead through the code of the program, but it comes to the same thing.

go to menu ) [Section: Freedom one]

In order to control your computing, you also need Freedom 1, which is the freedom to study the source code and then change it, to make the program do what you wish – this way, you decide what your computing is gonna be, instead of letting the developer decide and impose his decisions on you. Now, if you use a program without Freedom 1, you can't even tell what it's doing: many of these programs have malicious features, to do things like spy on the user, restrict the user, even attack the user. One proprietary program you may of heard of, that does all three, is called Microsoft Windows: we know of features to spy on the user, we know of Digital Restrictions Management or DRM features, designed to restrict users and we know of a backdoor that enables Microsoft to attack the user; in fact, this backdoor is so gaping that Microsoft has total control over the user, because Microsoft can forcibly change the software at any time, without asking the user's permission. So that user may think he controls his computer, but, really, Microsoft has total power!

But, please don't think that Microsoft is uniquely evil and only Microsoft would do this. In fact, MacOS X is pretty much the same: we know of features to restrict the user - Digital Restrictions Management – and there is a backdoor which allows Apple to forcibly change the software in any way, at any time, without asking the user's permission. So it's just as bad, there's nothing to choose from between them.

And this appears to be the natural endpoint of proprietary software: many cellphones are set up the same way. There is a company that can change the software whenever it wishes and the user who supposedly owns the cellphone has nothing to say about it. What it's happening here is: proprietary software is a system that gives the developer unjust power over the users. Now, when someone greedy has unjust power over others, what is he going to do with this power? He's gonna use it to try to get more power, more and more, until he has total power. And that's what they've done! Several different companies, in parallel. So, this is what proprietary software tends to lead to: total power, not just power that they shouldn't have.

Now, I won't claim that all the developers of proprietary software put in malicious features: I suppose some do and some don't. But, when a program doesn't give you Freedom no. 1, there is no way to tell if it has malicious features - in general. Once in a while we discover some, but, there are many programs in which we don't know of any malicious features. But maybe they have them or maybe they don't: we can't identify among all the programs without Freedom 1, we can't identify any that certainly have no malicious features – cause there's no way to check! But I presume they are some. The problem is: you never know if the program you're using is one of them! But, even, know, we can identify those programs, I can make a statement about them all: their developers are humans, so they make mistakes. And the code of those programs has bugs, and a user of a program without Freedom 1 is just as helpless facing an accidental bug as facing an intentional malicious feature. If you use a program without Freedom 1, you are a prisoner of the software you use.

We, the developers of Free Software, are humans too, so we also make mistakes and the code of our free programs has bugs. But, if you encounter a bug in our code – or anything you don't like – you are free to change it, cause we didn't make you a prisoner. We can't be perfect, we can respect your freedom. Thus, Freedom 1 is essential, but it's not enough, because that's the freedom to personally study and change the source code. What if you're one of those millions of users that don't know how to program? Than you can't study and change the source code yourself; but even for programmers like me, Freedom 1 is not enough, because there is so much Free Software in the world that nobody is capable of studying and mastering all the source code and personally making all the changes that she may want - because that is more work than any one human being can do.

(go to menu ) [Section: Freedom three]

So the only way we can fully have control of our computing is to do it working together, cooperating – and for that we need Freedom 3, the freedom to contribute to your community, the freedom to distribute copies of your modified versions, when you wish. This allows people to cooperate. Here's an example: suppose a few people release a free program and a lot of us use it because we like it, but we wish it has certain additional features; or someone can start with this version, add some of those features and release his modified version; and someone else can start with that, add some more features and release her modified version; and then a few people can start with that, add the rest of these features and release their modified version; and then we'll have those features and we'll say ”Thank you for cooperating to make these improvements”.And thus, when we have all four freedoms, we, the users, are in control of our own computing lives.

(go to menu) [Section : The four freedoms benefit to everybody]

Now, all the users get the benefit of the four freedoms. Every user can directly exercise Freedoms 0 and 2, the freedom to run the program as you wish and freedom to redistribute exact copies, because these don't require programming: anybody who can use the program can figure out how to do these things and they do them. Freedoms 1 and 3, the freedom to study and change the source code and then optionally distribute copies of your modified versions, these entail programming, so not everybody knows how to do them. And so there are people who can't directly exercise these freedoms. But, when others, the programmers, exercise these freedoms and when they publish their modified versions, all the rest of us can then install those modified versions or not, as we prefer. So we all receive the benefits of living in a society where people have the four freedoms, even when we don't exercise them directly.

In addition, those who don't know how to program and can't directly exercise Freedoms 1 and 3, can indirectly take advantage of them. Suppose that you run a business which uses computers, as most businesses do, but supppose that you don't know anything about programming, cause your business is in some other field. Most businesses are not in the software field: they use computers, but they use them to do other things. Well, if you recognise that, supposing a program were changed, your business would run more efficiently and you'd make more money, it would be worth it to you to pay a programmer to implement that change, if the price is right. So, if it's Free Software, you can look around for a programmer who's willing to undertake the changes you want, or some fraction of them, for a price you think it's suitable. Then you exercise your Freedom no. 2 to give that programmer an exact copy of the version that you are using. Then that programmer exercises his Freedom 1, studying the source code of that version and changing it to implement the changes you wanted. And then, he exercises his Freedom no. 3, to give you a copy of his modified version. An then, assumming it works, you pay him for this work.

So, in this scenario, you use the fact that other users have Freedoms 1 and 3, you pay them to exercise those freedoms for you, and so you get the benefit. An important part of Free Software business works this way, and this is why Free Software is a tremenduos benefit to all businesses that use computers: they deserve the four freedoms, just as individuals in their non-commercial lives deserve the four freedoms, just as every user deserves the four freedoms.

(go to menu) [Section : Software freedom is the way to democracy]

And the end, combined result of the four freedoms is democracy. A free program develops democratically, under the control of its users. Because all the users can participate as much as they wish in the social decision about the future of this program, which is simply the sum total of all the individual decisions that people make about what to do with the program. By contrast, a proprietary program develops under the dictatorship of its developer, the autocracy of its developer, who uses that program as an instrument to impose his power on users who he can then bully, command and mistreat – and exploit. So, on one hand we have individual freedom, social solidarity and democracy; on the other, we have a dictatorship. Society must choose Free Software and reject proprietary software. There is no excuse for anyone to have the unjust power that proprietary software gives to its developer. You shouldn't let anyone have that kind of power over you, so you need to reject proprietary software. But society also should reject it.

The aim of the Free Sofware movement is the liberation of the cyberspace and all his inhabitants – we should all have freedom!

(go to menu) [Section : The GNU-Project]

This is why, in 1983, I announced the plan to develop the GNU Operating System. It wasn't just that I've felt like developing an operating system; of course, I knew any programming project would be fun if I succeded in doing it, but that's not what it was about – the reason was for freedom. Because, at the time, it was impossible to use a computer and have freedom. Because a computer won't run without an operating system and all the operating systems for the modern computers of the day were proprietary, so there was no way to buy an new computer and run it and have freedom. You always had to install a proprietary operating system and that meant giving up your freedom. So, how can I change that? I didn't think I could change it by organizing a protest movement, because too few people agreed with me.

So, instead, I had the idea that I could change the situation by developing another operating system and I stood a chance of succeding at that because operating system development was my field; and then, being the author, I could legally make it free, giving all users freedom and then, everybody will be able to use their computers in freedom with the system I would write. So, I decided to invite other people to join in the development to make it Free Software... [sorry]... to get it done sooner and... [I guess I should take that over]... I decided to invite others to join in the development to get it finished sooner, I decided to follow the design of Unix so that it would be a portable system, capable of running on various different kinds of computers, cause I knew that in five or ten years computers would be different, I wanted the system to continue to be capable of running on future computers.And then I decided to make it compatible with Unix, so that the many users of Unix would find it easy to switch.

(go to menu) [Section : The Name GNU]

And then I gave it the name GNU, as a joke, because GNU it's a recursive acronym: it stands for ”GNU's Not Unix”. Now, this follows a custom among certain programmers and community which I belong to, that when you had to write a new program similar to some existing program, a humorous way of giving credit to the older program was you could give your program a name which is a recursive acronym saying that your program is not the other one. So, I've followed that tradition, especially since it gave me the opportunity to use the funniest word in the English language as the name. The reason this word is so full of humour is because, according to the dictionary, the G is silent and is pronounced ” 'NU ” (”new”), so any time you wanted to write the word ”GNU”, you can spell it ”G.N.U” and you've got a joke – maybe not a very good joke, but there are lots of them. However, when it's the name of our system, please do not follow the dictionary: if you talk about the ”New” Operating System, you'll get people confused. You see, we've been working on it for 25 years now, so it's not new anymore, but it still is GNU. And it will be always be GNU, even if some people make the mistake of calling it Linux.

But how that strange error get started? Well, what happened was, in 1990, we had almost all of the system but one important piece was missing, so the Free Software Foundation hired somebody to write that piece. That piece is called the kernel: it's the program that allocates the computer's resources to the other programs that it run. Well, our kernel project took a long time, it sort of runs but it doesn't works very well, so we don't use it. And someone else wrote a kernel, in 1991, and it released it under the name ”Linux”. Initially, it was not Free Software, but in 1992 he changed the license and he made it Free Software; so, at that point, the combination of the almost complete GNU system and Linux, this one other program, made a complete free operating system. And this is what made it possible, for the first time, to buy a PC and use it in freedom by installing a complete free operating system – a system which is basically the GNU system but which also contains this program, Linux. So, if you call it ”GNU/Linux” or ”GNU+Linux” you give credit to the people who started the development, as well as to the person who developed the last piece that finished it.

(go to menu) [Section : Value Freedom - Teach People to value Freedom]

Today, tens of millions of people run the GNU/Linux system, maybe more than a hundred million. Unfortunately, that's still a small fraction of computer users and, even worse, most of those people still use some proprietary programs, so they have not completely attained freedom. Nearly all of the hundreds of distributions of GNU/Linux contain proprietary programs or install proprietary programs or stirr users toward proprietary programs, which means that they're not entirely ethical. So on gnu.org or fsf.org you can find the list of the few GNU/Linux distributions which are entirely free, which don't recommend the people give up their freedom. If you value freedom, you need to use one of them; but, above all, if you you value freedom, you need to teach other people to value freedom. Because if they are few of us and we try to fight to defend our freedom, our chances of winning are smaller, but if we teach other people to appreciate freedom also and they join in, our chances are greater.

This is why I don't participate in advocating Open Source. You see, Open Source is basically a way of talking about Free Software, but hushing up the issue of freedom. The people who chose to start saying ”Open Source” in 1998 were the people in the Free Software community that didn't want to raise this question at all: somehow, it made them feel unconfortable or they thought they would make other people feel unconfortable or, some of them, wanted to distribute proprietary software and they didn't want their potential customers to see any reason to say ”No” to it. So, for their various reasons, they chose to forget about freedom, they chose to construct a different discourse but never raise this issue. Well, if people develop Free Software for those motives, their contribution is still good; but, in the long term, our future depends above all on what we value. If we value freedom, we will make an effort to gain freedom and to hold on to our freedom; if we don't know what freedom means, if we've never even heard the concept, we're not likely to make that effort. So, I came to the conclusion that there's simply no use in promoting Open Source, it was a distraction, because it failed to mention the most important point.

That's why I give speeches like this, talking about Free Software. I hope you'll join me in spreading the ideas of Free Software; for more information, look at gnu.org and fsf.org. We also have sister organizations, FSF Europe, which is at fsfeurope.org, FSF Latin America, which is at fsfla.org and FSF India, which is at gnu.org.in. Thank you very much!