Open-source Program
   HOME

TheInfoList



OR:

Open-source software (OSS) is
computer software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
that is released under a
license A license (American English) or licence (Commonwealth English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit). A license is granted by a party (licensor) to another part ...
in which the
copyright A copyright is a type of intellectual property that gives its owner the exclusive legal right to copy, distribute, adapt, display, and perform a creative work, usually for a limited time. The creative work may be in a literary, artistic, ...
holder grants users the rights to use, study, change, and distribute the software and its
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent example of
open collaboration Open collaboration refers to any "system of innovation or production that relies on goal-oriented yet loosely coordinated participants who cooperate voluntarily to create a product (or service) of economic value, which is made freely available to ...
, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software.
Open-source software development Open-source software development (OSSD) is the process by which open-source software, or similar software whose source code is publicly available, is developed by an open-source software project. These are software products available with its sourc ...
can bring in diverse perspectives beyond those of a single company. A 2024 estimate of the value of open-source software to firms is $8.8 trillion, as firms would need to spend 3.5 times the amount they currently do without the use of open source software. Open-source code can be used for
studying Learning is the process of acquiring new understanding, knowledge, behaviors, skills, values, attitudes, and preferences. The ability to learn is possessed by humans, non-human animals, and some machines; there is also evidence for some kind ...
and allows capable end users to adapt software to their personal needs in a similar way
user scripts A userscript (or user script) is a program, usually written in JavaScript, for modifying web pages to augment browsing. Uses include adding shortcut buttons and keyboard shortcuts, controlling playback speeds, adding features to sites, and enhanc ...
and custom style sheets allow for web sites, and eventually publish the modification as a
fork In cutlery or kitchenware, a fork (from 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods either to h ...
for users with similar preferences, and directly submit possible improvements as
pull request In software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centr ...
s.


Definitions

The
Open Source Initiative The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software". Governance The ...
's (OSI) definition is recognized by several governments internationally as the standard or '' de facto'' definition. OSI uses ''
The Open Source Definition ''The Open Source Definition'' (OSD) is a policy document published by the Open Source Initiative. Derived from the Debian Free Software Guidelines written by Bruce Perens, the definition is the most common standard for open-source software. T ...
'' to determine whether it considers a software license open source. The definition was based on the
Debian Free Software Guidelines ''The Open Source Definition'' (OSD) is a policy document published by the Open Source Initiative. Derived from the Debian Free Software Guidelines written by Bruce Perens, the definition is the most common standard for open-source software. ...
, written and adapted primarily by
Bruce Perens Bruce Perens (born around 1958) is an American computer programmer and advocate in the free software movement. He created ''The Open Source Definition'' and published the first formal announcement and manifesto of open source. He co-founded the ...
. Perens did not base his writing on the "four freedoms" from the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
(FSF), which were only widely available later. Under Perens' definition, ''open source'' is a broad software license that makes source code available to the general public with relaxed or non-existent restrictions on the use and modification of the code. It is an explicit "feature" of open source that it puts very few restrictions on the use or distribution by any organization or user, in order to enable the rapid evolution of the software. 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 Richard Matthew Stallman ( ; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to ...
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 The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software". Governance The ...
, 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 In mathematics, a Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they a ...
of open-source software, and Richard Stallman explained that
DRM DRM may refer to: Government, military and politics * Defense reform movement, U.S. campaign inspired by Col. John Boyd * Democratic Republic of Madagascar, a former socialist state (1975–1992) on Madagascar * Direction du renseignement militair ...
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.


Open-source software development


Development model

In his 1997 essay ''
The Cathedral and the Bazaar ''The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary'' (abbreviated ''CatB'') is an essay, and later a book, by Eric S. Raymond on software engineering methods, based on his observations of the Linux ...
'', open-source influential contributor
Eric S. Raymond Eric Steven Raymond (born December 4, 1957), often referred to as ESR, is an American software developer, open-source software advocate, and author of the 1997 essay and 1999 book ''The Cathedral and the Bazaar''. He wrote a guidebook for the R ...
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 report Tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system. Many bug tracking systems, such as those used b ...
s, documentation, etc. Having more co-developers increases the rate at which the software evolves.
Linus's law In software development, Linus's law is the assertion that "given enough eyeballs, all bugs are shallow". The law was formulated by Eric S. Raymond in his essay and book ''The Cathedral and the Bazaar'' (1999), and was named in honor of Linus To ...
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. Compare with
extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
. 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 list A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. Mailing lists are often rented or sold. If rented, the renter agrees to use the mailing list only at contra ...
s 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 Peer feedback is a practice where feedback is given by one student to another. Peer feedback provides students opportunities to learn from each other. After students finish a writing assignment but before the assignment is handed in to the instru ...
. 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 Continuous integration (CI) is the practice of integrating source code changes frequently and ensuring that the integrated codebase is in a workable state. Typically, developers Merge (version control), merge changes to an Branching (revisio ...
. 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 adoption of that standard. This creates 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 can be a 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. Open source development offers the potential to quicken innovation and create of social value. In France for instance, a policy that incentivized government to favor free open-source software increased to nearly 600,000 OSS contributions per year, generating social value by increasing the quantity and quality of open-source software. This policy also led to an estimated increase of up to 18% of tech startups and a 14% increase in the number of people employed in the IT sector. OSS can be highly reliable when it has thousands of independent programmers testing and fixing bugs of the software. Open source is not dependent on the company or author that originally created it. Even if the company fails, the code continues to exist and be developed by its users. OSS 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 accordance 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.


Development tools

In open-source software development, tools are used to support the development of the product and the development process itself.
Version control Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code t ...
systems such as Centralized Version control system (CVCS) and the distributed version control system (DVCS) are examples of tools, often open source, that help manage the source code files and the changes to those files for a software project in order to foster collaboration. CVCS are centralized with a central repository while DVCS are decentralized and have a local repository for every user.
Concurrent Versions System Concurrent Versions System (CVS, or Concurrent Versioning System) is a version control system originally developed by Dick Grune in July 1986. Design CVS operates as a front end to Revision Control System (RCS), an older version control ...
(CVS) and later
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to sabotage the established social order and its structures of Power (philosophy), power, authority, tradition, h ...
(SVN) and
Git Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively. Design goals of Git include speed, data integrity, and suppor ...
are examples of CVCS. The repositories are hosted and published on source-code-hosting facilities such as
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
. Open-source projects use utilities such as issue trackers to organize open-source software development. Commonly used
bug tracker Tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system. Many bug tracking systems, such as those used ...
s include
Bugzilla Bugzilla is a web-based general-purpose bug tracking system and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License. Released as open-source software by Netscape Communications in 19 ...
and
Redmine Redmine is a free and open source, web-based project management and issue tracking tool. It allows users to manage multiple projects and associated subprojects. It features per project wikis and forums, time tracking, and flexible, role-based ac ...
. Tools such as
mailing lists A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. Mailing lists are often rented or sold. If rented, the renter agrees to use the mailing list only at contra ...
and
IRC IRC (Internet Relay Chat) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called '' channels'', but also allows one-on-one communication via private messages as well as chat ...
provide means of coordination and discussion of bugs among developers. Project web pages, wiki pages, roadmap lists and newsgroups allow for the distribution of project information that focuses on end users.


Opportunities for participation


Contributing

The basic roles OSS participants can fall into multiple categories, beginning with leadership at the center of the project who have control over its execution. Next are the core contributors with a great deal of experience and authority in the project who may guide the other contributors. Non-core contributors have less experience and authority, but regularly contribute and are vital to the project's development. New contributors are the least experienced but with mentorship and guidance can become regular contributors. Some possible ways of contributing to open-source software include such roles as
programming Program (American English; also Commonwealth English in terms of computer programming and related activities) or programme (Commonwealth English in all other meanings), programmer, or programming may refer to: Business and management * Program m ...
, user
interface design User interface (UI) design or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the ...
and testing,
web design Web design encompasses many different skills and disciplines in the production and maintenance of websites. The different areas of web design include web graphic design; user interface design (UI design); authoring, including standardised code a ...
,
bug triage A software bug is a design defect (Bug (engineering), bug) in computer software. A computer program with many or serious bugs may be described as ''buggy''. The effects of a software bug range from minor (such as a misspelled word in the user ...
, accessibility design and testing,
UX design User experience design (UX design, UXD, UED, or XD), upon which is the centralized requirements for "User Experience Design Research" (also known as UX Design Research), defines the experience a user would go through when interacting with a compa ...
, code testing, and security review and testing. However, there are several ways of contributing to OSS projects even without coding skills. For example, some less technical ways of participating are
documentation Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance, and use. As a form of knowledge managem ...
writing and editing,
translation Translation is the communication of the semantics, meaning of a #Source and target languages, source-language text by means of an Dynamic and formal equivalence, equivalent #Source and target languages, target-language text. The English la ...
,
project management Project management is the process of supervising the work of a Project team, team to achieve all project goals within the given constraints. This information is usually described in project initiation documentation, project documentation, crea ...
, event organization and coordination, marketing, release management, community management, and public relations and outreach. Funding is another way that individuals and organizations choose to contribute to open source projects. Groups like
Open Collective Open Collective is a crowdfunding platform focused on grassroots groups. It enables organizations, communities, and projects to get a legal status and raise funding through subscription or one time payment. It's particularly favoured by open sourc ...
provide a means for individuals to contribute monthly to supporting their favorite projects. Organizations like the
Sovereign Tech Fund The Sovereign Tech Agency is a subsidiary of the German Federal Agency for Disruptive Innovation, funded by the Federal Ministry for Economic Affairs and Climate Action, aimed at providing financial support to open-source software. The initial fun ...
is able to contribute to millions to supporting the tools the
German Government The Federal Government (, ; abbr. BReg) is the chief executive body of the Federal Republic of Germany and exercises executive power at the federal level. It consists of the Federal Chancellor and the Federal Ministers. The fundamentals o ...
uses. The
National Science Foundation The U.S. National Science Foundation (NSF) is an Independent agencies of the United States government#Examples of independent agencies, independent agency of the Federal government of the United States, United States federal government that su ...
established a Pathways to Enable Open-Source Ecosystems (POSE) program to support open source innovation.


Industry participation

The adoption of open-source software by industry is increasing over time. OSS is popular in several industries such as
telecommunications Telecommunication, often used in its plural form or abbreviated as telecom, is the transmission of information over a distance using electronic means, typically through cables, radio waves, or other communication technologies. These means of ...
,
aerospace Aerospace is a term used to collectively refer to the atmosphere and outer space. Aerospace activity is very diverse, with a multitude of commercial, industrial, and military applications. Aerospace engineering consists of aeronautics and astron ...
,
healthcare Health care, or healthcare, is the improvement or maintenance of health via the preventive healthcare, prevention, diagnosis, therapy, treatment, wikt:amelioration, amelioration or cure of disease, illness, injury, and other disability, physic ...
, and media & entertainment due to the benefits it provides. Adoption of OSS is more likely in larger organizations and is dependent on the company's IT usage, operating efficiencies, and the productivity of employees. Industries are likely to use OSS due to back-office functionality, sales support, research and development, software features, quick deployment, portability across platforms and avoidance of commercial license management. Additionally, lower cost for hardware and ownership are also important benefits.


Prominent organizations

Organizations that contribute to the development and expansions of free and open-source software movements exist all over the world. These organizations are dedicated to goals such as teaching and spreading technology. As listed by a former vice president of the
Open Source Initiative The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software". Governance The ...
, some American organizations include the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
,
Software Freedom Conservancy Software Freedom Conservancy, Inc. (also known as "Conservancy") is an organization that provides a Nonprofit organization, non-profit home, infrastructure support, and legal support for free software, free and open source software projects. The ...
, the
Open Source Initiative The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software". Governance The ...
and
Software in the Public Interest Software in the Public Interest, Inc. (SPI) is a US 501(c)(3) non-profit organization domiciled in New York State formed to help other organizations create and distribute free open-source software and open-source hardware. Anyone is eligible to ...
. Within Europe some notable organizations are
Free Software Foundation Europe The Free Software Foundation Europe e.V. (FSFE) is an organization that supports free software and all aspects of the free software movement in Europe, with registered chapters in several European countries. It is a registered voluntary associat ...
, open-source projects EU (OSP) and
OpenForum Europe OpenForum Europe (OFE) is a European Open-source software, open source software and open standard not-for-profit think tank. Its key objective is to contribute to achieve an open and competitive digital ecosystem in Europe. Based in Brussels, i ...
(OFE). One Australian organization is
Linux Australia Linux Australia is the national, Australian Free and Open Source Software Community organisation. It was founded in 1997 and formally incorporated in New South Wales as a non-profit organisation in 1999. Linux Australia aims to represent Australia ...
while Asia has
Open source Asia Open or OPEN may refer to: Music * Open (band), Australian pop/rock band * The Open (band), English indie rock band * ''Open'' (Blues Image album), 1969 * ''Open'' (Gerd Dudek, Buschi Niebergall, and Edward Vesala album), 1979 * ''Open'' (Got ...
and FOSSAsia.
Free and open source software for Africa Free may refer to: Concept * Freedom, the ability to act or change without constraint or restriction * Emancipate, attaining civil and political rights or equality * Free (''gratis''), free of charge * Gratis versus libre, the difference betw ...
(FOSSFA) and OpenAfrica are African organizations and Central and South Asia has such organizations as
FLISOL FLISoL, an acronym for Festival Latinoamericano de Instalación de Software Libre (Latin American free software Installfest, install fest), is the biggest event for spreading ''Software Libre, free software'' since 2005, performed simultaneously i ...
and
GRUP de usuarios de software libre Peru Grup may refer to: * Grup Gerak Khas, a special forces regiment of the Malaysian Army * ADD Grup, a developer and manufacturer of smart metering solutions * Transferoviar Grup, a private railway company in Romania * Grup, a term for grown-ups Star ...
. Outside of these, many more organizations dedicated to the advancement of open-source software exist.


Legal and economic issues


Licensing

FOSS products are generally licensed under two types of licenses: permissive licensing and copyleft licensing. Both of these types of licenses are different than
proprietary licensing {{Short pages monitor