Open source software is software anyone can view, copy, or modify. It’s popular because it’s free to use and a collaborative experience. Learn more about types of open source software and open source software examples.
The thing that makes software open source is its source code; anyone is free to view it, change it, adapt it to their own purposes, and redistribute it in a variety of ways. One major benefit of open source software is its free use, but its flexibility and reliability make it an attractive choice for users and developers.
Open source software began when MIT programmer Richard Stallman developed the GNU General Public License. He aimed to help developers access, explore, and understand other people’s work, fostering a community dedicated to learning and enhancing code. Since then, open source code has become an important part of the digital world.
Open source software is so prevalent that approximately 30 percent of Fortune 100 companies have an Open Source Program Office (OSPO) to ensure proper compliance and promote the use of open source software in their organization [1]. Keep reading to learn about OSS principles, features, and more.
Simply put, open source software has open-source code. This means anyone who wants to view, change, or improve the code has access. Source code is the actual program code—the written instructions from the programmer to the computer to perform a function.
In many cases, a company or individual owns software, and they have exclusive rights to the source code as intellectual property. These types of software are “proprietary” or “closed source” and users are often unable to view the source code and see how the developers created the software. Open source, on the other hand, is freely shared, which can lead to a spirit of collaboration and community around projects while offering cost-effective options for software solutions.
Beyond the technical requirements for classifying software as open source, open source projects also tend to invoke certain philosophical principles. Open source encourages community, for example, by giving an open invitation to anyone who wants to work to improve the software. Updates and changes will happen when a community of developers cares about the project and wants to see it succeed. Changes and corrections cause other people’s work to grow, leading to the sense of building something together with open collaboration.
Another principle of open source software is transparency. When the source is available for everyone to view, anyone can examine and question what’s going on behind the scenes. In an open collaboration, good ideas gain support and excitement, which makes developers more likely to implement them. Less elegant ideas can find feedback and support to develop into something more compelling.
While open source software and freeware are available at no cost, they differ significantly in other aspects. Unlike open source software, freeware does have a copyright that belongs to a person or organization. However, the copyright owner makes the software available for free, sometimes for a period of time and other times for perpetuity. Due to copyright issues, users and freeware cannot access the source material. However, you can legally reverse-engineer it, meaning you can try to recreate the program independently without violating copyright laws.
You can use open source software for any purpose. The main feature that defines a program as open source is the type of open use license they are offered under. Although each license has subtle differences, many pieces of code or software labeled “open source” follow the definition set by the Open Source Initiative. These features include:
Free distribution
Distributed source code
Allows modification and derived works
Does not discriminate
Distribution of license (all redistributions of the software carry the same license)
License not specific to a product
License doesn't interfere with other software and their licenses
License not dependent on a specific technology
Although the Open Source Initiative maintains a definition of open source software, open source material can be licensed under several different types. These include copyleft, public domain, permissive, and lesser general public licenses.
Copyleft: A copyleft license means that while you can modify and use the content as you see fit, any changes you make or new products you create must also have a copyleft open source license. You could, for example, use copyleft code to create a new piece of software, as long as you do not call that “proprietary” software and hold it under copyright.
Public domain: Software under a public domain license has no copyright, and users are free to use, copy, distribute, change, or otherwise use the work as they wish.
Permissive: Permissive use licenses offer the most flexibility to developers. With minimal restriction, you can change, copy, use, modify, and distribute the software as you see fit. Unlike copyleft, you could use permissive open source software to create a new product and hold it as proprietary.
Lesser general public license: An LGPL allows you to use open code with little restriction. The only specifics required for an LGPL is that if you change or modify the code, referred to as a “library,” you must republish it under an LGPL so others can use it. Otherwise, you can use LGPL libraries in any way you wish, including in proprietary projects.
Open source software is utilized by both end users and developers who seek to improve or modify the code. In fact, open source software is so pervasive that a 2023 report from Synopsis found that 96 percent of commercial codebases surveyed contained open source code, even if the code's owners didn’t know it [2]. A 2024 Synopsys report reveals that 74 percent of codebases contain high-risk open source vulnerabilities, which is a 54 percent increase from the previous year [3].
You can use open source software in both small-scale and large-scale operations. For example, OSS can be a single program like the graphics editor GIMP, or it can be as functional as an operating system, like Linux. Open source software examples include:
Linux
Mozilla Firefox
Apache web server
LibreOffice
GIMP
Blender
WordPress
Google Android
Open source software is free to use, which may be the first apparent advantage for open source users. It’s also flexible, and developers can adapt and modify it for their specific needs. This is instead of going through a proprietary company for modifications, or potentially expensive customizations.
Another benefit of open source software is the community of people who use it. Many people continue to improve and debug open source programs, meaning you can connect to other interested developers if you have questions or ideas about the code. This also makes the code more trustworthy and stable, giving developers peace of mind that it will continue to be available for use.
Open source software's limitations include potential compatibility issues, bugs, and security flaws. In many cases, developers design proprietary software with the end user in mind to help guarantee a more user-friendly experience. A development team doesn’t direct open source software in this same manner, so it may not always be the most user-friendly option. On the other hand, with the ability to modify or change the program, it might make sense to customize open source software to be more user-friendly.
Additionally, commercial companies sometimes offer proprietary software with some kind of guarantee or liability in case something goes wrong on your end. Open source software doesn’t offer any additional protection in that way. No single entity is in charge of the software, so holding that guarantee to any particular individual would be impossible.
Your experience with open source software can be a helpful addition to your resume. It can showcase your skills—both in established and well-known programs, like Linux or Google Android— while demonstrating your programming skills. Anyone can work on open source software, so one way to add experience to your resume is to involve yourself with an open source project. Debugging or contributing in other ways to open source allows you the opportunity to hone your programming skills, build community, and showcase your talent to potential employers.
Read more: How to Become a Software Developer (With or Without a Degree)
Open source software (OSS) plays an important role in modern technology. It allows for open collaboration and is implemented by developers across virtually all devices.
If you’re ready to take the next step and learn more about open source software, consider the Open Source Software Development, Linux, and Git Specialization offered by The Linux Foundation on Coursera. This Specialization consists of four courses: Open Source Software Development Methods, Linux for Developers, Linux Tools for Developers, and Using Git for Distributed Development. By completing the Specialization, you have the opportunity to become proficient in open source software development, the Linux environment, and Git.
GitHub. “The state of open source and rise of AI in 2023, https://github.blog/2023-11-08-the-state-of-open-source-and-ai/.” Accessed October 28, 2024.
CSO. "Majority of commercial codebases contain high-risk open-source code, https://www.csoonline.com/article/1310819/majority-of-commercial-codebases-contain-high-risk-open-source-code.html." Accessed October 28, 2024.
Synopsys. "New Synopsys Report Finds 74% of Codebases Contained High-Risk Open Source Vulnerabilities, Surging 54% Since Last Year, https://news.synopsys.com/2024-02-27-New-Synopsys-Report-Finds-74-of-Codebases-Contained-High-Risk-Open-Source-Vulnerabilities,-Surging-54-Since-Last-Year.” Accessed October 28, 2024.
Editorial Team
Coursera’s editorial team is comprised of highly experienced professional editors, writers, and fact...
This content has been made available for informational purposes only. Learners are advised to conduct additional research to ensure that courses and other credentials pursued meet their personal, professional, and financial goals.