Linux, GNU, and freedom

by Richard M. Stallman

Since Joe Barr's
article criticized my dealings with SIGLINUX, I would like to
set the record straight about what actually occurred, and state my
reasons.

When SIGLINUX invited me to speak, it was a “Linux User
Group”; that is, a group for users of the GNU/Linux system
which calls the whole system “Linux”. So I replied
politely that if they'd like someone from the GNU Project to give a
speech for them, they ought to treat the GNU Project right, and call
the system “GNU/Linux”. The system is a variant of GNU,
and the GNU Project is its principal developer, so social convention
says to call it by the name we chose. Unless there are powerful
reasons for an exception, I usually decline to give speeches for
organizations that won't give GNU proper credit in this way. I
respect their freedom of speech, but I also have the freedom not to
give a speech.

Subsequently, Jeff Strunk of SIGLINUX tried to change the group's
policy, and asked the FSF to list his group in our page of GNU/Linux
user groups. Our webmaster told him that we would not list it under
the name “SIGLINUX” because that name implies that the
group is about Linux. Strunk proposed to change the name to
“SIGFREE”, and our webmaster agreed that would be fine.
(Barr's article said we rejected this proposal.) However, the group
ultimately decided to stay with “SIGLINUX”.

At that point, the matter came to my attention again, and I
suggested they consider other possible names. There are many names
they could choose that would not call the system
“Linux”, and I hope they will come up with one they
like. There the matter rests as far as I know.

Is it true, as Barr writes, that some people see these actions as an
“application of force” comparable with Microsoft's
monopoly power? Probably so. Declining an invitation is not
coercion, but people who are determined to believe that the entire
system is “Linux” sometimes develop amazingly distorted
vision. To make that name appear justified, they must see molehills
as mountains and mountains as molehills. If you can ignore the
facts and believe that Linus Torvalds developed the whole system
starting in 1991, or if you can ignore your ordinary principles of
fairness and believe that Torvalds should get the sole credit even
though he didn't do that, it's a small step to believe that I owe
you a speech when you ask.

Just consider: the GNU Project starts developing an operating
system, and years later Linus Torvalds adds one important piece.
The GNU Project says, “Please give our project equal
mention,” but Linus says, “Don't give them a share of
the credit; call the whole thing after my name alone!” Now
envision the mindset of a person who can look at these events and
accuse the GNU Project of egotism. It takes strong prejudice to
misjudge so drastically.

A person who is that prejudiced can say all sorts of unfair things
about the GNU Project and think them justified; his fellows will
support him, because they want each other's support in maintaining
their prejudice. Dissenters can be reviled; thus, if I decline to
participate in an activity under the rubric of “Linux”,
they may find that inexcusable, and hold me responsible for the ill
will they feel afterwards. When so many people want me to call the
system “Linux”, how can I, who merely launched its
development, not comply? And forcibly denying them a speech is
forcibly making them unhappy. That's coercion, as bad as
Microsoft!

Now, you might wonder why I don't just duck the issue and avoid all
this grief. When SIGLINUX invited me to speak, I could simply have
said “No, sorry” and the matter would have ended there.
Why didn't I do that? I'm willing to take the risk of being abused
personally in order to have a chance of correcting the error that
undercuts the GNU Project's efforts.

Calling this variant of the GNU system “Linux” plays
into the hands of people who choose their software based only on
technical advantage, not caring whether it respects their freedom.
There are people like Barr, that want their software “free
from ideology” and criticize anyone that says freedom matters.
There are people like Torvalds that will pressure our community into
use of a non-free program, and challenge anyone who complains to
provide a (technically) better program immediately or shut up.
There are people who say that technical decisions should not be
“politicized” by consideration of their social
consequences.

In the 70s, computer users lost the freedoms to redistribute and
change software because they didn't value their freedom. Computer
users regained these freedoms in the 80s and 90s because a group of
idealists, the GNU Project, believed that freedom is what makes a
program better, and were willing to work for what we believed in.

We have partial freedom today, but our freedom is not secure. It is
threatened by the CBDTPA
(formerly SSSCA),
by the Broadcast “Protection” Discussion Group
(see http://www.eff.org/) which
proposes to prohibit free software to access digital TV broadcasts,
by software patents (Europe is now considering whether to have
software patents), by Microsoft nondisclosure agreements for vital
protocols, and by everyone who tempts us with a non-free program
that is “better” (technically) than available free
programs. We can lose our freedom again just as we lost it the
first time, if we don't care enough to protect it.

Will enough of us care? That depends on many things; among them,
how much influence the GNU Project has, and how much influence Linus
Torvalds has. The GNU Project says, “Value your
freedom!”. Joe Barr says, “Choose between non-free and
free programs on technical grounds alone!”. If people credit
Torvalds as the main developer of the GNU/Linux system, that's not
just inaccurate, it also makes his message more
influential—and that message says, “Non-free software is
ok; I use it and develop it myself.” If they recognize our
role, they will listen to us more, and the message we will give them
is, “This system exists because of people who care about
freedom. Join us, value your freedom, and together we can preserve
it.”
See http://www.gnu.org/gnu/thegnuproject.html
for the history.

When I ask people to call the system GNU/Linux, some of them respond
with silly excuses and straw men.
But we probably haven't lost
anything, because they were probably unfriendly to begin with.
Meanwhile, other people recognize the reasons I give, and use that
name. By doing so, they help make other people aware of why the
GNU/Linux system really exists, and that increases our ability to
spread the idea that freedom is an important value.

This is why I keep butting my head against bias, calumny, and grief.
They hurt my feelings, but when successful, this effort helps the GNU
Project campaign for freedom.

Since this came up in the context of Linux (the kernel) and Bitkeeper,
the non-free version control system that Linus Torvalds now uses, I'd
like to address that issue as well.

Bitkeeper issue

The use of Bitkeeper for the Linux sources has a grave effect on the
free software community, because anyone who wants to closely track
patches to Linux can only do it by installing that non-free program.
There must be dozens or even hundreds of kernel hackers who have done
this. Most of them are gradually convincing themselves that it is ok
to use non-free software, in order to avoid a sense of cognitive
dissonance about the presence of Bitkeeper on their machines. What
can be done about this?

One solution is to set up another repository for the Linux sources,
using CVS or another free version control system, and arranging to
load new versions into it automatically. This could use Bitkeeper to
access the latest revisions, then install the new revisions into CVS.
That update process could run automatically and frequently.

The FSF cannot do this, because we cannot install Bitkeeper on our
machines. We have no non-free systems or applications on them now,
and our principles say we must keep it that way. Operating this
repository would have to be done by someone else who is willing to
have Bitkeeper on his machine, unless someone can find or make a way
to do it using free software.

The Linux sources themselves have an even more serious problem with
non-free software: they actually contain some. Quite a few device
drivers contain series of numbers that represent firmware programs to
be installed in the device. These programs are not free software. A
few numbers to be deposited into device registers are one thing; a
substantial program in binary is another.

The presence of these binary-only programs in “source”
files of Linux creates a secondary problem: it calls into question
whether Linux binaries can legally be redistributed at all. The GPL
requires “complete corresponding source code,” and a
sequence of integers is not the source code. By the same token,
adding such a binary to the Linux sources violates the GPL.

The Linux developers have a plan to move these firmware programs
into separate files; it will take a few years to mature, but when
completed it will solve the secondary problem; we could make a
“free Linux” version that doesn't have the non-free
firmware files. That by itself won't do much good if most people
use the non-free “official” version of Linux. That may
well occur, because on many platforms the free version won't run
without the non-free firmware. The “free Linux” project
will have to figure out what the firmware does and write source code
for it, perhaps in assembler language for whatever embedded
processor it runs on. It's a daunting job. It would be less
daunting if we had done it little by little over the years, rather
than letting it mount up. In recruiting people to do this job, we
will have to overcome the idea, spread by some Linux developers,
that the job is not necessary.

Linux, the kernel, is often thought of as the flagship of free
software, yet its current version is partially non-free. How did
this happen? This problem, like the decision to use Bitkeeper,
reflects the attitude of the original developer of Linux, a person
who thinks that “technically better” is more important
than freedom.

Value your freedom, or you will lose it, teaches history.
“Don't bother us with politics,” respond those who don't
want to learn.

Update: Since 2005, BitKeeper
is no longer used to manage the Linux kernel source tree. See the
article, Thank You, Larry
McVoy. The Linux sources still contain non-free firmware blobs,
but as of January 2008,
a free version of
Linux is now maintained for use in free GNU/Linux
distributions.