Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized software development model that encourages open collaboration. A main principle of open-source software development is peer production, with products such as source code, blueprints, and documentation freely available to the public. The open-source movement in software began as a response to the limitations of proprietary code. The model is used for projects such as in open-source appropriate technology, and open-source drug discovery.
The term originated in the context of software development to designate a specific approach to creating computer programs. Today, however, “open source” designates a broader set of values—what we call “the open source way.” Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.
The history of open source is the history of the internet
In the 1950s and 1960s researchers developing early internet technologies and telecommunication network protocols relied on an open and collaborative research environment. The Advanced Research Projects Agency Network (ARPANET), which would later become the foundation for the modern internet, encouraged peer review and an open feedback process. User groups shared and built upon one another’s source code. Forums helped facilitate conversation and develop standards for open communication and collaboration. By the time of the birth of the internet in the early 1990s, the values of collaboration, peer review, communication, and openness were written into its foundations.
What is open-source software?
Open source software is software with source code that anyone can inspect, modify, and enhance.
“Source code” is the part of the software that most computer users don’t ever see; it’s the code computer programmers can manipulate to change how a piece of software—a “program” or “application”—works. Programmers who have access to a computer program’s source code can improve that program by adding features to it or fixing parts that don’t always work correctly.
What’s the difference between open-source software and other types of software?
Some software has source code that only the person, team, or organization who created it—and maintains exclusive control over it—can modify. People call this kind of software “proprietary” or “closed source” software.
Only the original authors of proprietary software can legally copy, inspect, and alter that software. And in order to use proprietary software, computer users must agree (usually by signing a license displayed the first time they run this software) that they will not do anything with the software that the software’s authors have not expressly permitted. Microsoft Office and Adobe Photoshop are examples of proprietary software.
Open source software is different. Its authors make its source code available to others who would like to view that code, copy it, learn from it, alter it, or share it. LibreOffice and the GNU Image Manipulation Program are examples of open source software.
As they do with proprietary software, users must accept the terms of a license when they use open source software—but the legal terms of open source licenses differ dramatically from those of proprietary licenses.
Open source licenses affect the way people can use, study, modify, and distribute software. In general, open source licenses grant computer users permission to use open source software for any purpose they wish. Some open source licenses—what some people call “copyleft” licenses—stipulate that anyone who releases a modified open source program must also release the source code for that program alongside it. Moreover, some open source licenses stipulate that anyone who alters and shares a program with others must also share that program’s source code without charging a licensing fee for it.
By design, open source software licenses promote collaboration and sharing because they permit other people to make modifications to source code and incorporate those changes into their own projects. They encourage computer programmers to access, view, and modify open source software whenever they like, as long as they let others do the same when they share their work.
What are the values of open source?
There are lots of reasons why people choose open source over proprietary software, but the most common ones are:
-
- Peer review: Because the source code is freely accessible and the open source community is very active, open source code is actively checked and improved upon by peer programmers. Think of it as living code, rather than code that is closed and becomes stagnant.
-
- Transparency: Need to know exactly what kinds of data are moving where, or what kinds of changes have happened in the code? Open source allows you to check and track that for yourself, without having to rely on vendor promises.
-
- Reliability: Proprietary code relies on the single author or company controlling that code to keep it updated, patched, and working. Open source code outlives its original authors because it is constantly updated through active open source communities. Open standards and peer review ensure that open source code is tested appropriately and often.
-
- Flexibility: Because of its emphasis on modification, you can use open source code to address problems that are unique to your business or community. You aren’t locked in to using the code in any one specific way, and you can rely on community help and peer review when you implement new solutions.
-
- Lower cost: With open source the code itself is free—what you pay for when you use a company like Red Hat is support, security hardening, and help managing interoperability.
-
- No vendor lock-in: Freedom for the user means that you can take your open source code anywhere, and use it for anything, at anytime.
- Open collaboration: The existence of active open source communities means that you can find help, resources, and perspectives that reach beyond one interest group or one company.
How does open source software work?
Open source code is usually stored in a public repository and shared publicly. Anyone can access the repository to use the code independently or contribute improvements to the design and functionality of the overall project.
OSS usually comes with a distribution license. This license includes terms that define how developers can use, study, modify, and most importantly, distribute the software. According to the Synopsys Black Duck® KnowledgeBase, five of the most popular licenses are:
- MIT License
- GNU General Public License (GPL) 2.0—this is more restrictive and requires that copies of modified code are made available for public use
- Apache License 2.0
- GNU General Public License (GPL) 3.0
- BSD License 2.0 (3-clause, New or Revised)—this is less restrictiveiv
What are some examples of open source software?
- GNU/Linux
- Mozilla Firefox
- VLC media player
- SugarCRM
- GIMP
- VNC
- Apache web server
- LibreOffice
- jQuery