Today I went to listen to a talk by Richard M. Stallman, also known as rms. If you don’t know who he is, he is an extremely sharp, witty, and free-thinking programmer/activist who wrote the GNU General Public License – commonly known as the GPL (website), developed the GNU operating system (which the Linux kernel runs inside), founded the Free Software Foundation, and has spearheaded the movement against proprietary software and its restrictions, championing the rights of computer users everywhere. He helped make software freedom what it is today and paved the way, in both a technical and legal sense, for the Linux kernel to become as popularized as it is today.
It’s important to note that, contrary to popular belief, “Linux” itself is not actually an operating system. It is a kernel, that is, an interface between software and hardware. When your software applications or the operating system need to access the computer’s memory, hard drive, or other system resources, the kernel is the part that takes care of those requests and communicates between them. GNU is basically the whole rest of the operating system, and your applications run on top of it. What happened is the GNU operating system was developed first, but Stallman and the GNU team had not yet developed the kernel. Enter Linus Torvalds, another praiseworthy programmer/activist who developed a kernel that worked with the GNU operating system and thus provided the missing piece. So what many people know as “Linux” is actually the combination of GNU plus the Linux kernel. Sadly, the GNU project and the vision of software freedom that Richard Stallman has championed, that is, the freedom to run, copy, distribute, study, change and improve software as one sees fit, are frequently attributed incorrectly to Linus Torvalds (and Torvalds does nothing to correct this, I’ve noticed). While I have much respect and admiration for Torvalds as a programmer, he was not the author of this philosophy nor the one who laid its foundations. If we’re going to give credit where credit is due, we should call it GNU/Linux, GNU & Linux, or GNU + Linux. No, it’s not as short and sweet as just “Linux,” but Linux would be pretty useless without GNU – and vice-versa.
To the layperson, all this may seem like splitting hairs. But think of a complete operating system like a bicycle. GNU is the body of the bike; it’s got a metal frame fitted with handlebars, a seat, and pedals. Linux is the wheels and bike chain. Without GNU you have wheels, but no useful way to make them roll forward or steer them in the direction you want to go – but those are the least of your problems since you also have no way to make them carry your weight. Without Linux you can steer and pedal all day, but since the controls aren’t hooked up to anything you won’t be going anywhere. There’s no interface between you and the ground.
EDIT 21 Jul 2009: There’s a much more detailed and eloquent discussion of it here. I realized I also neglected to elaborate on the fact that GNU makes up a much larger portion of the operating system than Linux does. So you can see why it’s rightfully called GNU/Linux and not Linux/GNU. See footnotes for Why GNU/Linux.
Hearing Stallman speak today, spending time with him and then going to dinner with him, I was struck by his eloquence, humour, generosity, and gentle spirit. I was inspired by his words to pay even closer attention to the restrictions placed on people by proprietary software licensing agreements, the freedoms imparted by using free/libre software (“free” as in “freedom), and to be more careful about giving proper credit to the one guy who envisioned those freedoms at a time when basically all the software out there was proprietary and closed-source. Nobody (except him, apparently) really even thought about that sort of thing at that time. I certainly didn’t, nor did anyone else I knew in the tech community. It’s difficult to express to those who weren’t there, just how radical Stallman’s views were at the time, and how hard he has worked to raise public awareness to the point that it exists today. He took the hippie ideals of freedom and sharing for the common good, and applied them to software in ways we had trouble wrapping our heads around at the time. After hanging out with him, I have to say I’m even more impressed by him than I was before. It was a treat and an honour to meet him and it absolutely made my day.
Before today, I thought I was already pretty well-versed in the freedom and concepts surrounding free software. I have been using GNU/Linux since at least 2001, and I had even contributed heavily to a detailed group response when the Canadian government asked for public feedback about the feasibility, pros and cons of free software. I went to hear Stallman and I got schooled until I was humbled and more than a bit embarrassed. I found that, even though I may not agree 100% with every single detail of his philosophy and course of action, I can’t help but admire the spirit and ideas behind them and do my best to promote them. Even if you think you know this issue quite well, it’s well worth visiting the GNU website to read about the four software freedoms he describes and the divisiveness, conflict, bullying and abuse that occur when software users don’t have those freedoms.
Stallman is also very politically active on a variety of other issues, including women’s rights, censorship, privacy, copyright law, the environment, and the Israeli-Palestinian conflict, among others. His personal website makes for a very interesting read and a real eye-opener on violations of civil liberties.