What Is Open Source?

Open source software is code that's publicly available for anyone to view, use, modify, and distribute. The source code (human-readable instructions) isn't hidden, it's open for inspection.

This contrasts with closed source (proprietary) software like Microsoft Windows, where only the company sees the code. You use the compiled program but can't see how it works.

Key Takeaway: Open source means transparency. You can see exactly what the software does, audit it for security, and modify it for your needs.

History: GNU and Linux

In the 1980s, Richard Stallman believed all software should be free. He created GNU (a Unix-like operating system) and established the Free Software Foundation. In 1991, Linus Torvalds created Linux, a free operating system kernel.

Linux + GNU tools = a fully functional free operating system. This was revolutionary. You could build and run a complete system without paying a company.

Today, Linux runs most of the internet: servers, Android phones, AWS infrastructure, and supercomputers. It's the most successful open source project ever.

"Free software is a matter of liberty, not price.". Richard Stallman, GNU Founder

How Open Source Works

Code Repositories

Open source code lives in repositories (usually GitHub). Anyone can view the code, download it, and contribute improvements.

Contributions and Pull Requests

If you fix a bug or add a feature, you submit a "pull request": essentially saying "I improved the code; please review my changes." Project maintainers review and decide whether to accept your changes.

Community-Driven Development

Unlike corporate software (where one company decides everything), open source is developed by communities. Thousands of volunteers contribute based on what they need.

Transparent Issues

Bugs, feature requests, and discussions are public. You see exactly what's being worked on and can contribute solutions.

Merit-Based Contributions

Your code matters based on quality, not seniority. A teenager with good code has more influence than a manager with bad code.

Open Source Licenses Simply

Open source code has licenses that define what you can do with it. Main types:

Permissive Licenses (MIT, Apache, BSD)

MIT License: Super permissive. You can use code however you want, including in closed source products. No obligations.

Apache 2.0: Similar to MIT but includes explicit patent protection.

Best for: Libraries, tools you want many people to use. Companies prefer these because of minimal obligations.

Copyleft Licenses (GPL, AGPL)

GPL (General Public License): If you use GPL code, your derivative work must also be open source and GPL. Your improvements must be shared with the community.

AGPL (GNU Affero General Public License): Stricter than GPL: even if you don't distribute software, if you run it over a network, you must share the source.

Best for: Projects where you want to ensure improvements stay free. Companies avoid GPL for commercial products.

Other Licenses

Creative Commons: Not really software but similar concept. Used for media, documentation.

Public Domain: No restrictions at all. Do anything.

Key Takeaway: Check the license before using open source. MIT = maximum freedom. GPL = must share improvements. Different projects have different obligations.

Famous Open Source Projects

Linux

Operating system kernel. Powers 99% of servers, most phones (Android), and supercomputers. Maintained by thousands of developers. Sponsored by major companies (Google, Microsoft, Intel).

Apache Web Server

Powers ~40% of websites. The original open source killer app that proved OSS could handle production workloads.

Python

Programming language used in data science, web development, and AI. Free, powerful, with a massive community.

WordPress

Runs ~40% of websites. A blogging platform you can host yourself and customize completely.

Kubernetes

Open source container orchestration. Google open-sourced it, and it became industry standard for managing cloud applications.

Firefox

Open source web browser. Competes with Chrome despite being built by volunteers and a non-profit (Mozilla).

TensorFlow and PyTorch

Open source machine learning libraries. Google and Meta respectively released them. Now used by millions.

Open Source AI Models

AI has traditionally been closed (OpenAI, Google, Anthropic). Recently, open source AI is gaining ground.

Llama (Meta)

Meta released Llama language models (2B, 7B, 13B, 70B parameters). Powerful enough for production but not as big as GPT-4. Allows modifications and fine-tuning.

Mistral and Mixtral

Smaller, efficient open source LLMs. Focused on running on consumer hardware.

Stable Diffusion

Open source image generation model. You can run it locally on your GPU, unlike proprietary DALL-E or Midjourney.

Whisper

OpenAI's open source speech recognition. Competitive with closed source alternatives.

Trade-offs

Open source AI models are smaller and less capable than closed source giants. But they're cheaper to run, can be customized, and don't require cloud APIs.

Business Models for Open Source

Professional Support and Services

Red Hat provides enterprise Linux support (paying millions for updates, training, 24/7 help). Canonical does the same for Ubuntu.

Hosted Services

Provide open source software as a service in the cloud. You can self-host WordPress, but Automattic makes money offering hosted WordPress.

Premium Features

Core software is free, but advanced features or versions are paid. This is called freemium.

Donations and Sponsorship

Some projects rely on donations (Wikipedia, Linux Foundation) or corporate sponsorship.

Dual Licensing

Offer software under open source license and commercial license. Companies can use for free under GPL but pay for closed source rights.

Selling Derivative Products

Companies build proprietary software on top of open source. This works if the base is permissive (MIT), not copyleft (GPL).

Key Takeaway: Open source doesn't mean developers work for free. They're usually paid by companies, donations, or services they built around the software.

How to Contribute to Open Source

Find a Project

Start with something you use: your favorite tool, library, or framework. Find its GitHub repository.

Read the Contribution Guide

Most projects have CONTRIBUTING.md with guidelines. Follow them.

Start Small

Fix typos, improve documentation, solve simple bugs. Building credibility matters.

Communicate First

Check if someone's already working on it. Comment on the issue saying you want to help. Avoid duplicating effort.

Make a Pull Request

Branch the code, make your changes, and submit a pull request. Be clear about what you changed and why.

Be Patient

Maintainers are volunteers (often). Your PR might take time to review. Don't take feedback personally, the goal is good code.

Non-Code Contributions

Projects need writers, designers, translators, and testers. You don't need to code.

Resources to Start

  • GitHub's "good first issue" tag filters easy tasks for newcomers
  • Hacktoberfest encourages contributions with incentives
  • First Timers Only lists projects welcoming first-time contributors

Further reading: Explore APIs which many open source projects provide, and learn about cloud computing where open source thrives.