What Open Source Is
You have been working inside this world all course without a name for it. The kernel idea M1 taught is what Linux is: a real kernel whose source anyone on earth can read. The Rust toolchain that builds the code you read in M2 is the same way. So is thunk, the program teaching you right now. And M5 told the story of 1997, when id Software published DOOM's engine source and strangers ported it to everything with a screen. All of these are open source. This module is about what that means.
The definition
A program is open source when two things are true.
First, its source code is public. The human-readable text the program is built from is there for anyone to read, the way M4 laid the panel's command language open to you.
Second, it carries a license that grants everyone four permissions: use the program for any purpose, study how it works, change it, and share it, changed or not. The license is a real legal document, and the next lesson reads three of the common ones. For now the point is that open source is a matter of permission, not just visibility. Code you can see but may not touch is not open source.
Free as in freedom
The older name for this idea is free software, and the word trips people up. "Free" here does not mean free of charge, though much of it costs nothing. It means freedom: the four permissions above, granted to everyone, in writing. You could sell an open source program tomorrow, and people do. What you cannot do is take the freedoms away from whoever you sell it to.
Not charity, not amateur hour
It would be easy to picture open source as hobbyists giving code away, a sideshow to the real industry. The picture is wrong in both directions.
Much of the world's infrastructure runs on open source. Most of the servers behind the internet run Linux. The tools that build software are open source too: compilers, version control, whole toolchains like Rust's. When you load a web page, open source code handles it at nearly every layer of the stack you traced in M5.
And much of the work is done by paid engineers working in the open. Companies whose products stand on Linux or Rust pay people full time to improve them, and those improvements are public like everyone else's. Some contributors are volunteers, some are salaried, and in the code itself you cannot tell which. It is a working part of the software economy, not a charity ward.
So the objects in this world are ordinary: programs, source code, and the people who change them. A shared program with its source in the open is called a project, and Linux, Rust, and thunk are all projects in this sense. What holds a project together, legally, is that license the definition leaned on. That is where the next lesson starts.
Key terms
- open source — software whose source code is public and licensed so anyone may use, study, change, and share it.
- source code — the human-readable text a program is built from.
- free software — the older name for the same idea; "free" means freedom, not price.
- infrastructure — the shared machinery, much of it open source, that everything else runs on.
- project — a shared program, its source, and the people who work on it.