Monday, July 28, 2008

A Non-insider's Guide to Free and Open Source Software

For years I have been using and, in some cases, promoting "open source" software, but until a few months ago, I really couldn't have told you what is really behind that idea. I knew vaguely what it is - that the source code for a certain software program is "open" (available) and can be copied and improved upon by anyone who wants to. And that's good, right? But since neither I nor anyone I know actually would delve into the source code (at least not at this point), what does it matter? Windows, Office, and Adobe Reader all work, even though they don't share their source codes, so why should an end user (that's you) care? From a practical point of view, there are not that many compelling reasons, but I'll try to lay out what "Free" and "open source" mean and why they might just matter to you after all.

A Nutshell History - Free Software and GNU

In the 1970s, long before everybody had computers in their homes, computers were confined to university research centers, and software was free and shared for the most part. Two future figures in personal computing came out of this era with opposite impressions. Bill Gates, frustrated by the idea that software was being shared among computer enthusiasts without payment to the software creators (known as "pirating" software), wrote an open letter saying so, in which you can see the seeds of the Microsoft business model.

Richard Stallman, on the other hand, became frustrated that people were putting restrictive licenses on what was previously open and shared software, and in response to this, he created the Free Software Foundation, which still advances the cause of Free Software. Stallman's greatest innovation is the intellectual property workaround of "copyleft," in which a program's creator copyrights the source code, then releases the source code and program with the condition that it must remain Free and shared and that any modifications to it must also be shared in turn, preventing anyone from taking, say, the Linux kernel, changing the code, then copyrighting that code to make millions of dollars. This concept has been codified in what is known as the "GNU General Public License" or "GPL," which led to the Linux/Open Source revolution as much as anything else.

If you are interested in Richard Stallman's ideas about this, peruse the GNU Project website. It is worth mentioning that what is normally referred to as "Linux" is actually just as much Richard Stallman's GNU system (hence some distributions' insistence on calling it "GNU/Linux") - unfortunately for Stallman, "Linux" is a much catchier, if not quite accurate, name.

"Open Source" Software

In the late 90s, as Linux began to take hold as a viable alternative to proprietary software, Free Software advocates began attempting to shop their software programs to the business world. Given the political stances of the Free Software movement, and the inherent trouble of describing software as "free" to people interested in making money, several Free Software figures got together and formed the Open Source Definition, which was based largely on Debian's Free Software Guidelines. This new term (to which Richard Stallman strongly objects) gave businesses a way to extol the practical benefits of free software without having to negotiate the ambiguous (and potentially loaded) term "free." Unfortunately, "open source" is also ambiguous enough to lead to situations where companies may release their source code (making it "open"), but will attach a number of caveats about its use and redistribution that are not at all in line with the Free Software movements goals (or those of the Open Source Initiative for that matter).

"Freeware", "Shareware", and Other Confusions

To add a large dose of confusion to what is already a complicated topic, there are many software programs out there on the Web which are free to use, but are not Free or Open Source software. These programs will often use terms like "freeware" or "shareware" in their descriptions, which to the untutored eye all look the same. Browsers like Internet Explorer or Safari, or programs like iTunes, Adobe Reader, or VMWare, are all free to download and use under certain conditions. There is also a growing number of free (of cost) web-based services that have come to define the idea of "Web 2.0"-style computer usage, like Google Documents, PBWiki, and even Blogger (which I use to host this blog). These are not Free Software in the "free as in speech," Open Source Definition/GPL sense. As Free Software advocates continually have to explain, the "Free" is about "freedom", not cost, and these "pseudo-free" programs have ulterior motives when they don't charge for their use (mainly advertising).

How to Tell if Your Software is Free

Now that I've laid out what's Free and what isn't, how do you tell? Here are a few characteristics of non-Free software:
  • A restrictive End User License Agreement (EULA) - a quick glance should tell you - you will see a lot of "You may not . . ." language.
  • Many non-Free programs will attempt to slip in extra software (like the Yahoo! or Google browser toolbars that track your internet usage and provide advertisers with whatever personal information you don't explicitly "opt out" of)
  • You may see advertisements appear during the installation process
  • You may have to enter your personal information to "register" your product or use a product key to be able to use the product
Free software programs will often be licensed under the GPL or some other license (Apache, Mozilla, and other open source companies provide this sort of licensing as well). Look for language affirming the rights to redistribute and share the product.

It's All About Choices

Just like in your grocery-shopping, software choices matter. Most of the time (at least to my palate) conventionally-grown brocolli tastes the same as organically-grown brocolli, so why spend the extra money? I buy organic fruits and vegetables (when possible) because I know (or trust) that my body doesn't need the extra chemicals and pesticides that are used in conventional factory farming nowdays. Free and Open Source software are similar, in that you know that you can use conventional corporate software solutions with all of their caveats and insidious advertising, or your can use Free and Open Source software, which guarantee your freedoms to use and share it as you see fit, without any ulterior motive. You can argue that they "taste the same", but isn't an extra glance at the EULA worth the effort?


MJ said...

Chris.. calling an operating system by the name of a kernel is not "accurate". As a librarian, you might want to use words more wisely.

Your claim is not conforming to fact. If it's your opinion, then you have the right to have one. Otherwise, you should provide proof.

It is no where near precise.

It's not the standard to call an operating system by the name of a kernel. Mac OS X uses a kernel called XNU.

Is there another definition of that word "accurate"?

Your "accurate" name only confuses others, only for them to understand better later on, like you are now.

And let alone the fact that some of us use the same software and tools, except with different kernels.

Chris said...

Hi MJ,

Thank you for your comment. I'm not sure I understand your complaint. I refer to the commonly-used name "Linux" as "not-quite accurate," which you could read as "inaccurate" if you prefer, but I don't see how it could be read as "accurate." I'm also a little confused about your seemingly confrontational tone. If I can clarify something for you, please tell me. Or maybe it's me not understanding you.


MJ said...

Hi Chris..

I have been reading it the wrong way, and realize and see that it is my mistake of interpretation. I apologize for that.

I can show you how it can be read wrongly, though I don't want to do it, in order to not look like defending it.

However, if one was not sure of how to read it anyway, and continued reading the next line, will find the usage of word "Linux" referring to the operating system. So one can go back and think Chris is pro using the word. To be sure one can read other posts and see the word there too, many times, despite what it says under the title of the blog.

This too in not said in defense. And you are of course free to choose your words, always.

Chris said...


Thanks again for your feedback. I have had this discussion with another commenter before. My blog is directed toward the new GNU/Linux user, and as a recent adopter myself, I had a lot of trouble at first understanding all of the terminology. My goal in this blog is to get people interested in actually using Linux (or GNU or GNU/Linux) without getting too caught up in semantic hair-splitting. I also understand that semantics are important and that there is a rift in the F(L)OSS community about free vs. open source and Linux vs. GNU and Torvalds vs. Stallman, but my goals are to get your everyday Windows or Mac user to understand that GNU/Linux is a functional, stable, and usable program. Once they begin to use GNU/Linux, then we can educate those new users about the importance of GNU and the Free Software movement.

My point is, I think we're all on the same side.


Danica said...

You write very well.

Chris said...


Thanks so much!