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, OpenOffice.org office suite, the GNOME and KDE desktop environments, and the GNU Emacs text editor / working environment.
See also:
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.
New section. Hope I find time to develop it.
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.
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.
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.
(Go: homepage of Ciarán O'Riordan)
I made these buttons, except the first one. Please copy, improve, and redistribute them!
Copyright 2008 Ciaran O'Riordan. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.