Open source denotes that the origins of a product are publicly accessible in part or in whole. See Open source (disambiguation) for related topics and other meanings.
This article focuses on open source as a modern or commonly used allusion to any open-source software (OSS) where its source code, its related documentation and its content in general acquired such open-source basis. Open-source software has freely available source code, which lets anybody create a new version of the software. Such access to the source code allows anybody to build a package of the software and sell it. Such software has been known by the name free software, or freely redistributable software in the computer technology communities. (Today some other names are also in use, include software libre, FOSS (for Free/Open-Source Software) and FLOSS (for Free/Libre/Open-Source Software). Open source generally means the same set of software that is also free software, despite some minor differences. In fact, the term “open source” was meant to be a marketing name (according to Bruce Perens), or “marketing program” (according to Eric Raymond), for free software.
Some people have used the term open source in reference to any software that has publicly available source code, but not all publicly available source code meets open source standards. The Open Source Definition (OSD), notably, presents an open-source philosophy, and further defines a boundary on the usage, modification and redistribution of open-source software. Software licenses define specific grants or restrictions on usage, modification and redistribution, and several open-source software licenses have qualified within the boundary of the OSD, like the popular GNU General Public License (GPL).
The “open source” label came out of a strategy session held in Palo Alto in reaction to Netscape’s January 1998 announcement of a source code release for Navigator (as Mozilla). A group of individuals at the session included Todd Anderson, Larry Augustin, John Hall, Sam Ockman, Christine Peterson and Eric S. Raymond. They used the opportunity before the release of Navigator’s source code to express a confusion caused by the word ‘free’ (in the English language). Right after the strategy session, the ‘open source’ movement most notably begun. Many people, nevertheless, claimed that the birth of the Internet, since 1969, provided the revolution for open source.
The Free Software Foundation (FSF), started in 1985, intended the word ‘free’ to mean “free as in free speech” and not “free as in free beer.” Since a great deal of free software already was (and still is) free of charge, such free software became associated with zero cost, which seemed anti-commercial.
The Open Source Initiative (OSI) formed in Feburary 1998 by Eric S. Raymond and Bruce Perens. With at least 20 years of evidence from pragmatic cases in closed development versus open development already provided by the Internet, the OSI presented the ‘open source’ case to commercial businesses, like Netscape. OSI hoped that the usage of the label “open source,” a term suggested by Peterson of the Foresight Institute at the strategy session, would eliminate ambiguity, particularly for individuals who perceive “free software” as anti-commercial. They sought to bring a higher profile to the practical benefits of freely available source code, and they wanted to bring major software businesses and other high-tech industries into open source. Perens attempted to register “open source” as a service mark for OSI, but that attempt was impractical by trademark standards. Meanwhile, Raymond encouraged Netscape to adopt the “open source” label. Netscape released its Navigator source code as open source, favorably. Years later, the OSI finally obtained the trademark on “OSI Certified.”
Critics said that the term “open source” fosters an ambiguity of a different kind such that it confuses the mere availability of the source with the freedom to use, modify, and redistribute it. Developers have used the term Free/Open-Source Software (FOSS), or Free/Libre/Open-Source Software (FLOSS), consequently, to describe open-source software that is freely available and free of charge.
Open source model
In his 1997 essay The Cathedral and the Bazaar [RAY2000], Eric Raymond suggests a model for developing OSS known as the Bazaar model. Raymond likens the development of software by traditional methodologies to building a cathedral, “fully crafted by individual wizards or small bands of mages working in splendid isolation” [RAY2000]. He suggests that all software should be developed using the bazaar style, which he described as “a great babbling bazaar of differing agendas and approaches.”
In the Cathedral, model development takes place in a centralized way. Roles are clearly defined. Roles include people dedicated to designing (the architects), people responsible for managing the project, and people responsible for implementation. Traditional software engineering follows the Cathedral model. F.P. Brooks in his book The Mythical Man-Month advocates this sort of model. He goes further to say that in order to preserve the architectural integrity of a system, the system design should be done by as few architects as possible.
The Bazaar model, however, is different. In the Bazaar model, roles are not clearly defined. Gregorio Robles [ROB2004] suggests that software developed using the Bazaar model should exhibit the following patterns:
* Users should be treated as co-developers. The users are treated like co-developers and so they should have access to the source code of the software. Furthermore users are encouraged to submit additions to the software, code fixes for the software, bug reports, documentation etc. Having more co-developers increases the rate at which the software evolves. Linus’ law states that, “Given enough eyeballs all bugs are shallow.” This means that if many users view the source code they will eventually find all bugs and suggest how to fix them. Note that some users have advanced programming skills, and furthermore, each user’s machine provides an additional testing environment. This new testing environment offers that ability to find and fix a new bug.
* Early Releases. The first version of the software should be released as early as possible so as to increase one’s chances of finding co-developers early.
* Frequent Integration. New code should be integrated as often as possible so as to avoid the overhead of fixing a large number of bugs at the end of the project life cycle. Some Open Source projects have nightly builds where integration is done automatically on a daily basis.
* Several Versions. There should be at least two versions of the software. There should be a buggier version with more features and a more stable version with fewer bugs. The buggy version (also called the development version) is for users who want the advantage of having the latest features. The users can then act as co-developers, reporting bugs and providing bug fixes. The stable version offers the users less bugs or less features.
* High Modularization. The general structure of the software should be modular allowing for parallel development.
* Dynamic decision making structure. There is a need for a decision making structure, whether formal or informal, that makes strategic decisions depending on changing user requirements and other factors.
Most well-known OSS products follow the Bazaar model as suggested by Eric Raymond. These include projects such as Linux, Netscape, Apache, the GNU Compiler Collection, and Perl to mention a few. SourceForge, which maintains that it is the largest repository of Open Source code and applications available on the Internet and had 102,818 Open Source projects as of writing. These projects are all undertaken based on the Bazaar model.
* [RAY2000] Raymond E.S. (11 September 2000). “The Cathedral and the Bazaar”. Retrieved 19 September 2004 from http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html
* [ROB2004] Robles G. (2004). “A Software Engineering approach to Libre Software”. Retrieved 20 April 2005 from http://www.opensourcejahrbuch.de/2004/pdfs/III-3-Robles.pdf
Open-source licenses define the privileges and restrictions a licensor must follow in order to use, modify or redistribute the open source software. Open source software includes software with source code in the public domain and software distributed under an open-source license.
Examples of open source licenses include Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License and Mozilla Public License.
Open source movement
The open source movement is a large movement of programmers and other computer users that advocates unrestricted access to the source code of software. It grew out of licenses such as BSD, the ubiquitous access to Unix source code at universities. The line between the open source movement and the free software movement is somewhat blurry. Both are founded in the hacker culture. Mostly, the Free software movement is based upon political and philosophical ideals, while open source proponents tend to focus on more pragmatic arguments. Openness is a term that has evolved now to refer to projects that are open to anyone and everyone to contribute to, before and/or after the actual programming. Both groups assert that this more open style of licensing allows for a superior software development process (when compared to closed source), and therefore that pursuing it is in line with rational self-interest. Free software advocates, however, would argue that “freedom” is a paramount merit that one should prefer (or at least weigh heavily) even in cases where proprietary software has some superior technical features.
Proponents of the open source development methodology claim that it is superior in a number of ways to the closed source method. Some individuals suggest that the open source methodology is able to produce higher quality software than any other methodology or technique. Stability, reliability, and security are frequently cited as reasons to support open source. One successful application of the open source model is the Linux operating system, which is renowned for its stability and security characteristics. Among the works that explore and justify open source development is a series of works by Eric S. Raymond which includes The Cathedral and the Bazaar and Homesteading the Noosphere.
Open source advocates point out that as of the early 2000s, at least 90 percent of computer programmers are employed not to produce software for direct sale, but rather to design and customize software for other purposes, such as in-house applications. According to advocates, this statistic implies that the value of software lies primarily in its usefulness to the developer or developing organization, rather than in its potential sale value — consequently, there is usually no compelling economic reason to keep source code secret from competitors. Open-source advocates further argue that corporations frequently over-protect software in ways actually damaging to their own interests, for reasons ranging from mere institutional habit through reflexive territoriality to a rational but incorrect evaluation of the tradeoffs between collecting secrecy rent and the quality and market payoff of openness.
The 2001 film Antitrust portrayed the struggle of a small-time group of open-source programmers against a large Microsoft-like closed-source corporation.
Open source is a term that is applied to the entire concept that the creation and organization of knowledge is best created through open and cooperative efforts—this movement, variously called “open content” or “free culture,” has been expressly endorsed by advocates of OSS, including Linus Torvalds who said “The future is ‘open source everything.’”
Open source vs. closed source
Main article: Open source vs. closed source
The open source vs. closed source (alternatively called proprietary development) debate is sometimes heated.
Making money through traditional methods, such as sale of the use of individual copies and patent royalty payment, is more difficult and sometimes impractical with open-source software. Some closed-source advocates see open source software as damaging to the market of commercial software. This complaint is countered by a large number of alternative funding streams such as:
* giving the software for free and instead charge for installation and support (used by many Linux distributions)
* make the software available as open-source so that people will be more likely to purchase a related product or service you do sell (e.g. Openoffice.org vs StarOffice)
* cost avoidance / cost sharing: many developers need a product, so it makes sense to share development costs (this is the genesis of the X Window System and the Apache web server)
Studies about security in open-source software versus closed-source software show that closed-source software have fewer advisories but open-source software usually has less time between flaw discovery and a patch or fix. Advocates of closed source argue that since no one is responsible for open-source software, there is no way to know whether it has been fixed. Open-source advocates argue that since the source code of closed-source software is not available, there is no way to know what bugs that may exist.
Open source vs. free software
Even though open source software and free software on a practical level often share the same licenses, there is a philosophical difference in emphasis. The free software movement emphasizes the moral and ethical aspects of software, seeing technical excellence as a desirable by-product of its ethical standard. The open source movement emphasizes technical excellence, with regards to source code sharing.
Participants in OSS development projects
Participants in OSS development projects fall broadly into two categories. There are the Core and the Peripheral.
The Core or Inner Circle are developers who modify codes that constitute the project.
The Peripheral are usually made up of users who use the software. They report bugs, and suggest fixes.
The participants may then be further divided into the following.
1. Project leaders who have the overall responsibility (Core). Most of them might have been involved in coding the first release of the software. They control the overall direction of individual projects.
2. Volunteer developers (Core / Periphery) who do actual coding for the project. These include:
* Senior members with broader overall authority
* Peripheral developers producing and submitting code fixes
* Occasional contributors
* Maintainers who maintain different aspects of the project
3. Everyday users who perform testing, identify bugs, deliver bug reports, etc. (Periphery)
4. Posters (Periphery) who participate frequently in newsgroups and discussions, but do not do any coding.
Open source software development tools
There are several types of tools used to aid the activities performed in Open Source Software projects. These tools include the following;
Source code revision control
In OSS development the participants, who are mostly volunteers, are distributed amongst different geographic regions so there is need for tools to aid participants to collaborate in the development of source code.
Concurrent Versions System (CVS) is a major example of a source code collaboration tool being used in OSS projects. CVS helps manage the files and codes of a project when several people are working on the project as the same time. CVS can allow several people to work on the same file at the same time. This is done by moving the file into the users’ directories and then merging the files when the users are done. CVS also enables one to easily go back to a previous version of a file and retrieve it.
Since OSS projects undergo frequent integration, tools that help automate testing during system integration are used. One such tool is Tinderbox.
Tinderbox enables participants in an OSS project to detect errors during system integration. Tinderbox runs a continuous build process and informs users about the parts of codes that have issues and on which platform. It also identifies the author of the offending code. The author is then held responsible for ensuring that error is resolved.
Bug/Error/Defect tracking tools
Bug tracking is a very important aspect of OSS projects. Bug tracking includes the following tasks. It involves keeping a record of all reported bugs, whether the bug has been fixed or not, which version of the software does the bug belong to, and whether the bug submitter has agreed that the bug has been fixed (squashed). Popular bug tracking systems include Bugzilla and GNATS.
GNU GNATS is a set of tools for tracking bugs reported by users to a central site. It allows problem report management and communication with users via various means. GNATS stores all the information about problem reports in its databases and provides tools for querying, editing, and maintenance of the databases.
Bugzilla is a “Defect Tracking System” or “Bug-Tracking System”. It allows individual or groups of developers to keep track and manage outstanding bugs in their product effectively.
Since the participants in an OSS development project are dispersed, there is a need for tools to aid in organizing communication between project participants. This is accomplished with the aid of websites (Freshmeat, GNU Savannah, SourceForge), mailing lists (GNU Mailman) and instant messengers.
The above mentioned Open Source Software development tools are an essential and integral part of the Open Source Software development model.
Influence on other fields
The open source movement has been the inspiration for increased transparency and liberty in other fields. For example the release of biotechnology research by CAMBIA, and the Wikipedia that you are reading right now. The open-source concept has also been applied to media other than computer programs, e.g., by Creative Commons. It also constitutes an example of user innovation (see for example the book Democratizing Innovation).
Open Cola is another idea inspired by the open source movement. Soft drink giants like Coke and Pepsi hold their formulas closely guarded secrets. Now volunteers have posted the recipe for a similar soda drink on the internet. The taste is said to be comparable to that of the standard beverages.
Leading open source advocates include Brian Behlendorf, Alan Cox, Eben Moglen, Tim O’Reilly, Bruce Perens, Eric Raymond, Linus Torvalds and Paul Vixie.
Richard Stallman is a central figure in the similar free software movement, which has a different philosophical basis. Stallman does not want his name associated with the term open source.
Leading open source critics include Bill Gates, amongst others.
Prominent projects and organizations
* Apache Software Foundation, Debian, FreeBSD, GNU, JBoss, Linux, Mozilla Foundation, NetBSD, ObjectWeb, OpenBSD, OpenOffice.org, Open Source Development Labs, Open Source Initiative, SourceForge
Related PostsRelated Posts
- Collection of Open Source software for Windows This is a quick link to a downloadable cd of open source software for windows. There is a sizable list of programs. It appears as though some are not open source, but are free. If you have a fast enough connection to download it, you might find it very useful.......
- Wine-Doors the future of Windows software installing on Linux I just came across this article about wine-doors which sounds VERY promising. Of course, let me set the stage. Wine is a windows compatibility api for linux. The goal of wine is to allow windows applications to run on top of a linux system without modification (of the original windows......
- SuSE Linux opening up I just read at arstechnica that it looks as though Novell is going to try and develop a community around SuSE, much like Red Hat has done with Fedora. They'll be opening up the code at opensuse.org. The goal will be to make it easier for people to get involved......
- New Media Guru (NMG): Top 10 Web Analytics Myths?EUR? Dispelled Having worked in online marketing and web analytics for nearly a decade, I've heard it all when it comes to myths passed around small and large companies alike. Here is a top 10 list of my favorite web analytics myths and practical advice on how to dispel them.1. Free......
- What is a Blog? “What is a blog?” is a question I hear a lot from small business owners. My answer is in five parts as follows: 1. Description of a Blog A blog is an online journal; a place to write your thoughts, feelings, ideas, comments and viewpoints on any subject you......
- Wordpress as a Website: 4 Great Reasons When you think of Wordpress you probably think of blogging. That's how most people use it. They sign up for a free blog and start posting about a variety of things. Some blogs are very specific and targeted while others are just general every day kind of blogs. You might......
- FreeDos suspended development – nevermind
- Firefox code under the microscope
- Open Source Java and Linux distros redistributing java
- Collection of Open Source software for Windows
- Open Source OCR