Current focus: wiki, mailing list, news, donate

Portrait photo of Ciaran

Free Software

  1. What is free software?
  2. More specifically
  3. The value of software freedom
  4. The harm of non-free software
  5. Where to find information about free software
  6. An in-depth history
  7. How to help free software

What is free software?

Free software is software which can be used in any way, copied, studied, modified, and redistributed with or without modifications.

This means that any user can modify the software, and they can share their modifications so that every user can benefit from their work. The result is that the software is controlled by the user community.

Often, copyright prohibits users from legally making copies, redistributing programs, or using them without limits. The freedoms to study the program and make modified versions of the program are usually restricted by the practice of only distributing programs in a format which computers can run but which humans cannot understand.

Free software is not always without restriction, but restrictions are only permitted if they are which are trivial or are the minimum necessary to ensure that further recipients also receive these freedoms. The primary definition of free software is published by Free Software Foundation (FSF). The defining purpose of having these freedoms is so that computer users are free to help themselves and to cooperate with others in a community.

Note that free software is not defined by price, but by the freedoms mentioned above being available in a sufficiently unfettered manner.

Free software grants these freedoms to recipients by accompanying the software with a licence which grants permission to do these things, and by making the software available in human readable source code form as well as, optionally, in computer readable binary form.

The most commonly used free software licence is the GNU General Public License (GPL), published by FSF. As well as granting the freedoms to use, study, modify, and redistribute the software, it adds a requirement that complete source code must be made available for all modified versions that are distributed. This requirement implements the share-alike concept of copyleft.

Examples of well known free software include the GNU/Linux operating system, the Mozilla Firefox web browser, office suite, the GNOME and KDE desktop environments, and the GNU Emacs text editor / working environment.

See also:


The value of software freedom

When computer users do not have the freedoms of free software Unfree software, or "proprietary software", uses technical measures to prevent computer users from helping themselves (only distributing binary files, which humans can't read), and uses legal measures to prohibit computer users from helping eachother (copyright).

In contrast, free software is about enabling computers users, both on an individual basis, and on a community basis. Free software also uses copyright, but the software comes with a license (a grant of rights) which gives the recipient permission to use, modify, and redistribute it.

The result is that computer users are in control of their computers. Developers don't build adware or spyware into free software. If they did, someone else would simply build it out again, and computer users would switch to clean version.


The harm of non-free software

New section. Hope I find time to develop it.


Where to find information about free software


An in-depth history

  1. Prehistory
  2. The beginning of the free software movement
  3. GNU
  4. Coprighta and copyleft
  5. The GPL


In the 60s, "general purpose computers" became available. These were an innovation because their behaviour was not built-in. They were general, and you gave them sequences instructions to get a specific job done. The sequences of instructions are known as software.

Producers of computers distributed software with their computers. Producers competed to make their machines the most useful by providing the best software. One way in which the computer manufacturers made their software useful was that they gave the computer users everything they needed to improve the software themselves. Of course, the most practical way to get a job done is to collaborate with others that want the same job done. Some computer users acted like a community and their improvements to the software were cumulative and available to all.

Different models of computer understood different sets of instructions, so software written for one manufacturers software couldn't be used by someone that had purchased a computer from a different manufacturer. Of course, in time, advances in software engineering overcame this technical limitation. This was great news for the computer users, but for the computer manufacturers it meant that the freedom to modify and redistribute software was in conflict with their business models.

They started distributing their software only in the machine readable format. They used to distribute their software in both machine readable and human readable formats. And they applied copyright law to prohibit computer users from sharing theri software with others.

The beginning of the free software movement

Richard Stallman, a computer programmer, had enjoyed the freedom to modify and share the software he used. He started the free software movement to get back those freedoms.

He decided the only way to do this was to write replacements for all the popular software packages available, and give computer users permission to run, study, modify, and redistribute this software.


On the 27th of September, 1983, he announced the project that started the free software movement: The GNU Project. The goal was to make a complete operating system that is completely free software.

He founded the Free Software Foundation in October 1985 to handle distribution of GNU software, and to provide a legal infrastructure for GNU and the emerging free software community.

Copyright and copyleft

When you write software, it is "a copyrighted work" and you are the copyright holder. Nobody can copy a copyrighted work unless they get permission from the copyright holder. Copyright holders pass on such permission by giving recipients of the software a license (a grant of rights) which says in what ways copyright restrictions don't apply to the licensee, and under what conditions.

Stallman didn't want copyright law to prohibit people from sharing his software, so he could have put his software into the public domain. That's when you say "I give up my copyright claims to this software that I have written: you can do anything you want with it". The problem is, then someone else could make improvements to his software, and use copyright to prohibit people from sharing the improved version.

A second problem was that Stallman needed a way to make sure others wouldn't use technical measures to prevent software users from modifying or improving the software.

To solve these problems, he invented the idea of copyleft. Copyleft uses copyright. The idea behind copyleft is: you can copy this work as-is, if and only if, you make the source code available to each recipient, and you can copy this work with additional improvements if and only if you make the combined work availabe under terms compatible with the original.

Share and share alike.


So that code from seperate free software packages could be combined, and to prevent the duplication of work (which leads to flaws), he wrote a free software copyleft-style license for the public which was general enough to be usable for any software project. This is the GNU General Public License.


How you can help Free Software

  1. Importantly, please join FSFE's Fellowship and similar organisations that actively support free software.
  2. Also, please help raise awareness of the social importance of the freedoms of free software. People have to know what the freedom issues are before they can understand the value of them and eventually help us defend them.
  3. Then people will value them and will demand them. In the 1980s and some of the 90s, there was no free software for many tasks, so people faced a hard decision of whether to do a certain job by computer and lose their freedom or do it manually and keep their freedom. Today, the decision is much easier because there are many free software packages that people can use, so the decision now is whether to use pacakge A and give up their freedom or use package B and keep their freedom. Using one package over another might involve some inconvenience, but it's easier to bare than doing the job manually.
  4. Decide that you will not accept software which does not come with the freedoms to use, study, modify, and improve it: exclusively use free software.
  5. The easiest thing you can do is to use terminology which doesn't hide the free software movement: say "free software" or "libre software", NOT "open-source software". "Free software" has two possible meanings, so you may have to follow it up with "free as in speech/freedom". "open source software" has only one meaning, but that one meaning does not describe what you are talking about. Unless the software comes with freedom to modify and redistribute, it is not "open source software". Thus, that term misleads people.
  6. Also, use terminology which doesn't hide the GNU project: say "GNU/Linux" when talking about the operating system created by combining the GNU system with the Linux kernel. By calling this "The Linux Operating System", you sever the link between the operating system, and the philosophy that created the operating system. These are the easiest ways to help the free software movement.
  7. If you'd like to help prevent bad legislation (like software patents), but you don't want to get deeply involved, please spend 20 minutes a week to email a handful of your representatives and point them to a good open letter, or a good news article. If you write a quick letter, it will increase their work load, and if you're not really involved in the issue, you're writing will probably contain mistakes and old news. So rather than try to take on the task yourself, lend some legitimacy to some people that you think are doing a good job. For example, to help prevent software patents in the EU, you could email you to guess your rep is and tell them: "Please read this letter by Irish Free Software Organisation". That's all, takes very little effort from you, the MEP can recieve many such short emails without feeling flooded, and the people that are deeply involved have been endorsed by you.

(Go: homepage of Ciarán O'Riordan)

Valid XHTML 1.1! Powered by GNU Made with Emacs FSF

© Copyright 2009 Ciarán O'Riordan. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Distribution of modified versions of all or part of this article are permitted, provided that such works carry three things: (1) this copyright notice, (2) prominent notices stating the that it has been changed, and (3) information for how to obtain the original (such as a URL).