How Open-Source Software Works
Open-source software (OSS) is any computer software that's distributed with its source code available for modification. That means it usually includes a license for programmers to change the software in any way they choose: They can fix bugs, improve functions, or adapt the software to suit their own needs.
Open-Source Software Criteria
The Open Source Initiative (OSI), a global nonprofit founded in 1998, acts as a leading authority on OSS. Its definition of open-source software includes ten criteria, relating to matters such as:
- Software redistribution
- Source code availability and integrity
- Distribution and properties of licenses
- Derived works
Different licenses allow programmers to modify the software with various conditions attached. According to the Black Duck KnowledgeBase, a database of some two million open source projects, five of the most popular licenses are:
- MIT License
- GNU General Public License (GPL) 2.0
- Apache License 2.0
- GNU General Public License (GPL) 3.0
- BSD License 2.0 (3-clause, New or Revised)
When you change the source code, OSS requires the inclusion of what you altered as well as your methods. The software created after code modifications may or may not be made available for free.
Commercially available software, aka commercial or proprietary software, doesn’t give access to its source code because the software is someone else's intellectual property. As a result, users often pay for it. OSS, on the other hand, is a collaborative effort; The software is shared intellectual property among all who have helped develop or alter it.
Although the terms are often used interchangeably, OSS is slightly different from free software. Both deal with the ability to download and modify software without restriction or charge. However, free software—a concept developed in the 1980s by an MIT computer science researcher, Richard Stallman—is defined by four conditions, as outlined by the nonprofit Free Software Foundation. These "four freedoms" emphasize the ability of users to use and enjoy software as they see fit.
In contrast, the OSS criteria, which the Open Source Initiative developed a decade later, place more emphasis on the modification of software, and the consequences of altering source code, licensing, and distribution.
The two overlap; some would say the differences between OSS and free software are more philosophical than practical. However, neither should be confused with freeware. Freeware usually refers to proprietary software that users can download at no cost, but whose source code cannot be changed.
While its lack of cost is a key advantage, OSS has several additional benefits:
- Its quality can be easily and greatly improved when its source code is passed around, tested, and fixed.
- It offers a valuable learning opportunity for programmers. They can apply skills to the most popular programs available today.
- It can be more secure than proprietary software because bugs are identified and fixed quickly.
- Since it is in the public domain, and constantly subject to updates, there is little chance it can become unavailable or quickly outmoded—an important plus for long-term projects.
Open-source technologies helped establish much of the internet. Furthermore, many of the programs in use every day are based on open-source technologies. Cases in point: Android OS and Apple’s OS X are based on the kernel and Unix/BSD open-source technologies, respectively.
Other popular open-source software is:
- Mozilla's Firefox web browser
- Thunderbird email client
- PHP scripting language
- Python programming language
- Apache HTTP web server
OSS projects are collaboration opportunities that improve skills and build connections in the field. Areas that developers can work on include:
Email, real-time messaging, forums, and wikis help developers to find solutions or bounce ideas off each other.
Distributed Revision Control Systems
When multiple developers in different geographical locations modify data and files, these systems manage the different versions and updates.
Bug Trackers and Task Lists
These features allow large-scale projects to monitor issues and keep track of their fixes.
Testing and Debugging Tools
These features automate testing during system integration and debug other programs.
The Bottom Line
Open-source software is an alternative to proprietary software. Participating in an OSS project can be a pathway to building a career in software development, allowing programmers to hone their skills by working on the biggest software programs in the world. Facebook, Google, and LinkedIn all release OSS, so developers can share knowledge, innovate solutions, and contribute to stable, functional products.