What is Open Source Software?

You will understand what source code is and why the open source model matters.

Knowledge of Computers › Concept of Open Source Technologies · 18 min read

Every time you tap an app on your phone, type a document on your laptop, or browse a website, you are interacting with software. To most of us, software feels like magic—a seamless interface of buttons, colors, and instant reactions. But behind that polished screen lies a complex set of instructions written by human beings.

To truly understand how the modern digital world operates, and to master the concept of Open Source Technologies, we have to pull back the curtain and look at the raw materials used to build software. We need to understand what "source code" is, how computers read it, and why a global movement decided that this code should be shared freely with the world.

This chapter will build your understanding from the absolute ground up. We will start with the mechanics of how software is written, explore the philosophy of the open-source movement, and understand why sharing code has revolutionized technology.

The Recipe of Software: What is Source Code?

Before we can talk about "open source," we must first understand what a "source" is.

Imagine you go to a famous bakery and buy a delicious chocolate cake. You can eat the cake, enjoy it, and share it with your friends. But if you want to go home and bake that exact same cake yourself, you can't. You don't know how much flour was used, what kind of cocoa powder was added, or how long it was baked. To bake the cake yourself, or to add a handful of walnuts to improve it, you need the recipe.

In the world of computers, the software you use (like a web browser or a calculator app) is the finished cake. The source code is the recipe.

When a programmer sits down to create an application, they don't type in 1s and 0s. They type out logical, step-by-step instructions using programming languages like Python, Java, C++, or JavaScript. These languages use English words, mathematical symbols, and strict grammar rules.

For example, a simple line of source code might look like this: `if (user_password == correct_password) { login_success(); }`

Even if you aren't a programmer, you can probably guess what that line does. It checks if the password entered by the user matches the correct password, and if it does, it logs them in. This readability is the defining feature of source code.

The Language Barrier: Human-Readable vs. Machine Code

Here is the catch: your computer's brain—the Central Processing Unit (CPU)—does not understand English. It does not understand Python, Java, or C++. The CPU is a piece of hardware made of billions of microscopic electronic switches. A switch can only be in one of two states: ON or OFF.

Therefore, the only language a computer natively understands is Machine Code, which is a massive sequence of 1s (ON) and 0s (OFF).

This creates a language barrier. Programmers need to write in a language they can understand (Source Code), but the computer needs instructions in a language it can execute (Machine Code).

Bridging the Gap: Compilers and Interpreters

To solve this problem, computer scientists created special translator programs called compilers and interpreters. Their entire job is to take the human-readable source code and translate it into the machine code that the computer's hardware can actually run.

The Translation Process

  1. 1The programmer writes human-readable Source Code (e.g., in C++).
  2. 2The Source Code is fed into a translator program called a Compiler.
  3. 3The Compiler translates the human logic into binary 1s and 0s.
  4. 4The output is Machine Code (an executable file, like a .exe on Windows).
  5. 5The user runs the executable file, and the CPU processes the Machine Code.

When you download a standard, everyday application from the internet, you are almost always downloading the Machine Code (the executable file). The original company keeps the Source Code locked away on their own private servers.

Why? Because if they give you the machine code, you can use the software. But if they give you the source code, you can see exactly how they built it, copy their ideas, change the software, or give it away to others. Keeping the source code a secret is how traditional software companies protect their business.

The Birth of Open Source Software (OSS)

Now that we know what source code is, the concept of Open Source Software (OSS) becomes very easy to understand.

Open Source Software is simply software where the creator has decided to publish the "recipe" for the whole world to see. Instead of hiding the source code, they make it publicly available.

But Open Source is not just about looking at the code. It is a specific licensing model that grants users three fundamental rights:

  1. 1The right to VIEW the code: Anyone can open the files and read the exact instructions the programmers wrote. This means there are no hidden secrets, no hidden tracking software, and no mysteries about how the app works.
  2. 2The right to MODIFY the code: If you find a bug (an error) in the software, you don't have to wait for the original creator to fix it. You can fix it yourself. If you want the software to have a new feature, you can write the code and add it.
  3. 3The right to DISTRIBUTE the code: You are legally allowed to share the original software, or your newly modified version of it, with anyone else.

Imagine if the famous bakery not only published their chocolate cake recipe in the newspaper but also explicitly told the public: "You can bake this, you can change the ingredients, and you can even start your own bakery selling your modified version of our cake." That is the essence of the open-source model.

The FOSS Movement: Free and Open Source Software

When you study open-source technologies, you will inevitably encounter the acronym FOSS. This stands for Free and Open Source Software.

To understand FOSS, we have to take a brief trip back to the early 1980s. In the very early days of computing (the 1960s and 70s), sharing source code was normal. Scientists and researchers at universities freely shared their code to help each other solve problems. But by the 1980s, software became a massive commercial industry. Companies started locking away their source code and forcing people to sign non-disclosure agreements.

A programmer at the Massachusetts Institute of Technology (MIT) named Richard Stallman became deeply frustrated by this. The story goes that his lab got a new printer that kept jamming. Stallman wanted to fix the printer's software to send an alert when it jammed, but he couldn't—the manufacturer had hidden the source code.

Stallman believed that hiding source code was not just inconvenient; he believed it was unethical. He argued that users should have control over their own computers, and they can't have control if they aren't allowed to see or change the software running on them.

In 1985, Stallman founded the Free Software Foundation (FSF) to promote the creation of software that respects users' freedom.

The Ambiguity of the Word "Free"

The biggest hurdle the movement faced was the English language itself. In English, the word "free" has two completely different meanings:

  1. 1Free of cost (like a free sample at a grocery store).
  2. 2Freedom or liberty (like free speech).

When Stallman talked about "Free Software," people assumed he meant software that you didn't have to pay for. But that wasn't his point at all.

To make this crystal clear, the Free Software Foundation defined "Free Software" as any software that guarantees the user Four Essential Freedoms:

  • Freedom 0: The freedom to run the program as you wish, for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it so it does your computing as you wish (access to the source code is a precondition for this).
  • Freedom 2: The freedom to redistribute copies so you can help others.
  • Freedom 3: The freedom to distribute copies of your modified versions to others.

Why "Open Source"?

By the late 1990s, the term "Free Software" was still confusing businesses. Corporate executives heard "free" and thought it meant "anti-commercial" or "no profit."

To make the concept more appealing to the business world, a group of technology leaders (including Eric S. Raymond) coined a new term in 1998: Open Source.

"Open Source" focused on the practical, technical benefits of sharing code (like faster development and better security), rather than the moral philosophy of "freedom."

Today, the terms are often combined into FOSS (Free and Open Source Software) to encompass both the philosophical freedom and the practical open-source methodology. You might also see FLOSS (Free/Libre and Open Source Software), where the word Libre (a Latin-based word meaning liberty) is added to completely remove the "free of cost" confusion.

Common Exam Traps: What Open Source is NOT

To truly master a concept, you must know its boundaries. Students frequently confuse Open Source with other types of software distribution. Let's clear them up.

1. Open Source vs. Freeware

This is the most common point of confusion.

  • Freeware is software that is given away for free (zero cost). Examples include Adobe Acrobat Reader or a free mobile game. However, the source code is hidden. You cannot modify it, and you cannot see how it works.
  • Open Source is about the source code being open. It might be free of cost, or it might be sold, but the code is always visible and modifiable.
  • Summary: Freeware is about price. Open Source is about permission and transparency.

2. Open Source vs. Public Domain

  • Public Domain software has absolutely no ownership or copyright attached to it. Anyone can do literally anything with it, including taking it, modifying it, and then locking it up as closed-source software.
  • Open Source software is still copyrighted. The creators use special legal licenses (like the GNU General Public License, or GPL) to grant you freedoms. Many open-source licenses have a strict rule: If you modify this code and share it, you MUST share your new version as open source too. You cannot take open-source code and make it closed.

Why Does the Open Source Model Matter?

You might be wondering: If a company spends millions of dollars paying programmers to write source code, why on earth would they give it away for free?

The open-source model has completely taken over the modern internet because sharing code provides massive, practical advantages that closed, secretive development simply cannot match.

1. Rapid Innovation (Standing on the Shoulders of Giants)

Imagine if every car manufacturer had to invent the wheel from scratch before they could build a car. Progress would be incredibly slow. In the closed-source world, every company has to write their own basic code from scratch. In the open-source world, developers share their foundational code. If someone builds a great open-source tool for processing payments, a thousand other developers can just download that tool and plug it into their own apps. This allows developers to focus on building new, innovative features rather than reinventing the basics.

2. Security and Reliability (Linus's Law)

There is a famous saying in the open-source community known as Linus's Law (named after Linus Torvalds, the creator of the open-source operating system Linux):

"Given enough eyeballs, all bugs are shallow."

If a piece of software is closed-source, only the 50 or 100 programmers hired by the company can look for security flaws. If they miss a flaw, hackers can exploit it. If a piece of software is open-source, thousands of independent programmers, security researchers, and students around the world can read the code. They spot errors, fix bugs, and patch security holes much faster than a single company ever could. Transparency breeds security.

3. Avoiding Vendor Lock-in

If a business runs its entire operation on closed-source software, they are entirely at the mercy of the company that made it. If that company decides to double the price, or goes bankrupt and stops updating the software, the business is trapped. With open-source software, the code is public. If the original creator abandons the project, the community of users can simply take the source code and continue updating it themselves. You are never locked into a single vendor.

4. Community and Collaboration

Open source is not just a type of software; it is a global community. Programmers from rival companies, different countries, and diverse backgrounds collaborate on the same projects. A developer in India, a student in Germany, and a corporate engineer in the USA might all contribute code to the same open-source web server. This global collaboration has built the infrastructure of the modern internet.

Quick Revision

Before you close this chapter, make sure you can recall these high-yield points:

  • Source Code: The human-readable instructions written by programmers (the "recipe").
  • Machine Code: The binary 1s and 0s that the computer's CPU actually understands and executes.
  • Compilers/Interpreters: Translator programs that convert human-readable source code into machine code.
  • Open Source Software (OSS): Software where the source code is publicly available, allowing anyone to view, modify, and distribute it.
  • FOSS: Stands for Free and Open Source Software.
  • The Meaning of "Free": In FOSS, "Free" means liberty (free speech), not price (free beer). It refers to the user's freedom to control the software.
  • Freeware vs. OSS: Freeware is free of cost but hides its source code. OSS shares its source code (and may or may not cost money).
  • Linus's Law: "Given enough eyeballs, all bugs are shallow." Open source is often more secure because thousands of independent developers can inspect the code for errors.
  • The Four Freedoms: Defined by Richard Stallman's Free Software Foundation: the freedom to run, study, redistribute, and improve the software.

Related notes