What Is Open Source Software?

What Is Open Source Software?

The software running under almost every website, powering most smartphones, and enabling the tools developers use every day is open source. Understanding what that means is less about ideology and more about understanding how modern software actually gets built and distributed.

What open source means

When software is open source, two things are true. The source code is publicly available, and the license grants specific rights to anyone who receives it.

Source code is the human-readable form of a program. When a developer writes software, they write source code in a language like C, Python, or Rust. That code is then compiled or interpreted into something a computer can execute. With proprietary software, you receive only the compiled output. With open source software, you also get the source.

The license is what turns “publicly available” into something legally meaningful. Without a license, publishing source code does not give anyone rights to use or modify it. The license is the explicit grant of those rights, along with the conditions attached to them.

The four freedoms

The Free Software Foundation defines free software around four freedoms that any user should have:

  • The freedom to run the program for any purpose
  • The freedom to study how the program works and modify it
  • The freedom to redistribute copies
  • The freedom to distribute modified versions

Open source software satisfies these freedoms through its license. The specific conditions vary by license, but any software that qualifies as open source grants at minimum the ability to use, inspect, modify, and share the code.

Copyleft vs permissive licenses

The most important practical distinction in open source licensing is between copyleft and permissive licenses.

Copyleft licenses require that any modified version you distribute must be released under the same license. The GNU General Public License (GPL) is the most widely used copyleft license. The Linux kernel is GPL licensed. If you take the Linux kernel, modify it, and distribute that modified version, your modifications must also be GPL. You cannot take GPL code and ship it as part of a proprietary product without releasing your changes.

# The Linux kernel license
cat /usr/share/doc/linux-image-$(uname -r)/copyright | head -20

Permissive licenses allow you to use the code in almost any context, including proprietary products, as long as you preserve the license notice. The MIT License and Apache License 2.0 are the most common examples. This is why companies can build commercial products on top of MIT-licensed libraries without releasing their own source code.

The practical effect: permissive licenses are preferred by companies building proprietary products on open source foundations. Copyleft licenses are preferred by projects that want to ensure improvements flow back to the community.

How open source software gets built

Most open source projects are developed in the open on platforms like GitHub or GitLab. The development model differs from proprietary software in a few important ways.

Anyone can read the code. Security researchers audit it. Curious developers learn from it. Potential contributors understand it before submitting changes.

Contributions come from outside. A company does not need to employ every developer who improves their open source project. Contributions arrive as pull requests from volunteers, competing companies, and users who ran into a bug and fixed it.

Issues are tracked publicly. Bug reports, feature requests, and discussions happen in the open. This creates a searchable history of why decisions were made.

Forks are possible. If a project’s direction becomes unacceptable to part of the community, anyone can take the code and start a new project from it. LibreOffice forked from OpenOffice.org. MariaDB forked from MySQL after Oracle acquired it. The ability to fork is a check on any single organisation’s control over a project.

Why companies contribute to open source

Open source runs a large share of commercial infrastructure, and many of the largest contributors to open source projects are corporations.

The reasons are practical. A company running nginx on a thousand servers benefits from nginx bugs being fixed quickly. Contributing engineers to the project is often more efficient than maintaining a private fork or filing support tickets. Google, Intel, Meta, and Red Hat are among the top contributors to the Linux kernel, not for altruistic reasons but because the kernel underpins their own infrastructure.

Companies also open source their own software strategically. Making a tool open source can accelerate adoption, attract contributors who improve it for free, and establish a standard around a project before competitors can. Kubernetes, TensorFlow, and React all became ubiquitous partly because their creators open sourced them.

The business model question

“If it’s free, how do they make money?” is a reasonable question. Several models work in practice.

Support and services. Red Hat built a billion-dollar business selling support subscriptions for software that is freely available as source code. Customers pay for stability guarantees, certified hardware compatibility, and a phone number to call when things break.

Hosted versions. Many open source projects have a company offering a managed cloud version. MongoDB, Elasticsearch, and GitLab all have open source cores with hosted versions that charge for convenience and scale. The open source version requires you to run your own infrastructure. The hosted version handles that for you.

Open core. The core project is open source and free. Enterprise features, a polished UI, or integrations are proprietary add-ons sold commercially. This is the model used by companies like HashiCorp (with Vault and Terraform, before their license change) and Grafana Labs.

Dual licensing. The software is available under a copyleft license for open source use and under a commercial license for proprietary use. MySQL uses this model. If you are building open source software, MySQL is free. If you are building proprietary software and do not want to comply with the GPL, you buy a commercial license.

Open source in the Linux ecosystem

Linux is the most prominent example of open source software, but it is one project in a much larger ecosystem. A typical Linux system runs hundreds of open source packages simultaneously.

# Count installed packages on a Debian/Ubuntu system
dpkg --list | grep -c '^ii'

# See license information for a specific package
apt show curl | grep -i license

# List all installed packages and their sizes
dpkg-query -W -f='${Installed-Size}\t${Package}\n' | sort -n | tail -20

The shell you type into (bash), the tools you use (grep, curl, git), the compiler that built your programs (gcc), the web server serving your site (nginx or Apache), the database behind your application (PostgreSQL or MySQL), and the container runtime running your workloads (containerd) are all open source.

This is not an accident. Open source software tends to win in infrastructure because infrastructure is shared. No single company benefits from keeping a web server protocol or a container runtime proprietary. Standardising on open implementations and improving them collectively is more efficient.

What open source is not

Open source is not the same as unowned. Projects have maintainers and often corporate backers. Linus Torvalds controls what goes into the Linux kernel. The Linux Foundation manages the trademark. Open source does not mean anyone can do anything without consequence.

Open source is not always secure by default. The idea that “many eyes make all bugs shallow” is partially true. Major open source projects are audited extensively. But smaller projects with few active maintainers can carry vulnerabilities for years. The Log4Shell vulnerability in 2021 was in a widely used Java logging library that was maintained by a small volunteer team. Open source enables auditing; it does not guarantee it happens.

Open source is not the same as open development. A company can release source code under an open source license while still making all development decisions internally and accepting no external contributions. This satisfies the legal definition of open source but misses much of the collaborative benefit.

Open source is not always free of cost forever. Several notable projects have changed licenses in recent years. HashiCorp moved Terraform from MPL to the Business Source License in 2023. Redis changed its license in 2024. Open source licenses can be changed by the copyright holder for future versions, though existing versions remain under the original license.

Checking licenses in practice

If you are using open source software in a commercial product, the license matters. A few ways to check:

# Most projects include a LICENSE file at the root
cat LICENSE

# Or COPYING for GPL projects
cat COPYING

# Check the SPDX identifier (common in package metadata)
cat package.json | grep license   # Node.js projects
grep -i license pyproject.toml    # Python projects
grep -i license Cargo.toml        # Rust projects

The SPDX identifier is a standardised short form: MIT, GPL-2.0-only, Apache-2.0, LGPL-2.1-or-later. If you are building something commercial, a lawyer familiar with software licensing is worth consulting before shipping a product that incorporates copyleft-licensed code.

The short version

Open source software gives you the source code and, through its license, the legal right to use, study, modify, and share it. Copyleft licenses like the GPL require that modifications stay open. Permissive licenses like MIT and Apache allow proprietary use. The Linux kernel, most web infrastructure, and a large proportion of developer tooling are open source. Companies build on it, contribute to it, and in many cases build their business model around it. Understanding open source is increasingly a prerequisite for understanding how software gets made.

Frequently Asked Questions

What is open source software?

Open source software is software whose source code is made publicly available under a license that allows anyone to read, modify, and distribute it. The term covers a wide range of projects, from the Linux kernel to web browsers, programming languages, and databases. The opposite is proprietary software, where the source code is kept private and users receive only the compiled binary.

Is open source software free?

Open source software is free in two senses: free to use at no cost, and free as in freedom to inspect, modify, and redistribute. Most open source software costs nothing to download and use. However, companies can sell open source software or charge for support, hosted versions, or enterprise features built on top of an open source core.

What is the difference between open source and free software?

The terms overlap but come from different movements. Free software, championed by Richard Stallman and the Free Software Foundation, emphasises user freedom as a matter of ethics. Open source, coined in 1998 by the Open Source Initiative, focuses on the practical benefits of publicly available code for software development. In practice, most software that qualifies as one also qualifies as the other. The main difference is philosophical framing.

What are the most common open source licenses?

The most common open source licenses are the GNU General Public License (GPL), the MIT License, and the Apache License 2.0. The GPL requires that any distributed modifications also be released under the GPL. MIT and Apache are more permissive: you can use the code in proprietary software as long as you include the license notice. The choice of license determines how others can use and build on the software.

What are examples of open source software?

Well-known open source projects include the Linux kernel, Firefox, Git, Python, PostgreSQL, WordPress, VLC, LibreOffice, and the Android operating system (which uses the Linux kernel). Much of the infrastructure running the internet, including web servers like nginx and Apache, is open source.