What is open source?
Open source is a decentralized production model that allows anyone to modify and share technology because its design is publicly accessible. The term originated in the context of software development to indicate that the software complies with certain free distribution criteria. Today, the term open source way designates a broader value set that is based on the principles of free information exchange, rapid prototyping, and collaborative development. Anyone can contribute new ideas and improve the technology further so that it evolves organically.
Why is open source important?
The idea of open source emerged from the technology community. Technical innovations need global collaboration to evolve. For example, say a programming team in the US develops new open-source technology for a financial application. Another programming team in Australia modifies the technology with new functionality better suited for the health sector. A third team in Asia then develops new open-source products that use the original technology as a core component.
Such knowledge sharing and collective innovation benefit the entire community. Locking technology behind patents, copyrights, and expensive licenses limits progress. Many popular open-source projects have led to rapid technology advancement worldwide in the last few decades.
What are the principles of open source?
The core principles behind any open-source project are as follows:
An open-source community is a group of people who come together to achieve a common purpose. Their shared values and goals guide decision making and drive the open-source project forward.
Open-source projects ensure that everyone in the community has access to the information and materials necessary for doing their best work. With awareness of the bigger picture, team members make more effective decisions and build on each other's ideas and discoveries.
Community projects encourage teamwork, so a group solves problems that individuals alone cannot. For example, members in any open-source initiative contribute changes to improve what someone else has built. You can also establish rules so others can modify the solution as needed in the future.
An open-source project follows an iterative approach, in which team members create and share prototypes at frequent intervals. Rapid prototyping encourages a culture of experimentation. You can improve and carry forward changes that work and discard those that don't.
The open-source movement encourages diverse perspectives and conversations. The community makes decisions by consensus but also prioritizes success. The best ideas get more support and effort from the open-source community.
What are the features of open-source software?
Features of any open-source software closely align with the values of the open-source movement.
Open-source software must be released under an open-source license that meets certain distribution criteria, such as the following:
- No restrictions on selling or giving away the software as a component of aggregate software distribution
- Must include and allow distribution of the source code
- Must allow modifications and derived works
- Rights attached to the program must apply to all without discrimination
Open design guarantees a transparent and open process for designing and planning software. It's about letting the community drive the software’s design and feature roadmap. This can be challenging because getting community consensus can be a time-consuming process. However, community-agreed design leads to a better product that more effectively meets users’ needs.
Open development is the adoption of inclusive and transparent development processes that allow everyone to participate as equals. Publicly accessible services bring visibility to development activities. For example, open-source projects typically adopt a set of standards that clearly state the metrics that a contribution will be evaluated against. This allows all software updates to be given equal consideration, whether that update is from a first-time contributor or a senior developer.
Open community ensures that the software development community is an inclusive environment where all voices are heard and anyone can rise to leadership positions. It balances the needs of both developers and users by establishing common goals and building strong connections.
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 software that computer programmers manipulate to change how an application functions or to add new features. Anyone with access to a software's source code can improve or customize the application by adding features to it or troubleshooting existing errors. Open-source software appears in most web applications and devices you use today. Some examples of open-source software are Linux, an open-source operating system, and Mozilla Firefox, an open-source internet browser.
What is the difference between open-source software and other types of software?
Sometimes, organizations or people who create software prefer to control it for commercial reasons. They maintain exclusive ownership rights to the source code, which means only they can modify the code to fix errors or add new features. Such software is called proprietary software or closed-source software. Adobe Photoshop and Norton AntiVirus products are examples of proprietary software.
Open-source software vs. Closed-source software
The three main differences between open-source software and closed-source, or proprietary, software are the following:
Any source code can have security flaws that make it vulnerable to cyberattacks. However, open-source software has the advantage of faster fixes. Once you or other community members report security vulnerabilities, open-source projects release a code update within a day or two. If commercial companies develop open-source software, high visibility creates an urgency to fix issues and may even lead to better original software.
In contrast, proprietary software has longer update cycles for these reasons:
- The vendor may have fewer people working on a given project.
- The vendor may prioritize financial considerations over security flaws.
- The vendor may delay releasing the security update because they prefer to bundle several changes and release them at once.
- Modify the source code for personal projects.
- Redistribute the modified code if users continue to allow others to view their changes.
What are the types of open-source software licenses?
Although an open-source license is less restrictive than a proprietary license, the level and range of permissions vary by type. The following are some common types of open-source licenses.
Public domain license
The public domain license indicates that anyone can modify, use, or commercialize the software without restrictions. In most cases, the public domain open-source software creators made an intentional or voluntary decision not to copyright the software.
Permissive open-source licenses contain minimal requirements for how you can modify or distribute the software. Some examples of this license type are the Apache License and the Berkeley Source Distribution (BSD) license. Although the original software is copyrighted and open source, users can commercialize and redistribute modified versions.
Lesser General Public License
The Lesser General Public License (LGPL) permits you to use open-source components without restrictions. These components are often accessible as code modules called libraries, which you can plug into any of your code and use. If you use LGPL source code in your application, you can commercialize the application. However, if you modify the existing LGPL code, you must redistribute it under the same license again.
- If you modify copyleft open-source components, you must release all the new source code along with your application. However, you don't have to do this if you use the application only internally and never release it to the public.
- You may sell your GPL modifications, but the buyer can redistribute them further if they choose.
- You must give credit to all past code authors in your new code's copyright statement.
Who regulates open-source software?
The Open Source Initiative (OSI) is a global, not-for-profit organization that educates about and advocates for all types of open-source software. As a standards body, it maintains the Open Source Definition, a document that legally defines the conditions that make any software open source.
By following the organization's Open Source Definition, you can obtain the OSI-approved license trademark. The trademark creates trust and encourages others to contribute and collaborate with you. The OSI maintains a list of approved licenses and approves new licenses in the open-source community. It also regulates the open standards requirement for software.
What are open standards?
Open standards are software development rules that support uniformity and interoperability in technology. They are freely available for implementation, adoption, and updates. As a result, they make many aspects of our everyday life more comfortable and convenient.
For example, standards allow all types of machines to connect to all types of wireless routers. You can use your laptop to connect to the internet from your home and from your favorite café, irrespective of the router they use. Without standards, you would have to find a café with a router that is compatible with your laptop!
Open source vs. open standards
Standards are the rules, guidelines, and specifications for writing certain types of source code, rather than the code itself. Software standards must follow certain rules to be classified as open source. For instance, if you require proprietary technology to implement certain standards, then those standards are not open source.
Why do commercial versions of open-source software exist?
Creators and other companies have monetized many open-source projects by selling add-ons, such as analytics or security, that appeal to bigger businesses. Private companies can commercialize all software in the public domain by including these open-source programs in their application code. They can also release different versions of the same software under different licenses.
For example, say a company releases a database management system under both the General Public License (GPL) and a proprietary license. Anyone can use the GPL version for software development as long as they make the new code open source. In contrast, the proprietary version offers additional software services, such as the following:
- A fully managed database service
- An enterprise-grade data backup service
- Additional security encryption
Is open-source software the same as free software?
The term free software refers to a social movement, also called the free software movement, aiming to obtain and guarantee certain freedoms for software users. This movement works to make sure users have the freedom to do the following:
- Run the software.
- Study the software.
- Modify the software.
- Share copies of the software.
Open-source software vs. free software
Today, free software refers to open-source licenses in the public domain. Open-source software now includes more types of licenses and can impose some restrictions on users, unlike in the free software movement. Because the terms freeware and free software are used interchangeably, it is better to refer to free software as public domain software.
Open-source software vs. freeware
The term freeware simply means an otherwise commercial product that is available for free for a limited time. Freeware can also be free trial versions or limited feature versions of a product that otherwise requires subscription fees. Even if you get access to freeware, you will not have the right to resell, share, or modify it in any way.
How does AWS contribute to open-source software?
At AWS, we believe that open source is good for everyone. We are committed to bringing the value of open source to our customers and the operational excellence of AWS to open-source communities. AWS engineers regularly develop open-source software and contribute to thousands of open-source communities on GitHub, Apache, the Linux Foundation, and more. Here are a few other ways that we support open source:
- We have worked hard to ensure that customers can deploy and operationalize their preferred open-source software in the cloud. AWS supports a wider range of open-source technologies than other cloud providers.
- We have several long-term projects in the open-source community. We continually contribute bug fixes, security, scalability, performance, and feature enhancements to these projects.
- We partner closely with leading open-source companies—from HashiCorp to MongoDB to Confluent to Red Hat—and help them exceed customer expectations.
Learn more about our open-source projects at Open source at AWS, or explore more than 1200 Amazon-led open-source projects on GitHub.
Get started with open source on AWS by creating a free account today.
Next steps on AWS
View free tier AWS services
Get started building with AWS in the AWS Management Console.