The terms 'free software' and 'open source' are often used interchangeably, but those attending Richard Stallman's presentation at the Australian Computer Society Victorian branch forum last night were left in no doubt about his view of philosophical difference.
The benefits of open source are presented in terms of practical values such as reliable software, he said, but the free software movement prefers freedom to utility. This, he explained, is because free software can always be improved, but you can't regain the freedom you lose by using non-free software.
The two camps therefore have a very different view of proprietary software. It's becoming increasingly common for companies to run proprietary software such as the Oracle database on GNU/Linux (Stallman takes exception when people refer to the operating system as Linux for reasons we'll explain later), but that's not acceptable to a free software advocate. To explain why, we must first examine Stallman's definition of free software (derived from this site), which involves four freedoms for the user:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1).
- The freedom to redistribute copies so you can help your neighbour (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3).
Without these freedoms, using software presents people with ethical dilemmas. If a neighbour sees you running a program, realises it would be useful and asks for a copy, what do you do? If the program isn't free, you have to choose between two evils: either be a bad neighbour by not helping, or violate the software licence. The latter is the lesser evil, he argued, because the organisation supplying the software has already done something bad to you by supplying proprietary software, but you would still be going back on your promise. Furthermore, you are spreading more copies of non-free software that will present a similar dilemma to the recipients. The answer, said Stallman, is to only use free software.
A spirit of goodwill is a society's most important asset, he argued, as it makes the difference between a humane society and a dog-eat-dog jungle. Some organisations are "poisoning" this resource, he said: "they are the terrorists, and we have to bring their terror campaign to an end".
Freedom 1 is necessary to protect users from hidden features that may spy on, interfere with, threaten or harass them. Stallman didn't claim that all proprietary software does that, but he listed several widely used items that do, including Windows XP's search function, Windows Update, Windows Media Player and RealPlayer. He also pointed out that one unauthorised attempt to build a backdoor into Windows is known to have failed, and wondered whether any had succeeded.
Access to the source also means you can change a program if you don't like any of its features. But not every computer user is a programmer, and there is more free software than any one person could examine and change. Freedom 3 lets people work as a community, giving others the benefit of the work done by those able to make changes, he said. If enough people like a change, that version becomes the norm. It also means that users can contribute to a fund to pay programmers to make agreed changes for them. Free software thus implies a free market for support and services that isn't tied to the original developer, explained Stallman. "Freedom is not having a choice of masters, freedom is not having a master".
So why 'GNU/Linux' rather than 'Linux'? Over 20 years ago, Stallman decided he was ethically unable to work with software that wasn't free, so he set himself the task of building a complete replacement for Unix. In a spirit of "playful cleverness" he named the project GNU, a recursive acronym for GNU's Not Unix. He invited others to help, and in January 1984 he quit his job at MIT to ensure that organisation would have no claim on his work. "I've never had a job since then," he said. "I avoid expensive habits".
By early 1990, the initial system was largely complete and most of it had been released under the GNU General Public Licence that ensures users have the four freedoms, but it lacked a kernel. Stallman though using the Mach microkernel would be quicker than building one from scratch, but "it still doesn't run reliably".
In 1991 the Linux kernel appeared, and in 1992 it was released under the GNU GPL. Combining Linux and GNU would give a complete free operating system, "and that's what people did," said Stallman, but they got confused and started calling the whole thing Linux "instead of realising the whole thing is basically GNU".
He didn't play down the significance of the Linux kernel, indeed he acknowledged that it carried GNU across the finishing line by making it a complete system that could be installed on a bare computer. Stallman's concern is that this confusion broke the connection between the free software philosophy and the software itself.
Linus Torvalds just wants technically good software, Stallman says, and other people are following that stand and are arguing against the GNU philosophy without realising they are GNU users. Often they write off the philosophy as being impractical while they are using its practical fruits, he says. There are tens of millions of GNU/Linux users, said Stallman, but a large fraction of them have never heard the idea that it is about freedom so they need to be taught to understand and defend it. "That's the job that hasn't been done by our community," he said.