The Canonical Free Press

scratch

Senate Member
May 20, 2008
5,658
22
38
Free Software 101

Is Free Software software for free? If you are confused about the meaning of Free Software, then this article is for you.

To start with, let's demystify the word 'free.' Free software is often described by Richard Stallman as 'Free as in free speech, not as in free beer.' We are talking freedom and not cost here. This implies that the software can be used for just about any purpose.

To put this in context, I wonder how many people have read the license for the proprietary (non-free) software they install on their machines. Whenever you install a program, you are requested to agree to a license. This can be a legally binding contract that determines what you can and cannot do. Typically, those contract distills down to a simple fact: The vendor chooses what you are allowed to do, and you're not allowed to sue the vendor for any reasons.

Let's take a look at parts of the Windows Vista Home's EULA (End User License Agreement). Here are some semi-random snippets:

2.a Licensed Device. You may install one copy of the software on the licensed device. You may use the software on up to two processors on that device at one time. Except as provided in the Storage and Network Use (Ultimate edition) sections below, you may not use the software on any other device.
In other words, you cannot install Vista on more than one computer. In you have three computers, you need to buy Vista three times.

8. [...] you must comply with any technical limitations in the software that only allow you to use it in certain ways. [...] You may not work around any technical limitations in the software reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
In other words: You can't 'fix' it or look under the hood.

9. MICROSOFT .NET BENCHMARK TESTING. The software includes one or more components of the .NET Framework 3.0 (“.NET Components”). You may conduct internal benchmark testing of those components. You may disclose the results of any benchmark test of those components, provided that you comply with the conditions set forth at http://go.microsoft.com/fwlink/?LinkID=66406.
Interesting but fair. To release information about benchmarks, I need to do it the was Microsoft wants me to do it. But what about freedom of speech?

25. LIMITATION ON AND EXCLUSION OF DAMAGES. You can recover from Microsoft and its suppliers only direct damages up to the amount you paid for the software. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.
In other words, if Vista dies and wipes out all your corporate data, you can only get a refund for Windows. Yay!

4. USE WITH VIRTUALIZATION TECHNOLOGIES. You may not use the software installed on the licensed device within a virtual (or otherwise emulated) hardware system.
That's an interesting one. You cannot run Vista Home with VMware or VirtualBox. Why? Hint: It's not a technical reason. Second hint: Draw an S and place a vertical stroke through it.

The above as some example of limitations placed on you if you choose to install and use Windows Vista Home.

Most software that you install on your machine is going to carry some restriction. I hope you take the time to read was you are agreeing to when you click the 'I Agree' button. Just like commercial software, free (as in speech) software have their license.

The most common free software license is the GNU GPL (General Public License). It is used with the Linux kernel (the 'heart' of the Linux operating system), most of the command-line tools used in the Unix world, including Linux and Mac OS X, Open Java 7, MySQL and countless other software.

The goal of the GNU GPL is to provide the 'four freedom' of free software. Here are the four freedoms:
  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study and modify the program.
  • Freedom 2: The freedom to copy the program so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
(NB: Computer programmers like to start counting at zero instead of one)

The four freedoms work together to ensure that any software that is licensed as free software (ie: GPL), continues to remain free software.

Freedom 0
The first freedom is pretty straight forward: The freedom to run the program for any purpose. In other words, Microsoft Windows Vista Home is not free software because I cannot run it for any purpose. For example, I cannot run it in a virtual machine -- Microsoft chooses what I can and cannot do with Windows. On the other hand, I can run the Linux kernel just about anywhere I like. Proof: the Linux kernel is used in everything from digital cameras to routers to super computers. Oh, and it serves me marvelously as a desktop and server operating system

Freedom 1
The second freedom is one of my personal favourite - The freedom to study and modify the program. I can look under the hood! I cannot emphasize how much I learned from looking at other developer's code. Furthermore, if something does not work for me, I can fix it. This is why the Linux kernel is found in places like digital cameras and supercomputers. We are allowed to modify it.

Freedom 2
Freedom 2: The freedom to copy the program so you can help your neighbor. Yes. You read that right. You are allowed -- and encouraged -- to copy the software. Can you do this with Windows? Legally? I do not advocate copying software illegally. Quite the opposite. However, I'm always happy to 'help my neighbor.'

Freedom 3
And finally, Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. This may sound like a given, but some program come with the source file, and you are allowed to modify it, but cannot release the modification to the public. An example of that is the Torque game engine by GarageGames.

Linux Torvalds initially offered his kernel for free under the GNU GPL, giving any developers who were interested the four freedoms mentioned above. In the very first posting, Linus said "It is NOT protable [...], and it probably never will support anything other than AT-harddisks, as that's all I have :-(." Interestingly, Linus predicted that his kernel would never evolve beyond the 386 of the days. Today, the Linux kernel is available practically everywhere. Had Linus removed any of the four freedoms, chances our his kernel would be a forgotten piece of code today.

The four freedoms are the heart of free software. However, it does not mean that free software is without restriction. Some of those restrictions will be explored in my next entry: Free Software 202.Labels: free software, gnu, gpl, linus torvalds, linux, microsoft, richard stallman, vista, windows