Open-source software (OSS) is computer software whose source code is publicly available, allowing users to use, study, modify, and distribute it — in contrast with proprietary (closed-source) software. These abilities are typically granted through open licenses or, more rarely, by dedication to the public domain. The development of open-source software can be based on open collaboration, a decentralized model of production. It is commonly defined according to the Open Source Definition of the Open Source Initiative, but the precise meaning of "open source" remains contentious.
Open-source software offers a range of benefits, but also presents specific risks and challenges. It can provide improved accessibility through lower and shared costs, greater adaptability through customization, transparency with auditable code, better interoperability via open standards, and independence from vendor lock-in, among others. Due to its ubiquity in modern software, open-source software raises major cybersecurity concerns, as well as significant maintenance challenges.
Open-source software has become the backbone of the global digital infrastructure, powering domains such as web servers, cloud computing, supercomputers, mobile devices, artificial intelligence, and Internet of Things. A 2022 estimate suggests that between 80 and 96 percent of the code making up software on the market today, including proprietary software, is of open-source origin. Its adoption has grown steadily across public institutions, the private sector, and academia, driven by motivations of cybersecurity, digital sovereignty, and independence from proprietary software, with significant geopolitical implications. Organizations are increasingly setting up Open Source Program Offices to manage their strategies.
Open-source software has its roots in the culture of source code sharing that dates back to the origins of computing in the 1950s. The term was formalized in 1998 with the founding of the Open Source Initiative, succeeding the free software movement initiated in the 1980s, with the intention of overcoming the ambiguity of the word "free" — meaning both freedom and gratis — to better appeal to the business world.
Major examples include the Linux kernel, the Firefox web browser or Bitcoin. MediaWiki, the software powering Wikipedia, is itself an example of open-source software.
Definitions and controversies
Open source software is mainly defined according to the Open Source Definition (OSD) established by the Open Source Initiative (OSI). To qualify as open source under this framework, software must provide its source code and be distributed under a license meeting the ten OSD criteria, notably including non-discrimination against persons, groups, or fields of endeavor — enabling anyone to use, modify, and redistribute it for any purpose. The definition was based on the Debian Free Software Guidelines, written and adapted primarily by Bruce Perens and Eric S. Raymond.Perens, Bruce. Open Sources: Voices from the Open Source Revolution . O'Reilly Media. 1999., The Open Source Definition according to the Open Source Initiative. The OSI maintains a list of approved licenses that conform to the OSD.
However, the OSI holds no legal authority over the term 'open source' and its definition is a matter of social convention. With its non-discrimination criteria having generated for decades what is described as a 'culture war' within software communities over the very meaning of open source — the OSI can be seen by some actors as an oppressive dogma. It occurs because developers have never learned about this history, or don’t care about it, or actively think it’s irrelevant, involving a form of intergenerational conflict. These disputes are driven by ethical and commercial concerns. As a result, the term 'open source' can be used in ways that do not conform to the OSD, ranging from unintentional misuse to deliberate rejection of its authority.
Public-domain software is a source of disagreement as to whether it qualifies as open source software, carrying no formal licence and granting rights that vary significantly depending on the jurisdiction. The OSI itself has expressed diverging views on the matter, claiming both that "it is accurate to say that such software is effectively open source" and "it is incorrect to treat public domain software as open source".
Diverging visions and semantic conflicts around the meaning of open source have led to the creation of adjacent terms, such as source-available software, fair source, ethical source, shared source, post open source or fauxpen source.
"Open" versus "free" versus "free and open"
Free and open-source software (FOSS) or free/libre and open-source software (FLOSS) is openly shared source code that is licensed without any restrictions on usage, modification, or distribution. Confusion persists about this definition because the "free", also known as "libre", refers to the freedom of the product, not the price, expense, cost, or charge. For example, "being free to speak" is not the same as "free beer".
Conversely, Richard Stallman argues the "obvious meaning" of term "open source" is that the source code is public/accessible for inspection, without necessarily any other rights granted, although the proponents of the term say the conditions in the Open Source Definition must be fulfilled.
"Free and open" should not be confused with public ownership (state ownership), deprivatization (nationalization), anti-privatization (anti-corporate activism), or transparent behavior. GNU GNU Manifesto Richard Stallman Gratis versus libre (no cost vs no restriction)
According to Feller et al. (2005), the terms "free software" and "open-source software" should be applied to any "software products distributed under terms that allow users" to use, modify, and redistribute the software "in any manner they see fit, without requiring that they pay the author(s) of the software a royalty or fee for engaging in the listed activities."
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 he agrees that the two terms describe "almost the same category of software", Stallman considers equating the terms incorrect and misleading. Stallman also opposes the professed pragmatism of the Open Source Initiative, as he fears 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 explained 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 does not qualify as free software.
Software ownership
Open-source software is owned by its authors who retain the copyright, from which they confer the right to use, modify and redistribute the software through the use of license. Without external agreements, contributions are owned by their authors resulting in copyright being shared among contributors. In this legal context, some projects use Contributor License Agreement (CLA) or a copyright assignment agreement to keep control over the copyright of the project, providing the ability to relicense the software under different terms. Some types of open source software are therefore described as proprietary software.
Open-source software development
Development model In his 1997 essay The Cathedral and the Bazaar, open-source influential contributor 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, with careful isolated work by individuals or small groups. He suggests that all software should be developed using the bazaar style, with 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.
The bazaar model, however, is different. In this model, roles are not clearly defined. Some proposed characteristics of 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 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. Some users have advanced programming skills, and furthermore, each user's machine provides an additional testing environment. This new testing environment offers the 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. 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. This is in comparison with extreme programming.
The process of Open source development begins with a requirements elicitation where developers consider if they should add new features or if a bug needs to be fixed in their project. This is established by communicating with the OSS community through avenues such as bug reporting and tracking or mailing lists and project pages. Next, OSS developers select or are assigned to a task and identify a solution. Because there are often many different possible routes for solutions in OSS, the best solution must be chosen with careful consideration and sometimes even peer feedback. The developer then begins to develop and commit the code. The code is then tested and reviewed by peers. Developers can edit and evolve their code through feedback from continuous integration. Once the leadership and community are satisfied with the whole project, it can be partially released and user instruction can be documented. If the project is ready to be released, it is frozen, with only serious bug fixes or security repairs occurring. Finally, the project is fully released and only changed through minor bug fixes.
Advantages Open source implementation of a standard can increase the adoption and long-term viability of that standard. It often fosters developer loyalty, as contributors feel a greater sense of participation and ownership in the development process and the end product.