Free software is all around you. It runs the web pages you visit, the chat and e-mail systems you use, even the operating systems that electronic devices run. You can find free software embedded in the appliances, electronics and portable devices used by people in the public and private sectors for entertainment, commercial, academic and military use.
Predictably, the free software community is vast. With the emergence of the internet, various initiatives and groups have formed to attempt to organize efforts of contribution. These groups are split by various ideologies and purposes, but all with a common philosophy – to provide software for free.
The term free software is often a generalized term that is used interchangeably with open source software. Open source software is in fact a bit different than free software, although many things are identical. Open source includes various software licenses that are considered too restrictive, and haven’t yet accepted other software licenses permitted under the terms of free software (FSF – Categories of Free Software). These ideologies are maintained by the Free Software Foundation and the Open Source Initiative.
Why Choose Free and Open Source Software?
Free and open source software is an important aspect of the software community and there are numerous articles and manifestos explaining the many highlights of such software. These texts brush upon three major topics – knowledge, time and money.
Free and open source software shares its thoughts and ideas by providing the source code used to build the system. This is an invaluable asset to the free and open source software community. When you use proprietary software, you don’t get the source code so the inner workings and algorithms used within those programs are hidden within compiled binary executables or other methods. The knowledge is not shared with the consumer, just the ability.
By providing source code, future development efforts by development are dramatically improved. Free and open source software tends to be very modular and cohesive, allowing fast integration into other systems. (RedHat – Why Open Source Technology?) Large tasks can be tackled with relative ease.
The sum benefit of all this is money. There are free or open source software solutions available to handle nearly anything a proprietary software product can, and sometimes better. Where no free or open source solution exists, or potentially no proprietary one either, modular source code does to save time and thus money on development.
In many cases, the cost is that you give back to the people who gave to you and share your code. Proprietary software vendors think this cost is too much to bear and think that proprietary software gives consumers a competitive advantage. Richard Stallman, founder of the Free Software Foundation and the GNU Project, attacks many of these arguments in an article he wrote called the GNU Manifesto.
Proprietary software vendors are in business to make money. It is many proprietary vendor’s standpoint that free software would put them out of business. Stallman argues that by providing software freely and then charging for a service, proprietary vendors could still make money off consumers. ”If … [users] … would rather spend money and get a product with service, they will also be willing to buy the service having got the product free.” (Stallman – The GNU Manifesto)
Free Software Groups
There are two major groups that define and organize the free software industry – the Free Software Foundtation (FSF) and the Open Source Initiative (OSI). Both groups have a slightly different philosophical approach to free software.
Free Software Foundation (FSF)
The Free Software Foundation was founded on October 4th, 1985 by Richard Stallman, the founder of the GNU Project and free software advocate. The purpose of the FSF was to support the free software movement, a movement intended to support the freedom to distribute and modify computer software without restriction via copylefted licensing. (Free Software Foundation – Wikipedia)
Until the mid 1990’s, the FSF mostly funded various software development initiatives on the GNU Project. Since then they have been responsible for organizational and legal issues for free software and the free software community. The FSF holds various copyrights on core assets of the GNU system, and often exerts them when copyright infringement occurs on that asset.
The FSF still has various ongoing activities such as The GNU Project, Free Software Directory, GNU Press, publishing the GNU Licenses and maintaining the Free Software Definition.
Open Source Initiative
The Open Source Initiative was founded in 1998 in California. Their goal is to support open source software and actively involved in community-building and education. They hold conferences and events, meeting with developers and users, and educate executives in the public and private sectors about open source technologies. (Open Source Initiative - Wikipedia)
The OSI maintains the open source definition as well as approves various open source licenses including Apache 2.0, BSD, MIT, and the Common Public License. The GNU Project’s GPL and LGPL licenses are also approved under the open source definition.
Free Software Defined
Free software is defined by the Free Software Foundation as software that comes with permission for anyone to use, copy, and distribute, either verbatim or with modifications, either gratis or for a fee. (Free Software Foundation – Categories of Free Software) This is very concise definition of free software, but it demands inspection.
The Four Freedoms of Free Software
For a particular piece of software to be considered free, the users of software must have four available freedoms: the ability to use a software system for any purpose, the availability of the software’s source code, the right to redistribute the software system, and the freedom to improve and distribute improvements. Without these freedoms the software cannot be considered truly free. (Free Software Foundation – The Free Software Definition)
Freedom 1: Usage
The first freedom is important as it elevates the purpose of the user over the purpose of the developer. The developer is not entitled to impose restrictions on software usage for any person or organization, nor is the user required to communicate with the developer about how it is being used. The user or organization is free to use the program for any purpose.
Freedom 2: Source Code Availability
The second freedom is important because it predicates the remaining two freedoms. This freedom is very much an academic philosophy that is important to many developers and users of computers – the idea that knowledge should be freely available. This freedom allows the user to study how a particular piece of software works and adapt it to their needs.
Freedom 3: Redistribution
Under the third freedom, the redistributed copy must include binary or executable versions of the program, as well as the source code. The binary versions of the software system is important for defining that large free software systems, such as operating systems, are easily installable by the end user. There are situations in which certain software programming languages don’t have a feature to supply a developer with a binary or executable form of the software system, and those cases are alright.
Freedom 4: Improvement and Distribution
The fourth freedom is meant to allow users the ability to continue development and release the improvements to the public. This is great as it allows people to improve and build upon existing ideas, or refine an idea for any other usage and distribute the modifications freely.
Free Software Considerations
One of the major differences between free software licensing stems from the idea of the free software license itself. People who give their time and effort in the form of a software system to the community for free tend to be motivated by the same idealistic goal: to spread freedom and cooperation. Propriety software licensing often inhibits cooperation and adaptation. The idea of licensing your free software under a copyleft takes these restrictions to the reverse – enforcing that future adaptation and cooperation of the software system will also be licensed and redistributed in a free software manner. (Stallman – Copyleft: Pragmatic Idealism)
A copylefted software system often has restrictions in the software systems that use it, enforcing that they as well are free software systems. The idea is simple -- proprietary software systems use their copyrights to stop users from sharing and adapting their software system, so people giving their software to the community freely can use the copyright to give other cooperators an advantage in that they can use their work.
While any restriction on the concept of free seems to be an oxymoron, it is more a pragmatic take on the free software ideology. The goal is to provide free software, and this method works to achieve the goal.
Open Source Software Defined
Open source is defined by the Open Source Initiative (OSI) as 10 distinct distribution criteria: (Open Source Initiative – Open Source Definition)
10 Distribution Criteria
Criteria 1: Free Redistribution
The license should not restrict anyone from selling or giving away the software as a component of another software system which could contain software from various sources. The license must not require a loyalty or fee. In other words, you can do whatever you want with the software system and there is no imposed restriction.
Criteria 2: Source Code
The distribution must include software source code as well as compiled binary, if applicable. If the distribution does not supply source code, it must list where it can be found in a well-publicized manner.
Criteria 3: Derived Works
The license allows improvement and modification, as well as redistribution under the same original license.
Criteria 4: Integrity of Author’s Source Code
The license can restrict distribution of modified source code only of the license also permits distribution of patch files that allow for source code modification. Otherwise the license explicitly permits distribution of software built from modified source code.
Criteria 5: No Discrimination Against Persons or Groups
The license cannot discriminate against any person or group.
Criteria 6: No Discrimination Against Fields of Endeavor
The license cannot discriminate against usage in any specific field of endeavor. Meaning it can be used for any purpose.
Criteria 7: Distribution of License
The rights attached to the original program are applied to anyone the program is redistributed to without having to exercise an additional license.
Criteria 8: License Must Not Be Specific to a Product
The attached rights of the license must not depend on the program being part of a specific software distribution.
Criteria 9: License Must Not Restrict Other Software
The license must not place restrictions on what software is being distributed along with the licensed software.
Criteria 10: License Must Be Technology-Neutral
No provision in the license may be predicated on any individual technology or interface style.
Free Software Licensing Categories
Free software licenses are not all the same. There are various considerations to make when determining which software license to pick. These considerations include who is to benefit from your free software as ensuring it can be used with other, ideologically-aligned software systems.
To accommodate these considerations, various license types of emerged which define software licensing intentions. These free software types include Public Domain software, Open Source software, Copylefted software, Non-copylefted free software, GPL-covered software, and GNU software. (Free Software Foundation – Categories of Free Software)
The image below, provided by the Free Software Foundation, gives a broad view of the various licensing categories – both free and commercial.
Public Domain software
The public domain consists of a range of abstract materials, or intellectual property, which are not owned or controlled by anyone. Public domain is a broad term and defined differently in different countries. In the case of software in the public domain, it is considered software that has no copyright. This software is considered “public property,” and available for anyone to use for any purpose.
Copylefted software is software distributed under a license that ensures that all copies and all versions are free. The license also requires that the source code is available. Future adaptations and distributions of copylefted software must also be free. One of the most common examples of copylefted software is software released under the GNU General Public Licenses (GPL).
Non-copylefted free software
Non-copylefted free software is software that is distributed by a developer with permission to redistribute and modify. The restriction of non-copylefted free software is that future versions or adaptations might not be free at all. This allows proprietary software developers to use adapt the systems to their environment and relicense the work.
Open Source software
Open Source software is free software distributed under the philosophy of the open source definition. There are various open source licenses such as Apache 2.0, BSD, GNU GPL, GNU LGPL, MIT, Common Public License, and Common Development and Distribution License.
Notable Free Software Licenses
There are a number of commonly used free software licenses. This section will detail them and their differences.
GNU General Public License (GPL)
The GNU GPL is used for most GNU software. Is a specific copylefted license with a specific set of distribution terms. It is a constantly evolving license that follows the four freedoms of free software while also being copylefted, ensuring future works are also free.
License Version 3.0: http://www.gnu.org/licenses/gpl.html License Version 2.0: http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
GNU “Lesser” General Public License (LGPL)
The main difference between the LGPL and the GPL is that the LGPL has no copyleft. Software under this license can be used or distributed in software that is then sold commercially in the public or private sectors.
License Version 3.0: http://www.gnu.org/licenses/lgpl.html License Version 2.0: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
The newest version of this license, version 2.0, has made major modifications to the previous version. The goals of this license are to support collaborative development across both nonprofit and commercial organizations.
Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 Version 1.1: http://www.apache.org/licenses/LICENSE-1.1
Common Public License
The Common Public License (CPL) is a free / open source software license published by IBM. It is approved by the Open Source Initiative and the Free Software Foundation. Its ideology is to support and encourage collaborative open source development while still retaining the ability to use CPL-licensed content with other proprietarily-licensed software. The key difference between CPL and GNU GPL is in how contributors can charge for royalties.
Version 1.0: http://www.opensource.org/licenses/cpl1.0.php
The BSD license and its derivatives represent a set of permissive free software licenses. These software licenses can be used freely without reference and are very close to the Public Domain.
“New and Simplified”: http://www.opensource.org/licenses/bsd-license.php
Common Development and Distribution License
The Common Development and Distribution License (CDDL) is a free software licenses maintained by Sun Microsystems and based off the Mozilla Public License, version 1.1.
Impact and Evaluation
The impact of free software on the software industry has been incredible. Through the ideals of the people who have given their time and their efforts away freely over the years and the vision and organization of many, the free software industry has thrived and is still competitive with the proprietary software market.
This is truly amazing as the free software industry has many hurdles to overcome. First of all, there is a considerable lack of organization. In a company, you are assigned a group to work with and a boss to direct you in your development efforts and even then cooperation is difficult. The free software industry has overcome this hurdle and managed to develop entire operating systems that have been collaborated on by thousands over the course of years. The second hurdle is funding. Nearly all small free software systems have been written by their author for no expectation of money and simply wish to give their software to the public. Some of the bigger systems in the free software industry have found funding by various software groups and initiatives as well as commercial and governmental organizations.
The most obvious free software contribution is the GNU/Linux operating system, an entire operating system with literally hundreds of flavors of distributions for all purposes. Today, Google has released the newest major open source operating system called Andriod which can be freely embedded on any device. The GNU Image Manipulation Project, or GIMP, is a full-featured bitmap image editing tool that competes on the level of the revered Adobe Photoshop suite. Not to be outdone, there is Open Office – a free and open productivity suite that is multilingual, multiplatform, and compatible with every major office productivity suite known to man.
These tools are mature packages that are easy to use. In the past, free software came with the burden of additional installation and configuration. Today, things are different. With the knowledge of this in recent memory, they have spent an unbelievable amount of effort over the past few years to beautify their packages. This beautification helps to add to the experience of using free software, and the care towards what a user actually wants as opposed to what they want to pay for separates free software packages from their commercial counterparts.
This level of competition between free and proprietary software systems is beneficial for the end user as competition spurs innovation. The free software community often tackles the core problems that exist within proprietary software packages as well as developing new ideas. The proprietary software industry can incorporate these ideas with their own direction of maintaining their paying user-base while implementing the directives they believe will change the course of their respective industry.
After casually interviewing a few developers, one a web developer and another a C++ back-end developer, a common theme was clear – how everyone respected the contributions made by various initiatives and the impact it’s had on their work. The ability to find completed, executing programs with real source code defining the algorithm has made learning and extending development far easier.
While both agreed that free software was great, they were split on the issue of copylefting. The results of this are interesting, but in retrospect expected. The web developer uses mostly open source solutions for low-cost rapid application development, and would not be able to use copyleft software. The C++ developer, who relies on proprietary Microsoft solutions to accomplish nearly all work tasks, would develop and release code in nearly all situations with a copyleft. I can only presume as the net effect of a world with only copyleft free software wouldn’t impact his proprietary environment, he would contribute his own work in such a way – the thought of smaller companies taking advantage of his hard, altruistic work being blood-curdling while he works on proprietary solutions he knows were paid for (if even by his company).
I am very enthusiastic about the free and open source software community and contribute code to the community through various sites. The license I typically choose is the GNU LGPL. While I believe in the free software community, I was also raised a capitalist and appreciate being able to reuse ideas for a proprietary software system. I don’t think that all software should be copyleft because, to the extreme, that creates nearly the same problem as proprietary software. My personal philosophy is that I think that all knowledge should be free. Also, I think that it’s pointless to reinvent the wheel when it was done properly the first time.
My most major concern is the thought by activists like Richard Stallman that all software should be free and copyleft. Software development is an amazingly rewarding job I enjoying doing every day, but I would not be as devoted to it if I didn’t see the benefits of the salary the job provides. Richard Stallman’s argument is that nobody is asked to become a developer. (Stallman – The GNU Manifesto) This is an argument that doesn’t sit well with me. He speaks of Kantian ethics and the harm on society that proprietary software restrictions cause. The problem with this argument is the same could be said of any occupation.
People work for money, and computer software development is a job, and an important one. We’re only beginning to see all of the tasks computers can assist in or alleviate. While knowledge should always be free, people have a choice to decide under what circumstances to give things away under. The huge proprietary software market has created an interest in computers that might otherwise have never taken place. Proprietary software vendors are a primary source of motivation to the free and open source software movements. They are an important and necessary asset to the software industry.
“Why Open Source?” RedHat.com. 2008.
"Open Source." Wikipedia, the free encyclopedia. 23 Sept. 2008. Wikimedia Foundation, Inc. 15 Oct. 2008 .
"Categories of Free and Non-Free Software." GNU Project. 24 Oct. 2008. Free Software Foundation, Inc. 26 Oct. 2008 .
Coar, Ken. "The Open Source Definition." Open Source Initiative. 7 July 2006. Open Source Initiative. 21 Oct. 2008 .
"Common Development and Distribution License." Wikipedia, the free encyclopedia. 22 Oct. 2008. Wikimedia Foundation, Inc. 15 Nov. 2008 .
"Common Public License." Wikipedia, the free encyclopedia. 25 Oct. 2008. Wikimedia Foundation, Inc. 15 Nov. 2008 .
"The Free Software Definition." GNU Project. 20 Mar. 2008. Free Software Foundation, Inc. 24 Oct. 2008 .
"Free Software Foundation." Wikipedia, the free encyclopedia. 11 Nov. 2008. Wikimedia Foundation, Inc. 15 Nov. 2008 .
"Frequently Asked Questions about the GNU Licenses." GNU Project. 14 Nov. 2008. Free Software Foundation, Inc. 15 Nov. 2008 .
Nelson. "The BSD License." Open Source Initiative. 31 Oct. 2006. Open Source Initiative. 21 Oct. 2008 .
"Open Source Initiative." Wikipedia, the free encyclopedia. 12 Oct. 2008. Wikimedia Foundation, Inc. 15 Nov. 2008 .
"Public domain." Wikipedia, the free encyclopedia. 14 Nov. 2008. Wikimedia Foundation, Inc. 15 Nov. 2008 .
Smith, Brett. "A Quick Guide to GPLv3." GNU Project. 29 Oct. 2008. Free Software Foundation, Inc. 3 Nov. 2008 .
Stallman, Richard. "Copyleft: Pragmatic Idealism." GNU Project. 7 Oct. 2008. Free Software Foundation, Inc. 21 Oct. 2008 .
Stallman, Richard. " Why ‘Open Source’ misses the point of Free Software." GNU Project. 7 May. 2008. Free Software Foundation, Inc. 21 Oct. 2008 < http://www.gnu.org/philosophy/open-source-misses-the-point.html >.
Stallman, Richard. "The GNU Manifesto." GNU Project. 15 Jun. 2008. Free Software Foundation, Inc. 21 Oct. 2008 .
Riehle, Dirk. “The Economic Motivation of Open Source Software: Stakeholder Perspectives.” Computer 40 (2007): 25-32.
Perspectives on Free and Open Source Software. The MIT Press, March 2007.
Weber, Steven. The Success of Open Source. Harvard University Press, October 2005.