Richard Stallman, Free software: ethics and practice

Материал из eSyr's wiki.

Перейти к: навигация, поиск
Ричард Мэттью Столлман
Ричард Мэттью Столлман

Лекция прошла в 16:20 3 марта 2008 года в аудитории П-14 2-го учебного корпуса МГУ им. М. В. Ломоносова.


[править] Диктофонные записи

[править] Видеозаписи

[править] Фотографии

[править] Расшифровка лекции

(расшифровка взята с [1], счетчик времени по видеозаписи, подзаголовки добавлены после расшифровки, только для ориентации по тексту)


(For who wants to make recordings, I want you to promise that if you publish the recording [laughter], do it in OGG Vorbis format only. [someone: "Yes!", applause] and under the CC-noderivs license [laughter], that's the only license, because this is opinion, this is not technical education, this is political views, so I'd like you to release it under the CC-noderivs license only, and only in OGG Vorbis format, because I want everybody to install an OGG player and I have to do my little bit to help promote that. f {00:03:44}

So, should I just start? No interruption. [many voices: "Yes!"] Okay.)


[править] Introduction. The four freedoms

Most of society teaches you that when you judge a program, you should judge it solely in superficial practical terms. How powerful is it? How convenient? How reliable? What does it cost? All superficial practial. They don't suggest, they don't teach you to ask yourself the really important questions. Does this program respect my freedom? Does this program respect the social solidarity of my community? These are the questions that the free software movement is concerned with. Free software means software that respects the user's freedom. So, it's an issue of freedom, not price. Think of "free speech", not "free beer". It's, I believe, "svoboda", not "besplatno". [laughter, applause]

Proprietary software, which is non-free software, keeps the users divided and helpless. Divided because they are forbidden to share with anybody else, and helpless because they don't have the source code, so they can't change anything, they can't even verify independently, what the program is actually doing to them, and many of those programs do nasty things to their users.


But, if all I say is "I'm in favor of freedom", I have not really tackled the difficult issue, because it's very easy to say: "I stand for freedom", even Bush says he stands for freedom [laughter], and Bush doesn't even recognize freedom after he's crushed it. So, the hard issue is: which freedoms are the freedoms everybody should have?

Therefore, I should say more.

A program is free software if it gives the user the four essential freedoms. Freedom 0 is the freedom to run the program as you wish. Freedom 1 is the freedom to study the source code and to change it, so the program does what you wish. Freedom 2 is the freedom to help you neighbor, which is the freedom to distribute exact copies to others, when you wish. This could mean giving them away, this could mean selling them, as you wish. Freedom 3 is the freedom to contribute to your community, that is the freedom to distribute copies of your modified versions to others, when you wish. If the program respects these four freedoms, then it respects the individual user's freedom, and it respects the community's solidarity, so it's free software, which means that the social system of the distribution and use of this program is an ethical system.


But if one of these freedoms is missing or insufficient, then the program is proprietary software, non-free software, user-subjugating software, because the social system of it's distribution and use is unethical. So, a proprietary program is actually a social problem. To develop and release a proprietary program is not a contribution to society. It's an attack on society, it's an attempt to grab power over other people, and this should not be done.

(By the way, is it possible to open the window? Maybe it's not, but it's still pretty hot in here. If there is no way to get... ah, good, at least some air is coming in, thank you) [light laughter]


But why these four freedoms are essential, why define free software this way?

([someone's cell phone is ringing quite loudly]

If you have a portable surveillance and tracking device, please turn it off. [chuckling] They have already tracked you here, they are already know you're listening to me [laughter], so there is no need for you to keep it on. And by the way, these portable tracking devices emit signals for tracking purposes even when they are apparently switched off. The only way to stop them is to take out all the batteries. And if they want to listen, they don't have to do it through your portable surveillance device, I expect recordings will be posted, they can listen to those, and even welcome to come and attend, so there is absolutely no reason why your portable tracking and surveillance device has to be on.)


And so, why define free software this way? What makes these four freedoms the essential ones? Each freedom has a reason.

Freedom 2, the freedom to help you neighbor, the freedom to distribute copies to others is essential on basic ethical grounds. So you can live an upright life as a good member of your society, a good member of your community. If you use a program without freedom number 2, you are in danger of falling, at any moment, into a moral dilemma. Whenever your friend says: "Hey, that program is nice, can I have a copy?", at that moment you will 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 [laughter] and violate the license of the program.


However... Why is this the lesser evil? Well, if you can't help doing wrong to somebody or other, better you should do it to somebody who deserves it. [laughter] Now, we can assume that your friend is a good friend, a good member your community and normally deserves your cooperation. Of course you might want to cooperate even with somebody who's not helpful, because that way he might learn. But in any case, the case where it's a good friend, a good member of your community, is the sharpest moral case. We contrast with him the developer of the proprietary program, who has deliberately attacked the social solidarity of your community. If you can't help doing wrong to one or the other, then you should do it to him, the developer.


However, being the lesser evil, doesn't mean it's good. It's never a good thing to make an agreement and then break it. Now, there are some agreements that are evil in themselves, and keeping them is even worse than breaking them. This is an example. But still, making an agreement and breaking it is not good.

And if you give your friend a copy, what will your friend have? Your friend will have an unauthorized copy of a proprietary program and that's a pretty bad thing, almost as bad as an authorized copy would be. [chuckling]


So, what you should really do once you have fully understood this issue, is make sure you are never in that dilemma. I know of two ways. One is: don't have any friends. [laughter] That is the method implicitly suggested by the proprietary software developers. [laughter, applause] The other method is don't have any proprietary software. If you make sure to have no programs without freedom number 2, then you can't get into the dilemma. So if someone offers me a program without freedom 2, no matter how attractive it might be, I am morally required to reject it, because to accept it and accept those conditions would be a betrayal of my community, it would be wrong. It would be wrong for me to accept those terms to be a user of the program.


And thus when people speak of unauthorized copying as "piracy", that is propaganda. They are trying to make you take for granted that helping your neighbor is the moral equivalent of attacking a ship, which is what piracy means after all. And nothing could be more false than that, because attacking a ship is very bad, but helping your neighbor is the right thing to do. So don't use their propaganda terms, don't repeat their propaganda. If someone else calls it "piracy", call it "unauthorized copying", which is a neutral term, or call it "forbidden cooperation" [chuckling], which takes the other side.

So that's the reason for freedom 2, the freedom to help your neighbor, the freedom to distribute exact copies when you wish.


Freedom 0 is essential for a different reason, so you can control your computing. It may be incredible, but it's true, that there are proprietary programs that restrict even the execution of authorized copies. They may restrict what computer they can run on, or who is allowed to use them, or how much, or for what purpose, this is obviously not having control of your computing, so freedom 0 is essential.

So essential, so for many years I didn't realized it was necessary to mention it. And because it's so basic, when I decided I have to mention it, I've put it in the beginning of the list, which is why it's freedom 0. But it's not enough, because freedom 0 just means you can either do or not do, whatever the code of the program lets you do. So the developer still has power over you. Instead of exercising the power through the license of the program, he exercises the power through the code of the program, but it's still power, it's still control over you.


So, it order to control your computing you need freedom 1, which is the freedom to study the source code and then change it so the program does what you wish. This way you decide, and not the developer for you. If you use the program without freedom 1, you can't even tell what it's doing. Many proprietary programs contain malicious features. They can be designed to spy on the user, restrict the user, even attack the user. For instance, one proprietary program that spies on the user, that you may have heard of, is called Microsoft Windows. [laughter, applause]


When the user of Windows, and I wouldn't say "you", because I'm sure you wouldn't use [laughter] a lousy program like this. When the user of Windows invokes the menu feature to search for a word, Windows sends Microsoft a message saying what word was searched for. That's one spy feature, but there is another. When Windows XP asks for an upgrade, it reports to Microsoft the list of all the programs installed on the machine. Another spy feature. But Microsoft never announced these spy features, they were put in secretly, and people found them by investigation. And since investigation is not perfectly reliable, it's quite possible there are other spy features, that we don't know about. But spying is not limited to Windows. Windows Media Player also spies on the user. In fact, it does photo surveillance, it reports every single user looks at.


(Just a second, since there is a camera here, I might as well, move these things, get them out of the way.. Mmm?.. Everywhere I look, there is another recording device. [laughter] They must be really suspicious of me. [laughter])


But you shouldn't think that Microsoft is uniquely evil and that only Microsoft would do something so nasty, because Real Player spies on the user the same way. And we're pretty sure that Real Player did it first. After all, Microsoft is more known for imitation, than for invention. [laughter] In fact, lots of proprietary programs are spy-ware. But it gets worse, there is also the functionality of refusing to function. When the program says: "I don't wanna let you see the contents of this file, even though it's in your computer", "I don't wanna let you copy part of this file, even though it's in your computer", "I'm not gonna print this file for you, because I don't like you". [laughter, applause]


Those programs really don't like you. [laughter] They're not designed to serve you, they're designed to keep you in prison. That's their purpose. We call this kind of malicious feature "digital restriction management" or DRM, or "digital handcuffs". It's the intentional malicious feature of refusing to function. Many companies do this. Microsoft, of course, does this. Apple does this, Adobe does this, Google does this, Sony does this, Amazon does this.

It's a broad attack on the freedom of computer users and it operates on two levels. Every instance of digital restrictions management attacks you in two ways at once. First of all, it's purposes to take away your freedom in using your copy of a work, to take away what would otherwise be your legal rights. But at the same time it attacks your freedom by stopping you from using free software to access your copy, so the only way to do it is with proprietary user-subjugating software.

(Just a second)


Because this is such a threat, we have started a campaign of protest against digital restrictions management, you can find it in the site DefectiveByDesign.Org. Because these products are all designed to be defective, and you should never buy it. Never buy anything with DRM unless you personally have the means to break the DRM. If you can break in, it's okay. [laughter] Otherwise, it's an attack on your freedom and it's dangerous, so reject it, and teach other people to reject it too.


Windows Vista [laughter] is a tremendous advance in restricting the user. That appears to be it's main purpose. In fact, Microsoft decided to compel users to throw away perfectly good hardware and replace it, just because that working hardware was not designed to restrict users enough. So users to run Vista have to throw it away and replace it with new hardware designed to control them. This is so nasty, that we have a special campaign against using Windows Vista. It's called BadVista.Org.

Of course, all versions of Microsoft Windows are proprietary software, they are all bad ethically. So you can't live in freedom using any version of Windows, and if you have a computer with Windows, what you need to do is "defenestrate" it, which means either throw Windows out of the computer, or throw the computer out of window. [laughter, applause]


But those Windows users who are not ready to make their escape to freedom yet, at least they shouldn't allow themselves to get deeper into the clutches of the enemy, so they should not use Windows Vista, until, of course, they are ready to stop using Windows entirely. But, malicious features are getting worse, there is a malicious feature of attacking user: back-doors.


One proprietary program that has backdoor, that you may heard of, is called Microsoft Windows. You see, starting with Windows XP, Microsoft arranged to keep track more or less of who the user is. And so when Windows XP asks for an upgrade over the net, Microsoft can deliver to that user an upgrade designed specifically for him, which means, Microsoft can take control of his computer and to do him whatever it wants. That user is at Microsoft's mercy. That's the back door we know about, but is there another?

In India of few years ago I was told that they have arrested some of the developers of Windows, and accused him of working not just for Microsoft, but also for Al-Qaeda, [laughter] installing another backdoor that Microsoft wasn't supposed to know about. That attempt apparently failed. Whether other such attempts succeeded, we have no way of checking. But we do know, that Microsoft installed another backdoor for the use of in even more violent terrorist organization, namely the United States government. [laughter] Specifically the National Security Agency. This was detected in 1999, before Bush stole his first election. So, what this shows you is you can't trust a program that doesn't give you freedom number 1. You don't know, what's in there.


But, in fact, Windows Vista makes in even worse, because with Vista Microsoft can impose a change in software. Microsoft can simply install changed software when it wants to, and the user doesn't have a chance to say no. But please don't think that Microsoft is uniquely evil, because Mac OS X does the same thing. Apple can forcedly change the software without giving the user chance to say no. So it's an understatement to say that Microsoft and Apple can take control of the user's computer, because with Windows Vista and Mac OS X they always have control, they have control from the first minute that the user started using it. And they never relinquish that control.

Every non-free program without freedom 1 demands blind faith from the user, blind trust, because there is no other possible basic /?/ to use it, you can't check anything, you can't verify, all you can do is place yourself completely at the mercy of the developer, it's all "just trust me" software. Now, that doesn't mean that every one of these programs has malicious features, some do, and some don't. But we can never be sure that any one of these programs has no malicious features, there is no way to verify that. So we can divide them into two classes. There is the programs in which we know of malicious features, and the ones in which we don't know of malicious features, now some of them have malicious features, and others don't, but we can never identify with certainty any of the ones that don't. But I'm sure there are some.


So what can we say about them without knowing the identity of any one of them? Well, we know that their developers are human, so they make mistakes. The code of those programs has errors. And the user of the program without freedom 1 is just as helpless facing an accidental error, as she is facing an intentional malicious feature. If you use the program without freedom 1, you are a prisoner of your software. We, the developers of the free software, are human too, we also make mistakes, the code of our programs also has errors, but if you find an error in our code, or anything in it that you don't like, you are free to change it. We can't be perfect, we can and we do respect your freedom.

Thus, freedom 1 is essential. But that's not enough, because that's the freedom to personally study and change the source code of the program. That's not enough, because there are millions of users that don't know how to program. They can't personally exercise freedom 1, but even for a programmer like me freedom 1 is not enough, because there is just too much software. In fact, there is too much free software for any one person to master it all and personally make all the changes that he might want. So the only way we can fully take control of our software and of our computing is to do it working together, cooperating, and for that we need freedom 3, the freedom to distribute copies of your modified versions when you wish, the freedom to contribute to your community. This allows us to work together.


For instance, suppose one person takes a free program, and makes a change, and releases her modified version. And somebody else takes that and makes another change that goes further in that direction, and releases his modified version, and someone else starts with that and makes another change, and releases his modified version. Afterwards we will say: they all worked together to produce the feature that we ultimately got, which doesn't mean that they planned it in advance that way. The first one might have no plans beyond the feature that she personally made, but nonetheless, because the program is free, they were able to cooperate.

And thus all the users get the benefit of the four freedoms. Every user can exercise freedoms 0 and 2, the freedom to run the program as you with, and the freedom to distribute exact copies when you wish, because this doesn't require programming. Freedoms 1 and 3 entail programming, so any giving user can exercise these freedoms more or less, depending on how much skill he has in programming. And of course, there are many people that don't want to learn any programming, so they can't directly exercise freedoms 1 and 3, but when other people, the programmers, exercise these freedoms and release their modified versions, everybody can install them, if they wish.

And thus we all indirectly get the benefit of the four freedoms. I get tremendous benefit from other people's exercise of freedoms 1 and 3 without my ever reading the code of those programs, which I never seen, I could if I wanted to, but I don't have to do that personally in order to get the benefits. Thus we all get the benefits of the four freedoms and together what they give us is democracy.


You see, a free program develops democratically under the control if its users. Every user can participate as much or as little as she wishes in a society's decision about the future of that program, which is simple the sum total of all the individual decisions. The users are in charge, and therefore, the users generally get what they want, and nobody is in a position to stop them. With free software no one has power over anyone else, so nobody is in a position to put in malicious features and impose them on anybody else. The reason, proprietary software soft often has malicious features, that the developer knows, that if he puts in a malicious feature, nobody else can take it out, the users are stuck with it, unless they can escape to another program, and sometimes they all have the same malicious features, and there is nowhere to escape to.

But with free software, if a developer is silly enough to put in a malicious feature, somebody else will see it in a source code and take it out, and release his modified version and say: "look, what I've found in that program, and here is the version which doesn't have it", and in a short time everyone will go to the fixed version and the developer of the malicious version will have lost his reputation and he will be nothing. That's possible, because the users are all free. And we can make the program develop to reject the malicious features, because we all together are in control of the program, if that's what we users want, that's what we get.


By contrast, the proprietary program develops under the dictatorship of its developer and functions as an instrument to impose that developer's power over all the users. So we have a simple choice. On the one end we have individual freedom, social solidarity and democracy, and on the other we get divided and controlled by a dictator. It's a simple choice, and the answer is obvious: we should reject proprietary software and use only free software.

This is free software in ethical terms, which is the most important way to look at the issue. When ethical issues is a stake, they are more important than something else. But, since many people are involved in business, people are often interested in free software from a business perspective, so I will talk about that to some extent.

[править] Free software from a business perspective


How does free software affect business. Well, lots of businesses use computers, only a tiny fraction of them are in the business of developing software. So the result is, in general, free software is very good for businesses, because businesses appreciate the four freedoms, just as individuals do in their leisure time. And businesses using software should have these four freedoms, just as other users should. And in particular, businesses can take advantage greatly.


([the camera operator turned away from RMS and now shooting the listeners] By the way, when it's pointed away, is the microphone going to pick up my speech? [growing laughter] Can you turn..(indistinguishable)... the microphone... [the speech is apparently interrupted] If you could point the microphone this way and camera that way you can get the shot you want. [laughter] Okay, well.. fine. [laughter])


So, businesses can take advantage of the four freedoms to get the features they want even if they are not software developers. For instance, there are a thousand a users of some free program, that want a certain change. And suppose, none of those users knows how to program. But they have some money. Now they could be businesses, or they could be individuals, if it really doesn't matter, but in any case here's what they can do. They can get in touch with each other and start an organization and the idea is that they all join and in joining they pay money to the organization, and this way the organization collects money to pay programmers to do the work they want. So if this is a medium-sized change it might require a month of work for a skilled programmer, and that might cost 10,000 dollars, and the organization may ask each of those thousand people: please pay 10 dollars, that's not much money. I expect that if you wanted a certain change, you'd probably put in 10 dollars to get it and certainly if it's useful for your business, and your business is going to be more profitable with that change, it's worth it to you to put in such a tiny amount of money. But what if it's bigger, what if it take a year of work, and then it might cost a 100,000 dollars, and the organization might ask each one of these members to put in a 100 dollars, but you know, chances are, if businesses want a big change, it's because it's going to make a big improvement for them, and it's going to be worth that 100 dollars and they won't hesitate.


But how this organization get it done? The organization has to find programmers to hire. So the organization could ask a group of programmers: "Could you do this? When could you have it done? What would you charge? Let's see your portfolio, so we can evaluate your abilities. What about you? What about you?" And so after they compared the answers from various groups, then can decide, who to hire. Which shows us, that free software brings with it a free market for all kinds of support and service.

By contrast, a support for a proprietary program is typically a monopoly. Only the developer has the source code, so only the developer can make a change, and if a user wants a change, the user has to beg the developer, or even pray to the developer: [laughter] "Oh, mighty developer, please make this change for me!" [laughter, applause]


Sometimes the developer says: "Pay us, and we'll listen to your problem". [laughter] If the user pays, the developer says: "Thank you very much. [laughter] In six months there will be an upgrade, buy the upgrade and you will see if we have fixed your problem, and you will see what new problems we have in store for you [laughter]

But with free software anyone that has a copy, can read the source codes, master it and begin offering support, so it's a free market and pretty easy to enter. As a result, all those companies and organizations and agencies that say they really need good support and say that they think that free market generally provides better things to the buyer, rationally speaking, they should insist on using free software so they can get their support through the free market instead of a monopoly.


Isn't it ironic, that the proprietary software developers call us "communists"? We are the ones who have provided for a free market, where they allow only monopoly. More than that, we are the ones that respect private property, and they don't. Companies like Microsoft and Apple, and so many others, they don't respect your private property, in fact they say that "your" copy is their property. They say everything is their property, their idea of private property is: everything belongs to them, like the czars. So, by contrast, your copy of a free program is your property, and you are free to use it in all the ethical ways.

But it goes beyond that, because in the free software community we have a decentralized society in which everybody can basically decide what he wants to do and do it, whereas with proprietary software it's a command-based system, the executives decide: we want this feature, we do not want that feature, the programmers put it in, and all the users are stuck with it just the same. So, which one is a Soviet-style system?


And this leads to another paradox. Usually when there is a choice of products to do a job, we say there is no monopoly. But, when there is a choice between proprietary software products, yes, there is monopoly. Because if the users chooses this proprietary software package, he then falls into this monopoly for support, but if he chooses this proprietary product, he falls into this monopoly for support, so it's a choice between monopolies. And the only way to escape from monopoly is to escape from proprietary software, and that is what the free software movement is all about. We want you to escape and our work is to help you escape.

We hope you will escape to the free world. The free world is the new continent in cyberspace that we have built so we can live here in freedom. It's impossible to live in freedom in the all world of cyberspace, where every program has its feudal lord that bullies and mistreats the users. So, to live in freedom we have to build a new continent. Because this is a virtual continent, it has room for everyone, and there are no immigration restrictions. And because there were never indigenous peoples in cyberspace, there is also no issue of taking away their land. So everyone is welcome in a free world, come to the free world, live with us in freedom. The free software movement aims for the liberation of cyberspace and everyone in it.

[править] A brief history of the free software movement and the GNU project


I reached these ideas, not in their current form, of course, in their early form in 1983. I wanted to be able to continue using computers but have freedom. But how could that be possible? In 1983 it was impossible, because the computer is useless without an OS, an operating system, and an 1983 all the operating systems for modern computers were proprietary, so there was no way to buy a modern computer and run it and have freedom. How could I change that? I was one man, not particularly famous, with no political experience or skill. So I didn't think I would get very far just starting an ordinary political movement, trying to campaign to convince governments to change their laws, or even convince companies to change their policies. Nowadays we sometimes achieve this, but things have changed quite a bit since 1983.


So I didn't think of doing it that way, but I saw another approach to achieve the goal: through technical work. I realized that if I developed another operating system, then I as the author could make it free software and that way everyone would be able to use computers in freedom by using my system. This system would be the way to use a computer and have freedom. And I was an operating system developer, that was my field, my principal skill. So I thought I had a chance of doing this. So that meant I was aware of an important and growing social problem. That most people didn't recognize as a problem. I had the skills necessary to try to eliminate that problem and chances are, it seemed, nobody would do it if I did not. That meant that I had been elected by circumstances to do this job. It was my duty.


It's as if you see somebody drowning, and you know how to swim, and there is no one else around, and it's not Bush [laughter] or any other government leader that suppresses the opposition and does other bad things to human rights, then you have a moral duty to save that person. Now, I don't know how to swim, but in this case the job that had to be done was not swimming, it was developing lots of software, and that I knew how to do. So I decided to develop a free software operating system or die trying. [laughter, applause]


Of old days, that is. Because, at the time, the free software movement did not have active enemies. Lots of people said it was silly and then they paid no further attention. So the obstacle to success was not opposition, you know, I didn't think somebody was likely to stick me with some radioactive polonium or something like that, but the obstacle was the large pile of programs that we would have to develop in order to have an entire free operating system. And 20 years ago nobody knew, not even I, if we would ever achieve that goal. It was plausible that I might die of old days first. But when it's a matter of fighting for freedom, you can't afford to wait until victory is within reach before you start, because that means you missed most of the opportunities, you have to start the campaign for freedom long before that, if you still have no idea if you are going to win, and then maybe you win.


So the next thing I decided was to ask other people to join in and help. The goal wasn't to have a system developed entirely by me, it was to have a free system as soon as possible, so other people writing parts of the system could get it done sooner. But I also had to make technical design decisions, what kind of system should it be. Well, back in the eighties there were various computer architectures quite different, and new ones were being introduced, I realized that it would take years to develop an entire operating system and during that time computer architectures could change and so, if the system was not portable, it could be obsolete before it was done. I didn't want that, so i decided to make the system portable. I only knew of one successful portable operating system, and that was UNIX, so I've decided to follow the design of UNIX. Furthermore, I decided to make it upward compatible with UNIX, because that way all the UNIX users would find it easy to switch to this system. However bad made all the initial design decisions, because UNIX consisted of hundreds of components that work together through interfaces that were more or less documented, and the users also spoke those same interfaces to talk to these components, so to be compatible we had to keep the same interfaces, which meant replacing each component compatibly. So the only thing I needed to start a project was a name.


Of course, I looked for a funny name, because in the 1970's I was part of the community of programmers, who shared software. When we wrote a program, we shared it with everybody, that was our way. And all the software that we were using in this lab at MIT was free software, although I don't remember if we used that term or not. And we called ourselves "hackers", which meant and still means that we were programming because it was tremendous fun. Now half of us were employees, and the other half were students, but that was all secondary, because the fascination of what we can do with the computer was what really mattered. That was our main motivation, that was tremendous fun. But to make it even more fun, we sometimes chose funny names for our programs, because imagining the users laughing at the name can keep you going, fixing the difficult bugs [laughter] till you get your program to actually work. If they don't start using it, there will be any users to laugh at the name.


Now, back in the seventies, system level programming was generally not portable, so every program was written for a particular kind of machine, and a particular system, and it was quite common that you'd see interesting program that ran on some other kind of machine, so you would write another one in order to do the job on your machine. When that happened in our community since we were looking for ways to have fun, we had a specific custom: you could give your program a name which was a recursive acronym saying: your program is not the other one. For instance, in 1976 I developed first Emacs, text editor, a programmable extensible text editor and afterwards there were some 30 imitations, and some of them were called "this or that Emacs", which is straightforward and not particular clever. But there were also FINE for "FINE Is Not Emacs", and then there was SINE for "SINE Is Not EMACS", and there was EINE for "EINE Is Not Emacs", and there was MINCE for "MINCE Is Not Complete Emacs" [laughter] and version 2 of EINE was called ZWEI for "ZWEI Was EINE Initially". So you can have lots of fun with recursive acronyms. I looked for a recursive acronym of the form "Something Is Not UNIX", blank-INU, but I could see any combination like that that was a word, and if it doesn't had another meaning, it's not a joke. So what can I do, I thought, I can make a contraction, and get rid of the "I", I have "Something's Not UNIX", blank-NU. So I've tried every initial: ANU, BNU, CNU, [laughter] DNU, ENU, FNU.. GNU! [laughter] Well, "gnu" is the most humour-charged word in the English language used in countless wordplays. So, of course I couldn't resist. [light laughter]


But why is the word gnu so humour charged? It's because according to the dictionary, the "g" is silent and it's pronounced: "nu". So anytime you wanted write "nu", you could write it "gnu" and you have a joke, perhaps not a very good one [laughter], but there are lots of them. And sometimes it is a good joke. For instance, there was a funny song where I was child, that was based on the word "gnu". So, given a specific meaningful reason to use this for a particular programming project, I could not resist. However, when it's the name of our system, please do not follow the dictionary, please pronounce it "GNU". If you talk about the "new" operating system, you'll get people confused, because we've been developing it for 24 years now, and we've been using it for 15 years, it's not "new" anymore, but it still is GNU it always will be GNU, no matter how many people mispronounce it as "Linux". [laughter, loud applause]

[править] The "Linux" and "GNU/Linux" names. The GNU General Public License


But how that such a bizarre mistake get started, how did it happen that millions of people use GNU system and think that they are using the "Linux" operating system, which doesn't really exist? Well, during the eighties our work was to develop the many components we would need, hundreds of components, to have a complete UNIX-like operating system. By 1990 we had all the components, we had most of the system, but one major essential component was missing, that was the kernel, which is the program that allocates the machine resources to all the other programs that you run. So in 1990 the Free Software Foundation hired somebody to begin writing that kernel for GNU, I chose the design. The design I chose was to use as the bottom half, Mach. Mach is the micro-kernel, that was developed as a university funded project. So I thought: they'll make that work, we just write the top half, and the top half we decided would be made of modular server programs, and they will all run in userspace, which would make them easy to debug, because if one of them crashes, it doesn't crash the whole machine, and you can debug them with the source-level debugger. So I though this design would enable us to get the whole thing working soon, I don't know why, but it took many years to get it to run at all. And it still doesn't run very well, so I wouldn't recommend that you use it, and sad to say, very little progress is being made.


That's a disappointment, but it's not a disaster, because in 1991 a college student named Torvalds developed his own kernel using the usual monolithic approach and he got it basically work within a year. That kernel was called Linux and initially it was not free software. The initial license was too restrictive, it didn't allow commercial distribution, which is an important thing in using free software. However, in 1992 Torvalds changed the license and released Linux under the GNU General Public License, which is the free software license that I have written to use on most of the programs that we developed for GNU.


What is that mean. First of all, what is the free software license. Well, how can you make a program free software? Under today's copyright law in most of the world, anything that's written is copyrighted. So every program is copyrighted starting from the moment it's written down. And copyright law says that people are not allowed to copy it or modify it or distribute it, and in some countries it says they not even allowed to run it without permission. So how could the program be free software? Only because of an explicit declaration by the copyright holder saying that the users have the four freedoms. That declaration is a free software license. That is, assuming it really does validly give you the four freedoms in a sufficient way, than it qualifies as a free software license. So theoretically, there are infinite number of free software licenses, but it's better to use the existing one than to write your own, because it's convenient to have fewer licenses rather than more.

In any case, there are various different free software licenses, the GNU GPL is not the only one, but there is something special about the GNU GPL, and that is it's a copyleft license.


Now, every free software license has to give you freedom 2 and freedom 3, the freedom to distribute exact copies and modified versions, but there are two ways to do that. Some licenses say: when you distribute, you can distribute any way you like, you could even make these copies proprietary, you can put restrictions on the other people. A copyleft license says: when you redistribute, you have to do it in a right way, the same way that you got your copy, under the same license, with the source code, and in general, you may respect other people's freedom the same way we respected yours, so when you get our program, you get it with freedom, and then when you pass it along to others, perhaps exactly or changed, perhaps extended, you must give them, you must pass along to them the same freedoms that we gave you. So, copyleft is a way of defending freedom for every user. By releasing something under a free license you respect other people's freedom, you do not take it away. But people may still be vulnerable to middle man, even though you did not take away their freedom, a middle man could take it away before they get their copies, so with copyleft we go beyond just respecting people's freedom, we actually actively defend everybody's freedom. We say: if you get your copy, it will come with freedom, because the middle men are not allowed to take away the freedom before you can get. And I'm proud to say that the GNU General Public License is used by about 70% of free software packages. So, copyleft for various reasons has attracted a lot of developers.


In any case, once Linux was available under the GNU GPL, it was free software. And thus, the combination of almost complete GNU system and the kernel Linux made a complete free operating system, and thus the goal, that I had announced in 1983, have been reached. For the first time it was possible to buy a PC and run it in freedom with free software. The development of Linux the kernel was the step, that carried us across the finish line. It was able to do that because we have taken many steps already in order to get close to the finish line. But people mistakenly focused on that one last step as if that was everything. They got confused. The people who started distributing these combinations of Linux and GNU, they started calling them Linux systems, and as a result they started a confusion, where most people, when they hear the name Linux, they don't know, whether they are talking about this one piece, that Torvalds started, or the entire system that's basically GNU. Most people don't even understand the difference. Most people don't know there is a distinction to be made, so they believe that Linux is an operating system, that you can install on a computer, and they also believe that it was started in 1991 by Torvalds and they also believe that it's released now under the GNU General Public License. Well, there is nothing in the world of which these three things are true.


They're making some statements that describe the whole system, and some statements that describe just this piece, and they don't know that they're confused. They don't know that there is a distinction to be made, you have to be somewhat well educated technically to start understand there is a difference. Now, this obviously is unfair to the thousands of contributors to the GNU system. Because we're the principal developers of this combination and people basically don't give us much credit, they give the credit all to mister Torvalds, so in fairness sake I ask you to please call it GNU/Linux or GNU+Linux, give us equal mention, since we started it and we did the biggest part of the job, we ought to get at least an equal share of the credit. But I have to recognize that credit is not the most important ethical issue in life, and if it were just a matter of credit, it wouldn't be worth making a fuss about.

But there's something else, something much more important at stake in your choice of the name to use with this system. Your freedom is at stake, indirectly, of course. Because your choice of the name doesn't directly affect much of anything, but your choice of words to say determines what meaning you express, determines what you say to other people, what you teach them and that affects what they do and that ultimately affect important things.


You see, the name GNU has always been associated with the ideas of freedom, that I've told you today. The name Linux is not, because the name Linux is associated with the views of Linus Torvalds and he has never agreed with these ideas of freedom, that I have told you today. He doesn't even want to think about the question, he dislikes raising ethical issues, he wants technology to be pure and not affected by ethical concerns. It's the world view of engineer who doesn't look around him. And he is said this many, many times. He used to develop proprietary software as his job, about ten years ago, and he said so, well what kind of example was that? The thing is, of course he has a right for his views, he has a right to tell people his views, but the problem is when our work is attributed to him erroneously, and then under strength of our work people look to him for ethical leadership, that's not right, they ought to know that we developed this system and that we did it for their freedom's sake. But when they think the system is Linux, and they think it was all started by mister Torvalds, they tend to follow his view of the world and of these issues, and that leads them in a dangerous directions, because as you can see, freedom is frequently threatened.


And so, when people don't defend it, they are likely to lose it. You can see that here, you can see that in the US, you can see that in the UK, and in many other countries following their leadership. Freedom has been under attack in recent years.

Now, in most areas of life people have been debating the issue of human rights for centuries, that's plenty of time to reach conclusions about which human rights are essential and that everyone would have, and to spread those ideas around the world. That doesn't always means that we succeed in defending them, but at least it creates a base from which to try.

But computing is a pretty new area of life, it's only around 15 years that most people even in a few advanced countries have been using computers, and in other countries it's less. That's not a lot of time to have a debate about the human rights for computer users, even if you try hard to do it, and just the opposite is happened, in fact, there has been hardly any attempt to seriously consider these question. Instead, society allowed the proprietary software developers to state the answer and then just accepted that as if it were unquestionable. Hardly anyone dares to put it into question. Most people who use computers began with proprietary software, surrounded by other people using proprietary software, they didn't even know they could be an alternative, so they just assumed that that's okay. If you are surrounded by people that live a certain way, it's not easy to raise a question: is it ethically okay to do that? It takes great strength. Now, even I haven't necessarily had that much strength, after all, I didn't have to invent the idea of free software in this way, I learned it by going to work in a lab at MIT, where software was free, I just.. I saw this way of life, I didn't have to invent it and then envision what it would be like purely in my own mind, I learned what it was like by living it! So, other people who were not as lucky as me and didn't have this good fortune to experience free software, they took for granted that software was proprietary and what could possibly ever be wrong with that?


So, there basically has not been in most of society any debate about this question, about the question of what human rights the developer of software is entitled to. I think I have identified four of them. The four essential freedoms, that define the free software, are human rights that every software user should have. But even among the users of GNU/Linux system most of them have never heard this idea. Because only a fraction of the community talks about it. Most of the community doesn't tell them about GNU or free software, or any of these ideas of free software. Most of them say that the system is Linux, and the associate it with ideas of Linus Torvalds, they say: it's a way to get powerful reliable software, and that's as far as they go, they don't mention freedom and social solidarity as goals.

And they don't say "free software" either, they have a different term they prefer to use, it's called "open source". Among the people who first promoted the term "open source" in 1998, several of them specifically wanted our ethical concerns to be forgotten, they just wanted it to drift out of people's minds, and not be remembered. And they partly succeeded, not completely, the free software movement is still here, still spreading these ideas, and I believe, still growing, but we are only a fraction of the users of free software, most of who have not heard these ideas. Now that makes our community weak, because in order for people to defend their freedom they have to value their freedom, and in order to value their freedom, they have to know what it is, first of all. And we face a big task simply to explain to the users of free software, what these freedoms are.


So we need your help to do this most important job. So you can start explaining the issues of free software to other people. You can read more on our website And then you can start explaining to individuals, you can give speeches, this is tremendously important way to contribute, we need it more, actually, then we need more programmers, because there is a lots of programmers developing free software, and not so many of us spreading these ideas of freedom. But if you don't have time to spend twenty minutes explaining these ideas of freedom, there is a way you can help us do it, that only takes one second. And that is calling the system GNU/Linux, because it only takes one second to say "GNU/", or type "GNU/", and so you can certainly spare that much time to help us. Now it's true that that won't explain our philosophy, you can't explain a philosophy in one second, no matter what you do. But it will make our explanations more effective by preparing a way for people to pay attention.

You see, if a person has been told that the system is Linux and it was all started by Linus Torvalds in 1991, he probably believes that the GNU project was a project to develop a handful of tools, which Torvalds just by coincidence found useful "in Linux". So, completely wrong idea of what we've been trying to do and what we did. So, when he sees an article from the GNU project explaining our philosophy of freedom, he is likely to say: well, that has nothing to do with me, I'm a Linux user, why should I care about GNU. After all, GNU is just a friends group, some fanatics that wrote a few useful programs once upon a time. But if he realizes that the system he is using is basically the GNU system, if he think of himself as of GNU/Linux user instead of a Linux user, then when he sees an article from the GNU project, he is likely to think: "Ah, here is the philosophy of GNU and I'm a GNU/Linux user, I should pay attention, I should see what the GNU project has to say", and then we have a chance to try to convince him. All these efforts that we are making will have more effect, if you are preparing the way. We need your help, because our community's weakness has already let us to loose freedoms that we had, because so many of the users don't really care about freedom, and don't even understand the issue, they are willing to accept non-free programs as part of the GNU/Linux system.

[править] Problems of modern GNU/Linux distributions


And in fact, most of the thousands of distributions of GNU/Linux contain non-free software. In 1992 for the first time we had a complete free operating system. There was the GNU/Linux system, you could get it, you could install it on a PC and it would run, and it would be free. By 2000 you couldn't find a free distribution of GNU/Linux anywhere. How did that happened, how did we lose, how did we failed back from the freedom we had achieved? Well, around 1995 there were already several, at least, different distributions of GNU/Linux, and already most of them called themselves Linux distributions, and some of them started to put in non-free programs and present them as an advantage, they said: "Ah, choose our distribution and look what you get!", pointing to those proprietary programs, as if they made it better. Which is the exact opposite of the idea of the free software movement, which is that a non-free program takes away your freedom and makes things worse.

So, their publicity was working directly against our efforts. None of that /?/, all the distributions were competing with each other, so the developers of another distribution looked at that and said: "Uh-oh, they have this proprietary program and that attracting the users away from us, we better put in this proprietary program too, so that the users will come back".


Now, they could have said: "We are very sorry, esteemed user, that such and such program is not free software, it doesn't respect your freedom, we have put it in because we know you have come to expect this from other distributions, and if we didn't put it in we know you would choose a different distribution and get it that way. But this program doesn't respect your freedom, so if you care about your freedom, you shouldn't install it. And because we are serious about these regrets, we are not just waiting for somebody else to give us a free replacement for this program, we are contributing one full time employee to the project to develop a free replacement, because it's since we're distributing it and we feel ashamed of that we feel it's our moral duty to speed the day when we can delete it and put a free program in it's place."

They could have said that. But what they did say, was:

"Look what you get in our distribution!"


So, by and by, all the distributions had non-free software. People would ask me after a speech: where can I get a copy of GNU/Linux? And I would say, I don't know of any place I can recommend. How sad, that our community had almost completely fallen into the ditch at the side of the road, just because drivers weren't looking at where they were going. They didn't think about freedom, or they didn't care. Well I'm happy to say that now there are free distributions, there is UTUTO, U-T-U-T-O [writes on blackboard], there is BLAG, which stands for "BLAG Linux And GNU", and there is gNewSense. These are three distributions that have a policy of rejecting non-free software, because there purpose is to give your freedom.

[a listener asks: "How about Debian?"]

Debian almost gets there, but not quite. Officially the Debian system consists only of free software, but the Debian servers also distribute non-free software, so we can't refer people to them. For years I tried to convince the Debian project to remove those non-free programs and eventually I gave up, I failed to convince them. So, as you can see, these are not the well-known distributions, the well-known distributions still include or distribute non-free software, so I can't recommend them.


Thus, after falling into the ditch, we have begun to climb out, but we still have further to go. And that shows what happens when we have a bunch of people who have freedom, but they don't know what freedom is and they don't appreciate it. They are likely to lose it. And today that's even more likely, but now we have something we didn't have twenty years ago.

[править] Powerful enemies of free software movement

Powerful enemies, such as big corporations, that want to stop us from developing free software for certain jobs. Many countries have laws that restrict the release of free software. The US has at least two such laws. One of these laws make it's illegal to distribute software to break digital restrictions management. Thus for instance, DVDs are made with digital restrictions management. The movie is usually encrypted, and in order for software to play the movie it has to know the code to decryption. And that software is forbidden in the Unites States, forbidden to distribute, it's censored. And not just in US but in European Union as well except for one country: Finland. Finland has the same law, but a court ruled last year, that this program is widely available that the DVD version of digital restrictions management now longer qualified under the law, because the law says: "effective technical means", and the court said: that's not effective anymore, everyone has this program.


Well, that's an interesting way of doing it, but in order to, you know... although I predict that those megacorporations like Microsoft and Hollywood will gonna bribe the Finnish government to change the law and get rid of this court decision, but if Finns can defend it, that will mean that any form of DRM will be legal to break once enough people have the software to break it, which is the challenge to us. [laughter, applause]

But in the meantime you simply must refuse to buy products infected with DRM unless you have software to break it with. If you are unable to make copies of it, don't buy it, don't even accept it as a gift, because it's an attack on your freedom.


Well, that's one way of forbidding free software, which only applies to certain kinds of applications, those for access to a digitally restricted works, but the other attack is from patent law, and that can forbid any kind of free program, because it can forbid any program. Because a large program combines thousands of little techniques, and algorithms, and code structures and data structures and features and everyone of those could be patented. In fact, even little aspect of a feature or an algorithm can be patented. You can have an algorithm which infringes ten different patents, each of which focuses on different parts of what's going on in that algorithm. So the result is that there is thousands of things in a big program that might be patented, each of which might be patented by somebody. Well, suppose, 10% of them actually are patented by somebody or other. That means a hundreds of different patents, each of which gives somebody a basis to sue you for developing the program. Isn't that fun for software developer? You write a program and now hundreds of different licenses to sue you have been handed out.


This is not good for software development of any kind, and that includes free software. The free software foundation just launched the campaign for the elimination of software patents. It's called "End software patents". Take a look for it. And this is a battle that we going to have to fight in every country. Software patents are a stupid policy and they're also a nasty policy, because they restrict every programmer and any software user, but the megacorporations like them, because the megacorporations in any field own /?/ have the patents, and they use these patents, thereful /?/ patents to make everybody else cross-license with them, with the exceptions of the companies we call "patent trolls", those patent trolls are companies whose only business or principal business is taking around a bunch of patents and finding others that they can sue. All they do is squeeze money out of somebody else. They're parasites.

So, we now have to face the attempts of these companies to stop us from writing free software. Twenty years ago it was a valid and only /?/ answered question whether we would have the ability to develop a broad range of free software. Today, since we mostly done that already, that's not much of a question anymore, but the question now is: will we be permitted to serve the public? Or will those who want the public to be helpless and divided by the help of governments to forbid us from serving the public?


So I'd like to cover a few specific topics. One is: free software and employment.

[править] Free software and employment

Some people predict that if the world moves to free software, all software development employment will go away. Now, this is just fud. Look at the IT sector. The IT sector includes many different kinds of jobs, paid programming work is a small fraction of that. We look at paid programming. Developing a proprietary software is a small fraction of that, because most of it is development of custom software, programs being developed for one client. Now, that is very important, because if the world rejects proprietary software, these jobs will disappear, this proprietary software won't be developed anymore. But these jobs will not disappear, they basically won't change much, because if a business wants a certain program developed this year, it's just going to have to pay, even in the world where all the software is free, freedom respecting, the businesses gonna have to pay.


([on the wall clock it's now about 17:50, and Ivannikov steps to RMS and says, looking at his wristwatch: "Richard, (indistinguishable) six". Growing laughter.]

I told everyone that this speech takes more than a hour and a half, I told people it takes usually two and a half hours, I don't know why they planned it with insufficient time. How sad, well, there is gonna be no time for questions, that means, that... it's not my fault. They didn't give us enough time!)

[the remainder of the speech is feeling more rushed]


So, basically, these jobs will not be lost, but meanwhile, free software generates new jobs, jobs adopting and extending free software, so we lose a few jobs, we gain a few jobs, I don't know whether that's a net increase or net decrease, the main thing is basically the IT sector employment is not changed much, there is nothing to be scared of.

[править] Free software and education


The other specific topic is free software and education. Schools must teach exclusively free software. There are four reasons for this.

The most superficial is to save money. Schools don't have enough money. They're limited by their budgets, they should not waste their money paying for permission to run proprietary software. But some proprietary software companies eliminate this reason, by donating by gratis or nearly gratis copies of their non-free software. And why do they do this? Is it because they are idealistic and they want to promote education? I don't think so. They are trying to use the schools to impose dependency on society. The idea is that schools teaches the students to use that non-free software, and the students graduate, and after they graduate the same company does not offer them gratis copies anymore, and especially not to the companies that they go to work for. So, in effect, the idea is: the company pick ups the school and uses it to push the students, which push all society into a pit. It's like handing out gratis samples of an addictive drug, saying: inject this into your students, the first dose is gratis. After that they'll have to pay. The schools should refuse to participate, refuse to be used in this way, because the school has the social mission: to educate the next generation to be good citizens of their strong, capable, cooperating free society. And a way you do that is by teaching people to be free software users.


But there is a deeper reason, for the sake of educating the best programmers. You see. Some kids /?/ of the age of thirteen or so, they are naturally born programmers and they're fascinated with programming, they want know how the computer works, they want to know how the system works, if this kid uses a program, he wants to know how it works, but when the kid asks the teacher how this works, if it's proprietary, the teacher can only answer: "I'm sorry, I don't know, it's a secret". But with free software the teacher can explain it as much as he knows, and then say: here is the source code, read it and you'll understand everything. [laughter, applause]

And that kid will read it all, because he's fascinated, and this way he gets the chance to learn something very important: how to program well. That's different from just to knowing how to program, which is obvious for him. The way you learn write good clean code is by reading lots of code and writing lots of code. Only free software give you the chance to do this. Every time this kid finds something in that source code which is hard to understand, he learns something important: don't write it that way. If even he can't understand, then it must be really hard to understand, so he's got to see lots of badly written code to learn all the things not to do. Only with free software every school can give kids this opportunity. I had to go to a special lab at MIT to have an opportunity like this, because the lab had a free operating system. Today every school can have it. But it has to reject proprietary software.


But there is even deeper reason, which is for moral education. Education of good citizenship. Schools have to teach the spirit of good will, the habit of helping your neighbor. So every class should have a rule: students, if you bring software to class, you may not keep it for yourself, you must share it with the rest of the class, until sharing software with other people around you becomes normal practice.

But, the school has to follow it's own rule in order to set that good example. It has to practice what it preaches. Thus, the school must only bring free software to class. Every school should teach and use only free software. When it says for the students: "Here is the computer you can use", it should have only free software in it, and all the source code should be available for these students to use, and on some of the machines the students should be able to change it and maintain it, they should be able to be the sysadmins, they should be able to be the system developers, because by doing it you learn how to do it.


This university should move completely to free software, there should be no non-free program inside these buildings.

[long applause]

(So, since we now have to leave... [hands out two packs of stickers] Can we put these at the exit, these are some stickers...



These say: "GPLv3", and these have the gnu and the penguin, both flying. [happy laughter, applause]

Take as many stickers as you can use.)


Richard Stallman

Лекции, прочитанные в рамках приезда в Моску в марте 2008 года
Free software: ethics and practice | Copyright vs Community in the Age of Computer Networks

Личные инструменты