What is Free Software?
Quoting from the Free Software Foundation:
``Free software'' is a matter of liberty, not price. To understand the concept, you should think of ``free'' as in ``free speech,'' not as in ``free beer.''
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:
A program is free software if users have all of these freedoms.
- 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). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
What does is mean to "have these freedoms"? Most software licenses take away your freedom. If you read the fine print before you take the shrink-wrap off of the box, you'll see that you're agreeing to abide by the terms of the license underneath the shrink-wrap. Typical proprietary licenses take away your rights, for example they'll say that you're not allowed to make copies of the software, or that you're not allowed to export it to certain places, or that you're not allowed to use it for certain purposes. Some of these restrictions are pretty ridiculous, for example many database products don't allow you to publically write about how fast the software runs.
Free Software is also licensed. It's owned by the people that wrote it, but they've decided to release it to you under certain license terms. The most common license for Free Software is called the GNU General Public License, or GPL. The GPL is often called a "copyleft" because it uses the copyright laws, but it turns them around to give users more rights rather than take them away. The important feature of the GPL is that it grants you these rights only if you agree to also grant them to others. That is, if you take the software, you must share it under the same terms that it was shared to you. If you make improvements then you must share those, too.
What is Open Source Software?
Open Source Software is software that is licensed under terms that give you access to the source code. Many people, especially in the business community, find Free Software proponents' concern about "rights" and "freedoms" to be strident, so they focus instead on the practical benefits that accrue from having access to the source code of the software. The term "Open Source" was coined to describe software that's available with the source code, but which is licensed using licenses that don't necessarily protect the community's freedom. Many such licenses are available, including the BSD License, Apache License, Artistic License, and of course the Public Domain.
What Are Examples of Free/Open Source Software?
- Apache webserver (60% of all web sites on the Internet)
Why should I use Free Software?
As we mentioned above, proprietary software licenses often require that you give up certain rights before you're allowed to use it. One of these rights is the ability to reverse-engineer the software. This doesn't seem like a big deal until you consider that that includes the file formats that your data is stored in. Proprietary vendors love this, they can lock up your data in proprietary file formats which makes it difficult and time-consuming to switch away from their program.
Because Free Software (and Open Source software) authors don't have a vested interest in "locking you in" to their programs they tend to store data in either industry-standard, or "open" file formats. This means that you have more flexibility in using the right tools for the job, and you don't have to worry about moving your data where you want to.
As a thought experiment, let's say that you're using a proprietary program and find a bug, or have a great idea for something that the program should do. What can you do besides beg the vendor to fix or improve the program? Not much. Basically, the vendor can decide at their whim whether they want to fix your bugs or add an animated paperclip to their program. Free Software, because it grants you Freedom 1 (above) allows you
to fix the bug, add the feature, or pay someone locally to do it for you. Note that this freedom can sometimes be pretty abstract, after all, web browsers and word processors are huge, complex programs, and most people can't just jump in and modify them and expect them to work. But Free Software empowers users in another way: the developers of Free Software almost always interact directly with their users. So even if you can't add a feature to the program, you can talk to the person that wrote it, and convince them that your feature is a good idea.
Software is of wildly varying quality overall. Good software is very high quality, and bad software can be of stunningly bad quality. But overall Free Software and Open Source has a very good track record of providing very high quality software, in many cases higher quality than proprietary alternatives. Why is this? In the Free Software community, a common expression is "with enough eyes, all bugs are shallow." This means that more people looking at the source code will find more bugs in it, which will lead to the bugs being fixed. As a result, my experience is that Free Software is at least as high quality as proprietary software, and often higher quality.
One important quality dimension where Free Software has been found to be higher quality than its proprietary equivalent is security. While it might seem that more people having access to source code would result in a less secure program, it turns out that the opposite is true. A system's security is inversely proportional to the number of secrets that need to be kept to use it. "Security through obsurity" is a fallacy since the loss of any of the secrets will compromise the system.
A good example of the security advantage of Open Source software is the Mozilla browser. It has recently become so much more secure than its proprietary equivalent that it's been recommended by the Department of Homeland Security. In fact, even Microsoft's security chief uses it!
Last but not least, Free Software often costs less to use than proprietary software. I say "often" because the cost to buy the software is rarely the largest cost over the lifetime of the software. But for small companies and cash-strapped non-profits the cost to buy the software can be significant.
Another area where Free Software often costs less than proprietary software is hardware requirements. Free Software is often more frugal than proprietary software so it can run on older or less expensive machines.
What are the disadvantages?
- fewer games, programs for young kids
- some web sites only work with Internet Explorer
- different device drivers for hardware (can't use Win32 drivers)
- Interoperability with MS office tools (good but not perfect)
- fewer commercial programs than other platforms (but improving)
Who writes Free Software?
One frequently-asked question from newcomers to the Free Software community is "how can writing software and giving it away be sustainable?" The answers to this question are as varied as the people who answer it. But before we discuss the answers, let's discuss one of the assumptions in the previous question. Remember that the "Free" in "Free Software" refers to freedom, not price. Therefore it's perfectly valid to sell Free Software for money, and many companies do.
So, who writes Free Software? At a high level, we can divide them into four categories: corporations, non-profits, universities, and individuals. Corporations such as IBM write Free Software because it helps them sell other products that they make money on, such as consulting services or hardware. Other corporations (such as Novell) write Free Software when it complements their proprietary software. Still other corporations (such as Red Hat and Mysql) base their business entirely on Free Software.
Several non-profit organizations exist to write, coordinate, and advocate Free Software. The oldest of these is the Free Software Foundation, which is led by Richard M. Stallman, who wrote the GNU General Public license. The FSF was founded in 1985, and is still active today. More recently, the Apache Foundation and Eclipse Foundation joined the FSF in promoting Free Software. Non-profit organizations are well suited to participate in the Free Software community because they're in a position to coordinate between corporations and individuals, because the corporations don't see them as being competitive. For example, when IBM decided to make the "Derby" database program open source it did so by donating the copyrights to the program to the Apache Foundation.
Universities have been active participants in the Free Software community for many years, and this participation continues to this day. Many of the important Free Software programs (such as the BSD Operating System, the X Window System, and the Apache Web Server) were written by universities and released as Free Software.
Ultimately, though, the creation of a software program is done by individuals. Why do individuals write Free Software? The reasons vary. Some are paid to do it full-time, by the organizations that participate in the community. Others use Free Software at work and try to contribute bits and pieces as they go. Others participate as a hobby, and still others contribute because they believe in the ideals of Freedom and individual empowerment.
How do I get into Free Software?
There are many roles to play; naturally some consume more time than others.
An easy and fun way to get involved with the community is to use Free Software, starting with one or two programs and eventually ending up using it for all of your computer tasks. By doing so you're joining a community of people who are living their beliefs. The Mozilla Web Browser and OpenOffice Office Suite are two good choices to start with since they're mature and interoperate well with their proprietary alternatives. You can experiment with the GNU/Linux operating system using a "live CD" distribution such as Knoppix. This will give you an idea of what Free Software programs that you can use to do your work. When you decide to make the jump to GNU/Linux, start by installing a distribution such as Debian GNU/Linux which is available at no cost over the internet or for low cost on CDROM. Debian is maintained by volunteers worldwide and contains many programs in ready-to-run binary form. It is not considered the easiest distribution to install but help is available on the net. If you feel that you need more support (and are willing to pay for it) there are many commercial GNU/Linux distributions available. Users can help in many important ways such as writing high-quality bug reports, making feature requests, and gathering functional requirements. Users provide important feedback to the maintainers.
If you'd like to make a more substantial contribution to the community then you can start by subscribing to the project mailing lists and offer your help there. Many projects need both technical and non-technical help so there will probably be something that you can do to help.
- the definition of Free Software.
- the GNU General Public License
- Who owns your data?
- survey of web server market share
- Microsoft's security chief uses Mozilla Firefox
- the Mozilla Organization
- the OpenOffice project
- the Knoppix project
- the Apache Foundation