Wikipedia:WikiProject WikiFundi Content/open source



Open-source software (OSS) is computer software with its source code made available with a license in which the copyright holder provides the rights to study, change, and distribute the software to anyone and for any purpose. Open-source software may be developed in a collaborative public manner. Open-source software is the most prominent example of open-source development.

The open-source model, or collaborative development from multiple independent sources, generates an increasingly more diverse scope of design perspective than any one company is capable of developing and sustaining long term. A report by the Standish Group (from 2008) states that adoption of open-source software models has resulted in savings of about $60 billion per year to consumers.

End of 1990s: Foundation of the Open Source Initiative
In 1997, Eric Raymond published The Cathedral and the Bazaar, a reflective analysis of the hacker community and free software principles. The paper received significant attention in early 1998, and was one factor in motivating Netscape Communications Corporation to release their popular Netscape Communicator Internet suite as free software. This source code subsequently became the basis behind SeaMonkey, Mozilla Firefox, Thunderbird and KompoZer.

Netscape's act prompted Raymond and others to look into how to bring the Free Software Foundation's free software ideas and perceived benefits to the commercial software industry. They concluded that FSF's social activism was not appealing to companies like Netscape, and looked for a way to rebrand the free software movement to emphasize the business potential of sharing and collaborating on software source code. The new term they chose was "open source", which was soon adopted by Bruce Perens, publisher Tim O'Reilly, Linus Torvalds, and others. The Open Source Initiative was founded in February 1998 to encourage use of the new term and evangelize open-source principles.

While the Open Source Initiative sought to encourage the use of the new term and evangelize the principles it adhered to, commercial software vendors found themselves increasingly threatened by the concept of freely distributed software and universal access to an application's source code. A Microsoft executive publicly stated in 2001 that "open source is an intellectual property destroyer. I can't imagine something that could be worse than this for the software business and the intellectual-property business." This view perfectly summarizes the initial response to FOSS by some software corporations. However, while FOSS has historically played a role outside of the mainstream of private software development, companies as large as Microsoft have begun to develop official open-source presences on the Internet. IBM, Oracle, Google and State Farm are just a few of the companies with a serious public stake in today's competitive open-source market. There has been a significant shift in the corporate philosophy concerning the development of free and open-source software (FOSS).

The free software movement was launched in 1983. In 1998, a group of individuals advocated that the term free software should be replaced by open-source software (OSS) as an expression which is less ambiguous and more comfortable for the corporate world. Software developers may want to publish their software with an open-source license, so that anybody may also develop the same software or understand its internal functioning. With open-source software, generally anyone is allowed to create modifications of it, port it to new operating systems and processor architectures, share it with others or, in some cases, market it. Scholars Casson and Ryan have pointed out several policy-based reasons for adoption of open source – in particular, the heightened value proposition from open source (when compared to most proprietary formats) in the following categories:
 * Security
 * Affordability
 * Transparency
 * Perpetuity
 * Interoperability
 * Flexibility
 * Localization—particularly in the context of local governments (who make software decisions). Casson and Ryan argue that "governments have an inherent responsibility and fiduciary duty to taxpayers" which includes the careful analysis of these factors when deciding to purchase proprietary software or implement an open-source option.

The Open Source Definition, notably, presents an open-source philosophy, and further defines the terms of usage, modification and redistribution of open-source software. Software licenses grant rights to users which would otherwise be reserved by copyright law to the copyright holder. Several open-source software licenses have qualified within the boundaries of the Open Source Definition. The most prominent and popular example is the GNU General Public License (GPL), which "allows free distribution under the condition that further developments and applications are put under the same licence", thus also free. While open-source distribution presents a way to make the source code of a product publicly accessible, the open-source licenses allow the authors to fine tune such access.

The open source label came out of a strategy session held on April 7, 1998 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 Tim O'Reilly, Linus Torvalds, Tom Paquin, Jamie Zawinski, Larry Wall, Brian Behlendorf, Sameer Parekh, Eric Allman, Greg Olson, Paul Vixie, John Ousterhout, Guido van Rossum, Philip Zimmermann, John Gilmore and Eric S. Raymond. They used the opportunity before the release of Navigator's source code to clarify a potential confusion caused by the ambiguity of the word "free" in English.

Many people claimed that the birth of the Internet, since 1969, started the open source movement, while others do not distinguish between open-source and free software movements.

The Free Software Foundation (FSF), started in 1985, intended the word "free" to mean freedom to distribute (or "free as in free speech") and not freedom from cost (or "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) was formed in February 1998 by Eric S. Raymond and Bruce Perens. With at least 20 years of evidence from case histories of closed software development versus open development already provided by the Internet developer community, the OSI presented the "open source" case to commercial businesses, like Netscape. The 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 the OSI, but that attempt was impractical by trademark standards. Meanwhile, due to the presentation of Raymond's paper to the upper management at Netscape—Raymond only discovered when he read the Press Release, and was called by Netscape CEO Jim Barksdale's PA later in the day—Netscape released its Navigator source code as open source, with favorable results.

Definitions
The Open Source Initiative's (OSI) definition is recognized as the standard or de facto definition. Eric S. Raymond and Bruce Perens formed the organization in February 1998. With about 20 years of evidence from case histories of closed and open development already provided by the Internet, OSI continued to present the "open source" case to commercial businesses. They sought to bring a higher profile to the practical benefits of freely available source code, and wanted to bring major software businesses and other high-tech industries into open source.

OSI uses The Open Source Definition to determine whether it considers a software license open source. The definition was based on the Debian Free Software Guidelines, written and adapted primarily by Perens. Perens did not base his writing on the "four freedoms" of Free Software from the Free Software Foundation (FSF), which were only widely available later.

Under Perens' definition, open source describes a broad general type of software license that makes source code available to the general public with relaxed or non-existent copyright restrictions. The principles, as stated, say absolutely nothing about trademark or patent use and require absolutely no cooperation to ensure that any common audit or release regime applies to any derived works. It is an explicit "feature" of open source that it may put no restrictions on the use or distribution by any organization or user. It forbids this, in principle, to guarantee continued access to derived works even by the major original contributors.

Despite initially accepting it, Richard Stallman of the FSF now flatly opposes the term "Open Source" being applied to what they refer to as "free software". Although it is clear that legally free software does qualify as open source, Stallman considers that the category is abusive. Critics also oppose the professed pragmatism of the Open Source Initiative, as they fear that the free software ideals of freedom and community are threatened by compromising on the FSF's idealistic standards for software freedom. The FSF considers free software to be a subset of open source software, and Richard Stallman carefully elaborated that DRM software, for example, can be developed as open source, despite that it does not give its users freedom (it restricts them), and thus doesn't qualify as free software.

Open-source software licensing
A license defines the rights and obligations that a licensor grants to a licensee. Open-source licenses grant licensees the right to copy, modify and redistribute source code (or content). These licenses may also impose obligations (e.g., modifications to the code that are distributed must be made available in source code form, an author attribution must be placed in a program/ documentation using that open source).

Authors initially derive a right to grant a license to their work based on the legal theory that upon creation of a work the author owns the copyright in that work. What the author/licensor is granting when they grant a license to copy, modify and redistribute their work is the right to use the author's copyrights. The author still retains ownership of those copyrights, the licensee simply is allowed to use those rights, as granted in the license, so long as they maintain the obligations of the license. The author does have the option to sell/assign, versus license, their exclusive right to the copyrights to their work; whereupon the new owner/assignee controls the copyrights. The ownership of the copyright (the "rights") is separate and distinct from the ownership of the work (the "thing") – a person can own a copy of a piece of code (or a copy of a book) without the rights to copy, modify or redistribute copies of it.

When an author contributes code to an open-source project (e.g., Apache.org) they do so under an explicit license (e.g., the Apache Contributor License Agreement) or an implicit license (e.g. the open-source license under which the project is already licensing code). Some open-source projects do not take contributed code under a license, but actually require (joint) assignment of the author's copyright in order to accept code contributions into the project (e.g., OpenOffice.org and its Joint Copyright Assignment agreement).

Placing code (or content) in the public domain is a way of waiving an author's (or owner's) copyrights in that work. No license is granted, and none is needed, to copy, modify or redistribute a work in the public domain.

Examples of free software license / open-source licenses include Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License, Eclipse Public License and Mozilla Public License.

The proliferation of open-source licenses is one of the few negative aspects of the open-source movement because it is often difficult to understand the legal implications of the differences between licenses. With more than 180,000 open-source projects available and more than 1400 unique licenses, the complexity of deciding how to manage open-source usage within "closed-source" commercial enterprises has dramatically increased. Some are home-grown while others are modeled after mainstream FOSS licenses such as Berkeley Software Distribution ("BSD"), Apache, MIT-style (Massachusetts Institute of Technology), or GNU General Public License ("GPL"). In view of this, open-source practitioners are starting to use classification schemes in which FOSS licenses are grouped (typically based on the existence and obligations imposed by the copyleft provision; the strength of the copyleft provision).

An important legal milestone for the open source / free software movement was passed in 2008, when the US federal appeals court ruled that free software licences definitely do set legally binding conditions on the use of copyrighted work, and they are therefore enforceable under existing copyright law. As a result, if end-users do violate the licensing conditions, their license disappears, meaning they are infringing copyright.

Certifications
Certification can help to build higher user confidence. Certification could be applied to the simplest component that can be used by developers to build the simplest module to a whole software system. There have been numerous institutions evolving in this area of open source software including The International Institute of Software Technology / United Nations University. UNU/IIST is a non-profit research and education institution of The United Nations. It is currently involved in a project known as "The Global Desktop Project". This project aims to build a desktop interface that every end-user is able to understand and interact with, thus crossing the language and cultural barriers. It is drawing huge attention from parties involved in areas ranging from application development to localization. Furthermore, this project will improve developing nations' access to information systems. UNU/IIST aims to achieve this without any compromise in the quality of the software. It believes a global standard can be maintained by introducing certifications and is currently organizing conferences in order to explore frontiers in the field.

Alternatively, assurance models (such as DO178B) have already solved the "certification" approach for software. This approach is tailorable and can be applied to OSS, but only if the requisite planning and execution, design, test and traceability artifacts are generated.

Development model
In his 1997 essay The Cathedral and the Bazaar, open-source evangelist Eric S. 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, "carefully crafted by individual wizards or small bands of mages working in splendid isolation". 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 traditional model of development, which he called 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. Fred P. Brooks in his book The Mythical Man-Month advocates this 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 this model, roles are not clearly defined. Gregorio Robles 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's law states, "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: Code changes should be integrated (merged into a shared code base) 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 features. The buggy version (also called the development version) is for users who want the immediate use of the latest features, and are willing to accept the risk of using code that is not yet thoroughly tested. The users can then act as co-developers, reporting bugs and providing bug fixes.
 * High modularization: The general structure of the software should be modular allowing for parallel development on independent components.
 * 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. Cf. Extreme programming.

Data suggests, however, that OSS is not quite as democratic as the bazaar model suggests. An analysis of five billion bytes of free/open source code by 31,999 developers shows that 74% of the code was written by the most active 10% of authors. The average number of authors involved in a project was 5.1, with the median at 2.

Advantages and disadvantages
Software experts and researchers on open source software have identified several advantages and disadvantages. The main advantage for business is that open source is a good way for business to achieve greater penetration of the market. Companies that offer open source software are able to establish an industry standard and, thus, gain competitive advantage. It has also helped to build developer loyalty as developers feel empowered and have a sense of ownership of the end product.

Moreover, lower costs of marketing and logistical services are needed for OSS. OSS also helps companies keep abreast of technology developments. It is a good tool to promote a company's image, including its commercial products. The OSS development approach has helped produce reliable, high quality software quickly and inexpensively.

The term "open source" was originally intended to be trademarkable; however, the term was deemed too descriptive, so no trademark exists. Besides, it offers the potential for a more flexible technology and quicker innovation. It is said to be more reliable since it typically has thousands of independent programmers testing and fixing bugs of the software. It is flexible because modular systems allow programmers to build custom interfaces, or add new abilities to it and it is innovative since open source programs are the product of collaboration among a large number of different programmers. The mix of divergent perspectives, corporate objectives, and personal goals speeds up innovation.

Moreover, free software can be developed in accord with purely technical requirements. It does not require thinking about commercial pressure that often degrades the quality of the software. Commercial pressures make traditional software developers pay more attention to customers' requirements than to security requirements, since such features are somewhat invisible to the customer.

It is sometimes said that the open source development process may not be well defined and the stages in the development process, such as system testing and documentation may be ignored. However this is only true for small (mostly single programmer) projects. Larger, successful projects do define and enforce at least some rules as they need them to make the teamwork possible. In the most complex projects these rules may be as strict as reviewing even minor change by two independent developers.

Not all OSS initiatives have been successful, for example SourceXchange and Eazel. Software experts and researchers who are not convinced by open source's ability to produce quality systems identify the unclear process, the late defect discovery and the lack of any empirical evidence as the most important problems (collected data concerning productivity and quality). It is also difficult to design a commercially sound business model around the open source paradigm. Consequently, only technical requirements may be satisfied and not the ones of the market. In terms of security, open source may allow hackers to know about the weaknesses or loopholes of the software more easily than closed-source software.It depends on control mechanisms in order to create effective performance of autonomous agents who participate in virtual organizations.

Development tools
In OSS development, the participants, who are mostly volunteers, are distributed among different geographic regions, so there is need for tools to aid participants to collaborate in source code development. Often, these tools are also available as OSS.

Revision control systems such as Concurrent Versions System (CVS) and later Subversion (SVN) and Git, and the GNU Compiler Collection are examples of tools that help centrally manage the source code files and the changes to those files for a software project. These tools are themselves OSS.

Utilities that automate testing, compiling, and bug reporting help preserve stability and support of software projects that have numerous developers but no managers, quality controller, or technical support. Building systems that report compilation errors among different platforms include Tinderbox. Commonly used bugtrackers include Bugzilla and GNATS.

Tools such as mailing lists, IRC, and instant messaging provide means of Internet communication between developers. The Web is also a core feature of all of the above systems. Some sites centralize all the features of these tools as a software development management system, including GNU Savannah, SourceForge, and BountySource.

Projects and organizations
Some of the "more prominent organizations" involved in OSS development include the Apache Software Foundation, creators of the Apache web server; the Linux Foundation, a nonprofit which employed Linus Torvalds, the creator of the Linux operating system kernel; the Eclipse Foundation, home of the Eclipse software development platform; the Debian Project, creators of the influential Debian GNU/Linux distribution; the Mozilla Foundation, home of the Firefox web browser; and OW2, European-born community developing open source middleware. New organizations tend to have a more sophisticated governance model and their membership is often formed by legal entity members.

Several open source programs have become defining entries in their space, including the GIMP image editing system; Sun's Java programming language and environment; the MySQL database system; the FreeBSD Unix operating system; LibreOffice office productivity suite; and the Wireshark network packet sniffer and protocol analyser.

Open Source development is often performed "live and in public", using services provided for free on the Internet, such as the Launchpad and GitHub web sites.

Open Source Software Institute is a membership-based, non-profit (501 (c)(6)) organization established in 2001 that promotes the development and implementation of open source software solutions within US Federal, state and local government agencies. OSSI's efforts have focused on promoting adoption of open source software programs and policies within Federal Government and Defense and Homeland Security communities.

Open Source for America is a group created to raise awareness in the U.S. Federal Government about the benefits of open source software. Their stated goals are to encourage the government's use of open source software, participation in open source software projects, and incorporation of open source community dynamics to increase government transparency.

Mil-OSS is a group dedicated to the advancement of OSS use and creation in the military.

Closed source / proprietary software
The debate over open source vs. closed source (alternatively called proprietary software) is sometimes heated.

The top four reasons (as provided by Open Source Business Conference survey ) individuals or organizations choose open source software are:
 * 1) lower cost,
 * 2) security,
 * 3) no vendor 'lock in', and
 * 4) better quality.

Since innovative companies no longer rely heavily on software sales, proprietary software has become less of a necessity. As such, things like open source content management system—or CMS—deployments are becoming more commonplace. In 2009, the US White House switched its CMS system from a proprietary system to Drupal open source CMS. Further, companies like Novell (who traditionally sold software the old-fashioned way) continually debate the benefits of switching to open source availability, having already switched part of the product offering to open source code. In this way, open source software provides solutions to unique or specific problems. As such, it is reported that 98% of enterprise-level companies use open source software offerings in some capacity.

With this market shift, more critical systems are beginning to rely on open source offerings, allowing greater funding (such as US Department of Homeland Security grants ) to help "hunt for security bugs." According to a pilot study of organisations adopting (or not adopting) OSS; several factors of statistical significance were observed in the manager's beliefs in relation to (a) attitudes toward outcomes, (b) the influences and behaviours of others and (c) their ability to act.

Proprietary source distributors have started to develop and contribute to the open source community due to the market share shift, doing so by the need to reinvent their models in order to remain competitive.

Many advocates argue that open source software is inherently safer because any person can view, edit, and change code. A study of the Linux source code has 0.17 bugs per 1000 lines of code while proprietary software generally scores 20–30 bugs per 1000 lines.

Free software
The main difference is that by choosing one term over the other (i.e. either "open source" or "free software") one lets others know about what one's goals are. As Richard Stallman puts it, "Open source is a development methodology; free software is a social movement."

Critics have 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 alternative terms Free/open source Software (FOSS), or Free/Libre/open source Software (FLOSS), consequently, to describe open source software which is also free software.

The term "open source" was originally intended to be trademarkable; however, the term was deemed too descriptive, so no trademark exists. The OSI would prefer that people treat open source as if it were a trademark, and use it only to describe software licensed under an OSI approved license.

OSI Certified is a trademark licensed only to people who are distributing software licensed under a license listed on the Open Source Initiative's list.

Open-source software and free software are different terms for software which comes with certain rights, or freedoms, for the user. They describe two approaches and philosophies towards free software. Open source and free software (or software libre) both describe software which is free from onerous licensing restrictions. It may be used, copied, studied, modified and redistributed without restriction. Free software is not the same as freeware, software available at zero price.

The definition of open source software was written to be almost identical to the free software definition. There are very few cases of software that is open source software but is not free software. The difference in the terms is where they place the emphasis. "Free software" is defined in terms of giving the user freedom. This reflects the goal of the free software movement. "Open source" highlights that the source code is viewable to all; proponents of the term usually emphasize the quality of the software and how this is caused by the development models which are possible and popular among free and open source software projects.

The FSF believes that knowledge of the concept of freedom is an essential requirement, insists on the use of the term free, and separates itself from the open source movement.

Open-source vs. source-available
Although the OSI definition of "open source software" is widely accepted, a small number of people and organizations use the term to refer to software where the source is available for viewing, but which may not legally be modified or redistributed. Such software is more often referred to as source-available, or as shared source, a term coined by Microsoft in 2001. While in 2007 two shared source licenses were certified by the OSI, most of the shared source licenses are still source-available only.

In 2007 Michael Tiemann, president of OSI, had criticized companies such as SugarCRM for promoting their software as "open source" when in fact it did not have an OSI-approved license. In SugarCRM's case, it was because the software is so-called "badgeware" since it specified a "badge" that must be displayed in the user interface (SugarCRM has since switched to GPLv3 ). Another example was Scilab prior to version 5, which called itself "the open source platform for numerical computation" but had a license that forbade commercial redistribution of modified versions. Because OSI does not have a registered trademark for the term "open source", its legal ability to prevent such usage of the term is limited, but Tiemann advocates using public opinion from OSI, customers, and community members to pressure such organizations to change their license or to use a different term.

The Creative Commons licenses, designed mainly for media but sometimes used for software, offers license clause elements which allow licensing in the spectrum between open-source, source-available, and public domain. An example for a Creative Commons licensed work which is source-available and non-FOSS is Mari0, under the CC BY-NC-SA.

Widely used open-source software
Open source software projects are built and maintained by a network of volunteer programmers. Prime examples of open-source products are the Apache HTTP Server, the e-commerce platform osCommerce, internet browsers Mozilla Firefox and Chromium (the project where the vast majority of development of the freeware Google Chrome is done) and the full office suite LibreOffice. One of the most successful open-source products is the GNU/Linux operating system, an open-source Unix-like operating system, and its derivative Android, an operating system for mobile devices. In some fields, open source software is the norm, as in voice over IP applications with Asterisk (PBX).

Extension of the term for non-software usage
While the term "open source" applied originally only to the source code of software, it is now being applied to many other areas such as Open source ecology, a movement to decentralize technologies so that any human can use them. However, it is often misapplied to other areas which have different and competing principles, which overlap only partially.

The same principles that underlie open source software can be found in many other ventures, such as open-source hardware, Wikipedia, and open-access publishing. Collectively, these principles are known as open source, open content, and open collaboration: "any system of innovation or production that relies on goal-oriented yet loosely coordinated participants, who interact to create a product (or service) of economic value, which they make available to contributors and non-contributors alike."

Supporters of the open content movement advocate some restrictions of use, requirements to share changes, and attribution to other authors of the work.

This "culture" or ideology takes the view that the principles apply more generally to facilitate concurrent input of different agendas, approaches and priorities, in contrast with more centralized models of development such as those typically used in commercial companies.