Free software
From Wikipedia, the free encyclopedia
- This article is about "free software" as defined by the sociopolitical free software movement; for information on software distributed without charge, see freeware.
Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redistributed with little or no restriction. Thus, software is free software if its source code (the human-readable form of software) is available with a software licence which grants recipients these permissions, or if the source code is in the public domain.
The antonym of free software is proprietary software. Free software is not to be confused with "Freeware", which is software made available free of charge. Freeware may or may not be proprietary.
Free software was defined in 1983. Some alternative terms for free software came into common usage from the late 90s onward, they include "open-source software", "software libre", "FLOSS", and "FOSS".
Free software can be sold and used in commerce. Although the ability of the community to use and distribute the software at no cost can make it difficult to sell the software at a profit, funding models exist to give everyone the freedom to charge for distributing, modifying or any other work performed with free software.
Contents |
[edit] History
As early as the 1950s and into the 1970s, software was seen as an add-on supplied by mainframe vendors to make computers useful. Thus, programmers and developers frequently shared their software freely. This was especially common in large users groups, such as SHARE and DECUS. DECUS was the Digital Equipment Corporation (DEC) Users Group and SHARE was a user group for the IBM 701.
In the late 1970s and early 1980s, companies began routinely imposing restrictions on programmers with software license agreements. Sometimes this was because companies were now making money from proprietary software or they were trying to keep hardware characteristics secret by hiding the source code. Other times, the increasingly corporatised attitude in the growing and previously eclectic industry saw protecting source code and trade secrets as a norm, even if it didn't provide any benefit to business. Bill Gates signalled the change of the times when he wrote an open letter urging hackers to stop stealing by making unauthorized copies of software.
In 1983, Richard Stallman launched the GNU project after becoming frustrated with the effects of the change in culture of the computer industry and users. Stallman recalls one incident where a printer wouldn't work, but he couldn't fix the problem because the human-readable source code was withheld. Software development for the GNU operating system began in January 1984, and the Free Software Foundation (FSF) was founded in October 1985. He introduced a free software definition and "copyleft", designed to ensure software freedom for all. [1] Some reacted strongly against Stallman's position as idealistic nonsense and he was strongly mocked and criticised.[citation needed]
To help distinguish libre (freedom) software from gratis (zero price) software, Richard Stallman, founder of the free software movement, developed the following explanation: "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'". More specifically, free software means that computer users have the freedom to cooperate with whom they choose, and to control the software they use. The GNU Manifesto contains language that gives evidence of Stallman's initial confusion with the usage.
The term "open source" is attached to a definition originally created in 1998 from the Debian Free Software Guidelines. While most open source software is also free software and vice-versa, this is not always the case.
[edit] Present
Free software is a huge international effort, producing software used by individuals, large organisations, and governmental administrations. Free software has a very high market penetration in server-side internet applications such as the Apache web server, MySQL database, and PHP scripting language. Completely free computing environments are available as large packages of basic system software such as the many GNU/Linux distributions and the FreeBSD OS. Free software developers have also created free versions of almost all commonly used desktop applications such as web browsers, office productivity suites, and multimedia players. It is important to note, however, that in many categories, free software for individual workstation or home users has only a fraction of the market share of their proprietary competitors. Most free software is distributed online without charge, or off-line at the marginal cost of distribution, but this is not required, and people may sell copies for any price.
The economic advantages of the free software model have been recognised by large corporations such as IBM, Red Hat, and Sun Microsystems. Many companies whose core business is not in the IT sector choose free software for their internet information and sales sites, due to the lower initial capital investment and ability to freely customize the application packages. Also, some other industries — that is, non-software industries — are beginning to use open-source models for research and development: scientists, for example, are looking towards more open development processes, and hardware such as microchips are beginning to be developed under Copyleft licenses (see the OpenCores project, for instance). The Creative Commons and free culture movements have also been largely influenced by free software.
In November of 2006, the Microsoft and Novell software corporations announced a controversial partnership to improve interoperability between Microsoft Windows and SUSE Linux. [2]
[edit] Definition
According to Richard Stallman and the Free Software Foundation, software is free software if people who receive a copy of the software have the following 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.
Freedoms 1 and 3 require source code access, because studying and modifying software without its source code is highly impractical. Access to annotated source code relieves these problems.
Other groups have published their own definitions which describe an almost identical set of software. The Debian Free Software Guidelines is one, and the Open Source Definition is another.
The free BSD-based operating systems, such as FreeBSD, OpenBSD, and NetBSD, don't have their own formal definitions of free software. Users of these systems find the same set of software to be acceptable, however, rather than advocate the use of copyleft free software licences, they see copyleft as being merely tolerable. Instead, they advocate permissive free software licences which allow others to make software based on their source code and then not, in turn, also distribute the source. Their view is that this permissive approach is more free. The Kerberos, X.org, and Apache software licences are substantially similar in intent and implementation. All of these software packages originated in academic institutions interested in the widest possible technology transfer (University of California, MIT, and UIUC).
[edit] Free software licenses
Free Software Foundation and Open Source Initiative both publish lists of licenses that they find to comply with their definition of free software and open-source software respectively.[3] The lists are necessarily incomplete, because a license need not be known by either organization in order to provide these freedoms. Apart from these two organizations, the Debian project is seen by some to provide useful advice on whether particular licenses comply with their Debian Free Software Guidelines. Debian doesn't publish a list of approved licenses, so its judgments have to be tracked by checking what software they have allowed into their archives. However, it is rare that a license is announced as being in-compliance by FSF or OSI and not the other (the Netscape Public License used for early versions of Mozilla being an exception), so exact definitions of the terms have not become hot issues.
Most free software uses a small set of licenses. The most popular of these are the GNU General Public License, the GNU Lesser General Public License, the BSD License, the Mozilla Public License, the MIT License, and the Apache License.
Software that is not free software is known as proprietary software. It may come with some or none of the above freedoms, and almost always comes with an EULA which purports to use contract law to restrict users' ability to run the software in certain ways.
The FSF and OSI definitions both disregard price. CDs containing free software such as GNU/Linux distributions are commonly for sale. If the CD buyer retains the free software freedoms the purchased software is still free software. Freeware that includes restrictions conflicting with the free software definition are considered proprietary, since source code may be unavailable, or redistributors may be prohibited from charging fees.
Some people use "libre" to avoid the ambiguity of the word "free". However, these terms are mostly used within the free software movement.
[edit] Permissive and copyleft licences
Variations on free software as defined by the FSF:
- Copyleft licenses, the GNU General Public License being the most prominent. The author retains copyright and permits redistribution and modification under terms to ensure that all modified versions remain free for as long as the author wishes.
- BSD-style licenses, so called because they are applied to much of the software distributed with the BSD operating systems. The author retains copyright protection solely to disclaim warranty and require proper attribution of modified works, but permits redistribution and modification in any work, even proprietary ones, again, for as long as the author wishes.
- Public domain software - the author has abandoned the copyright. Since public-domain software lacks copyright protection, it may be freely incorporated into any work, whether proprietary or free. Importantly, software released thus goes completely out of control of the author, who, even if he subsequently so desires, cannot impose any restriction on its use, making the software truly free in every sense.
A copyright owner of copyleft-licensed software can produce and sell a version under any license, in addition to distributing the original version as free software. Many free software companies do this; this does not restrict any rights granted to the users of the copyleft version.
All free software licenses must grant people all the freedoms discussed above. However, unless the applications' licenses are compatible, combining programs by mixing source code or directly linking binaries is problematic, because of license technicalities. Programs indirectly connected together may avoid this problem.
[edit] Examples of free software
Notable free software:
- Operating systems: GNU/Linux, BSD, Darwin, OpenSolaris, and the Windows clone ReactOS.
- GCC compilers, GDB debugger and C libraries.
- Servers: BIND name server, Sendmail mail transport, Apache web server, and Samba file server.
- Relational database systems: MySQL and PostgreSQL.
- Programming languages: Perl, PHP, Python, Ruby and Tcl.
- GUI related: X Window System, GNOME, KDE, and Xfce desktop environments.
- OpenOffice.org office suite, Mozilla and Firefox web browsers and the GIMP graphics editor.
- Typesetting and document preparation systems TeX and LaTeX.
- UNIX tools for script automation and testing: Expect
- UNIX tools for monitoring network services: Nagios
- freeCAD 3D Motion Simulation CAD
- MediaWiki user-managed Content Management System
- See also: Category:Free software
The Free Software Directory is a free software project that maintains a large database of free software packages.
- For more details on this topic, see Portal:Free software/Categories.
[edit] Consequences
Free software is generally available at little to no cost and can result in permanently lower costs compared to proprietary software, evidence by free software becoming popular in third world countries. With free software, businesses have the freedom to fit the software to their specific needs by changing the software themselves or by hiring programmers to modify it for them. Free software often has no warranty, and more importantly, generally does not assign legal liability to anyone. However, warranties are permitted between any two parties upon the condition of the software and its usage. Such an agreement is made separately from the free software license.
Under the free software business model, free software vendors may charge a fee for distribution and offer pay support and software customization services. Proprietary software uses a different business model, where a customer of the proprietary software pays a fee for a license to use the software. This license may grant the customer the ability to configure some or no parts of the software themselves. Often some level of support is included in the purchase of proprietary software, but additional support services (especially for enterprise applications) are usually available for an additional fee. Some proprietary software vendors will also customize software for a fee.
Free software gives users the ability to cooperate with each other in enhancing and refining the programs they use. Free software is a pure public good rather than a private good. Companies that contribute to free software can increase commercial innovation amidst the void of patent cross licensing lawsuits. (See mpeg2 patent holders)
Free software played a part in the development of the Internet, the World Wide Web and the infrastructure (and subsequent debacle) of dot-com companies.
There is debate over the security of free software in comparison to proprietary software, with a major issue being security through obscurity. A popular quantitative test in computer security is using relative counting of known unpatched security flaws. Generally, users of this method advise avoiding products which lack fixes for known security flaws, at least until a fix is available. Some claim that method counts more vulnerabilities for the free software, since their source code is accessible and their community is more forthcoming about what problems exist.[4] However, free software advocates can counter that simply because a closed source program does not have published flaws does not mean that flaws do not exist and are possibly already known to malicious users. The ability to view and modify the software provides a much larger audience of people that can analyze the code, and possibly have a higher rate of finding bugs and flaws than an average corporation. Having access to the source code also makes creating spyware far more difficult.[5]
[edit] Individual motivations
It is often wondered why individuals would make the effort to participate and contribute to free software, as such contributions can be very costly in terms of effort or time.
One of the reasons is that individuals can earn a living doing so. The Free Software Foundation maintains a service directory of people offering their free software services for hire. It shows free software developers offer their services ranging from $35/hour to $250/hour and some companies' rates for support for standard products start at $12,500. Some individuals perceive that they can start their own business at a fraction of the cost of proprietary software if they have the skills and knowledge required, for example many web hosting companies exclusively use free software.
However, direct economic benefit is hardly the main reason for the willingness of a wide community of individuals to contribute to Free Software. The main reason is simple: the contributor actually gets back much more than she gives away. Contributor A may be proficient in producing program A, and contributor B in producing program B. Conversely, contributor C may have experience in testing and debugging programs, but not in programming them from scratch. If they share their efforts freely, C might debug programs A and B, and thus the three contributors could have high quality programs A and B, whereas in a non-free scenario A and B would have a single buggy program each, and C would have nothing at all. A and B could try to sell their programs to each other, or to C. They could hire C to debug them. C could use his salary as debugger to buy programs A and/or B... However, although a non-free scenario could benefit highly A or B (whoever has the most direly needed program), the most positive outcome for the three of them at the same time would be without doubt obtained in the free scenario.
Individuals within a team typically have a wide variety of motivations. Often, there are stances on the relationship between free software and the existing business models that allow vendor lock in. They may also believe in inter-market competition, and that free software is a form of competition within capitalism. They may also perceive that copyright systems and other intellectual property regimes government-enforced monopolies - market restrictions. Other motivations may consist of gift economics, where status depends effectively on "gifts" from the contributor. Or more prosaically, a contributor may just want to altruistically do what he perceives as a good deed, in the spirit of volunteerism. Also, many companies use free software to their own advantage. Some companies contribute to the community substantially, while some of these companies use free software to cut costs, while only contributing when the expected cost/benefit of developing software under proprietary means would cost more than by doing it via a free software method. Many companies also use free software to cut costs of developing proprietary software that generates a profit for the company.
[edit] Free software controversies
Binary blobs, in 2006 OpenBSD started the first "No Blobs" campaign against the use of binary blobs, Binary Large OBjectS, in kernels. These binary blobs are usually freely delivered software drivers needed for hardware of vendors that wont reveal the source code of their drivers to the public. Since the binary blobs are undocumented and cannot be presumed bug free their code poses a very serious security risk to any operating system that includes these blobs in the kernel. The proclaimed aim of the 'No blobs!' campaign is getting hardware documentation, thus ultimately enabling all free operating systems to become or remain blob-free: So it is about abolishing blobs. It is not just about the personal opinion whether blobs are free enough or about the personal choice whether to use blobs or not.
Larry McVoy invited high-profile free software projects to use his proprietary program, BitKeeper, for gratis, in order to attract paying users. In 2002 a controversial decision was made to use BitKeeper, a proprietary software product, to develop the Linux kernel, a free software project. The following excerpt from a Newsforge editorial by Richard Stallman illustrates why this proved to be a major source of controversy.
- "McVoy made the program available gratis to free software developers. This did not mean it was free software for them: they were privileged not to part with their money, but they still had to part with their freedom. They gave up the fundamental freedoms that define free software: freedom to run the program as you wish for any purpose, freedom to study and change the source code as you wish, freedom to make and redistribute copies, and freedom to publish modified versions.
- The free software movement has said "Think of free speech, not free beer" for 15 years. McVoy said the opposite; he invited developers to focus on the lack of monetary price, instead of on freedom. A free software activist would dismiss this suggestion, but those in our community who value technical advantage above freedom and community were susceptible to it. ...
- A free kernel, even a whole free operating system, is not sufficient to use your computer in freedom; we need free software for everything else, too. Free applications, free drivers, free BIOS: some of those projects face large obstacles -- the need to reverse engineer formats or protocols or pressure companies to document them, or to work around or face down patent threats, or to compete with a network effect. Success will require firmness and determination. A better kernel is desirable, to be sure, but not at the expense of weakening the impetus to liberate the rest of the software world." [6]
McVoy withdrew permission for gratis use by free software projects. Many in the free software movement see the whole affair as a vindication of Richard Stallman's principled position over the allegedly more utilitarian approach of Linus Torvalds.
[edit] See also
- Free software community
- Free audio software
- Free file format
- Free Software Foundation
- Free software licenses
- Glossary of legal terms in technology
- List of free software packages
- List of free software project directories
- List of liberated software
- Open content
- Open hardware
- Open standard
- Software Freedom Day
- Collaborative software development model
- Free Software Magazine
[edit] External links
- The Free Software Definition
- FSF's list of free software licenses, including clarifications on often confused non-free licenses
- The GNU philosophy pages, including a comparison of "Open Source" and "Free Software"
- An open-ended future for open source , CORDIS.
- Transcripts about Free Software by FSFE
- Free Software and Open Source Software List
- Filepedia, Free Software Encyclopedia
- Free Software Magazine, which bills itself as "a free magazine for the free software world".
- Podcast Interview with Richard Stallman, Jeremy Allison and Jeff Waugh. They cover a lot of the ideas and philosophy behind Free Software.
[edit] Essays and articles
- Free Software and Open Source software (Where to find) - from Wikisolutions
- Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!, analysis of the advantages of OSS/FS by David Wheeler.
- Academic Research on FLOSS team dynamics By Syracuse University Researchers
- Floss Weekly - Podcast hosted by Chris DiBona and Leo Laporte.
- FLOSSWorld - Free/Libre/Open-Source Software: Worldwide impact study, to find out more about the recently announced European Union funded study.
- Free/Libre and Open Source Software: Survey and Study FLOSS Workshop report, links to full study.
- Free as in Education. Significance of the Free/Libre and Open Source Software for Developing Countries.
- Information for development www.i4donline.net
- FOSS primers at International Open Source Network (IOSN) by UNDP
- FOSS examples and adoption in countries
- Free Software / Open Source: Information Society Opportunities for Europe? (2000) -- Report includes section about possible economic models for Free/Libre and Open Source Software.
- The Care and Feeding of FOSS, by Craig A. James
[edit] Free, online books
- Open Source: The Unauthorized White Papers, by Donald K. Rosenberg
- Software Freedom: An Introduction, by Robert J. Chassell
[edit] Wikibooks
Forms of software distribution |
---|
Adware • Beerware • Careware • Crippleware • Demoware • Donationware • Donateware • Freely redistributable software • Free software • Freeware • Greenware • Nagware • Open source • Otherware • Postcardware • Proprietary software • Ransomware • Registerware • Shareware |