Open source (software)
Open Source is a software development model, promoted by the non-profit Open Source Initiative (OSI) corporation and several other organizations, which makes the program's source code available to the public.
Open Source refers to software where the source code is available for anyone to modify. There are many different licenses under which open source software is available, all varying slightly to the degree on the conditions under which the software can be modified and redistributed.
Although the development model for open source software may seem counter-intuitive, for many projects it has been shown to be very successful. Generally, open source software is distributed with the underlying source code available for anyone to freely modify and redistribute. This development model is very similar to university research and the 'best of the public' model, where discoveries and research are published in peer reviewed journals or other venues, which are then built upon by other researchers and contributors spawning further ideas and discoveries.
There is a common misconception that open source software must be given away for free, but this is incorrect. Although most open source software is indeed available for free, with the authors usually charging for consulting and other services, there is no obligation for them to do so.
Open source software is also known as "free software". However, its advocates acknowledge that name is misleading in that it sounds, at first hearing, as if the software costs nothing. "Free", in this context, means users are free to modify the software for their own purposes. As its advocates like to say, it means "free speech, not free beer" (see also free software movement).
Examples of well known open source software:
- MediaWiki - Wiki software used for sites such as Conservapedia and Wikipedia.
- Apache - Apache web server, the most popular web server in the world.
- Firefox - Firefox web browser developed by the Mozilla Foundation.
- PHP - PHP: Hypertext Preprocessor, a scripting language used to create dynamic web sites such as Conservapedia.
- Linux - Operating system kernel used to create distributions such as the one running the server which hosts Conservapedia
A related concept is one espoused by Richard M. Stallman and his organization, the Free Software Foundation: The GNU Public License, often abbreviated GPL. This is designed to legally enforce the openness and freedom (as in "Free speech", not "free beer") of the software. Once one has access to GPL-licensed software, one is legally forbidden to take that freedom away by modifying the software and redistributing the derived work under a more restrictive license. In this sense the GPL can be considered a "viral" license—it "infects" whatever file it touches. This causes consternation in some quarters, but is widely considered the right way to enforce the principle.
Making the GPL perpetuate itself is rather tricky. Normally, when one purchases or downloads software, one legally accepts the license, promising to abide by it in perpetuity. This is often done by clicking on an "End User License Agreement" (EULA) during the installation process. But source files have no license that they can demand that one accept. So the trick is to use the copyright, which is a legal principle that is generally accepted by society. But merely placing a normal copyright notice at the top of each source file doesn't really prevent someone from modifying the file and giving it to other parties, having it wind up with a license of one's own choosing.
The Free Software Foundation uses what it calls a "copyleft" (a play on the word "copyright"). This is basically a normal copyright notice but with added verbiage along the lines of "You must obey the GPL". Whether you have "accepted" the license or not, copyright law does not permit you to do anything with the file (other than read it) without obeying the copyright notice. If that notice says you must obey the GPL, you are not allowed to do anything with the file except in accordance with the GPL. And the GPL provides that any modified and redistributed file must bear the same "copyleft" and licensing terms. That way, the GPL perpetuates itself and achieves the goal of having software able to be developed by anyone.
Some people have suggested that this smacks of Communism or Socialism ("From each according to his ability, to each according to his need.") But the economic issues involved in the Socialism-vs.-Capitalism debate ("state ownership of the means of production") do not apply to information. Information is essentially free. State ownership of the means of production is meaningless when the means of production consists of clicking "download". After all, patents, copyrights and other forms of intellectual property are monopoly rights granted and protected by the government. In the United States, government-funded research, inventions and writings are exempt from patent or copyright claims and can be used freely by anyone.
Copyleft as a mechanism requires that any software which uses code from copylefted software to be licensed under the same terms—making it copylefted as well. In the long run, this will lead to more and more software being licensed under copyleft terms. Not only that, but, due to the nature of copyleft, a lot less diversity in licenses is possible—in fact, the most popular copyleft license, the GNU General Public License (GPL), is used for the majority of copylefted software. Some people have held that, if this tendency is not stopped, all open source software will soon be licensed under one license. These fears are exaggerated. There are quite a number of "free" software licenses, such as OSI and Creative Commons Licenses, which still legally enforce the open source principle.
The other kind of licenses, permissive licenses, allows usage of code without having to relicense it under the same conditions original code uses, thus allowing for more liberties for both programmers and users. The most known permissive license is the BSD license, but lots of other licenses are used in practice. Many businesses prefer using permissively-licensed code, as the licensing terms are more comfortable in their cases.
Open source software and patents
As open source software is available for everyone to use and distribute free of charge (even if the owner requires to pay to access the code, it can freely be redistributed after that), it is nearly impossible for open source software developers to use any patent agreements requiring to add a fixed price to every copy. In fact, the 3rd version of Stallman's GPL explicitly forbids to use any patents not owned by the developers at all. While this shows quite a problem with the current patent law, it leads to an even bigger problem.
Microsoft has claimed several times that the Linux kernel, as well as basic programs from most versions of Linux distributions, violates a number of patents Microsoft owns. While MS didn't disclose the actual patents violated, several companies who distribute Android or Linux-based devices decided to enter the patent agreement.