Table of Contents
Why GNU Matters for Linux
Linux, as you usually meet it on a real system, is not just the Linux kernel. It’s the kernel plus a huge collection of user-space tools: compilers, text editors, shells, utilities, libraries, and more.
Most of those tools come from the GNU project. That’s why many people say the system is really “GNU/Linux.”
This chapter focuses on:
- What GNU is
- What the Free Software Foundation (FSF) is
- What “free software” means (in this context)
- Copyleft and the GNU General Public License (GPL)
- How all of this relates specifically to Linux systems
The GNU Project
Origins and Goals
The GNU Project was announced by Richard Stallman in 1983. The main idea:
- Create a complete, Unix-like operating system
- Make it entirely composed of free software
- Allow users to run, study, modify, and share all of it
“GNU” is a recursive acronym:
- GNU’s
- Not
- Unix
It was designed to be compatible with Unix in behavior and features, but not derived from Unix code.
GNU as a System
Before Linux existed, GNU was building all parts of a full OS except the kernel:
- Core utilities:
ls,cp,mv,rm,cat,head,tail,grep,find, etc. - Shell:
bash(Bourne Again SHell) - Compilation tools:
gcc(GNU Compiler Collection),make,binutils(ld,as, etc.) - Libraries:
glibc(GNU C Library), used by most programs on traditional GNU/Linux systems - Text utilities and editors:
sed,awk(not originally GNU but widely used alongside),ed,nano-like editors, and GNU Emacs (powerful editor/environment) - Other tools: debuggers (
gdb), documentation systems (info), linker and archiver tools, etc.
By the early 1990s, GNU had almost everything needed for a working system — except a usable kernel.
The Free Software Foundation (FSF)
What the FSF Is
The Free Software Foundation (FSF) is a nonprofit organization founded in 1985 by Richard Stallman to:
- Support the GNU project
- Promote the free software philosophy
- Develop and maintain legal and practical tools for free software (like licenses)
It’s based in the US but works with people and organizations worldwide.
What the FSF Does
Key roles of the FSF:
- Maintaining licenses: especially the GNU General Public License (GPL) and related licenses
- Legal defense and advocacy: helping enforce free software licenses, ensuring that companies and others follow their terms
- Campaigns: promoting user freedoms, opposing restrictions like DRM, and encouraging use of free software in education, government, etc.
- Project support: providing infrastructure and resources for GNU and other free software projects
What “Free Software” Means
“Free” as in Freedom, Not Price
In the GNU/FSF context, “free” refers to freedom, not cost. A program can be sold, and still be “free software” if the user has certain essential freedoms.
The FSF defines four essential freedoms for users of software:
- Freedom 0: The freedom to run the program, for any purpose.
- Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
- This requires access to the source code.
- 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.
- This also requires access to the source code.
If users have these four freedoms, the software is considered “free software” by the FSF.
Free Software vs Open Source (Briefly)
The FSF emphasizes user rights and ethics. The term “free software” is mainly about freedom.
There is another term, “open source”, promoted by other groups, which focuses more on development models and practical benefits. The philosophical emphasis is different. (The course’s “Open source philosophy” chapter covers this more fully.)
In practice, most software in Linux distributions qualifies as both “free software” and “open source,” but the motivations and language differ.
Copyleft and the GNU GPL
Copyleft: Keeping Freedom Through Licensing
Copyleft is a licensing approach created and promoted by the FSF. Basic idea:
- You grant users the four freedoms.
- You require that any distributed modified versions must also grant those same freedoms to their users.
So instead of “all rights reserved,” it’s “some rights reserved — but you must pass those rights on.”
This guarantees that a program and its derivatives remain free (in the FSF sense) over time.
The GNU General Public License (GPL)
The GNU General Public License (GPL) is the main copyleft license used for many GNU programs and for the Linux kernel itself (GPLv2).
Key characteristics:
- Source code must be provided or made available when you distribute binaries.
- Derived works must also be licensed under the GPL if they are based on GPL code and distributed.
- No additional restrictions: You cannot add extra limits that would take away the freedoms the GPL guarantees.
There are several versions of the GPL:
- GPLv2: used by the Linux kernel
- GPLv3: adds clauses dealing with newer issues like “tivoization” and some patent concerns
There are also related FSF licenses:
- LGPL (Lesser GPL): weaker copyleft, often used for libraries
- AGPL (Affero GPL): covers software offered over a network (e.g., web applications)
How GNU and the FSF Connect to Linux
GNU + Linux = GNU/Linux
When Linus Torvalds released the Linux kernel in 1991, it was “just” a kernel — it needed user-space utilities, libraries, compilers, and tools to become a complete operating system that you could actually use.
The GNU project already had:
- Shells (
bash) - Basic utilities (
coreutils,findutils,grep,sed, etc.) - Compilers (
gcc) - Library (
glibc) - Debugger (
gdb) - And more
Combining the Linux kernel with the GNU tools produced a fully working system. This is what people install and use today as “Linux distributions.”
Because so much of the system comes from GNU, the FSF and many others call the system “GNU/Linux” to recognize the role of GNU and the free software movement.
FSF Influence on Typical Linux Systems
On a common GNU/Linux system, you are often directly using GNU components, including:
bashas your default shellls,cp,mv,rm,cat,mkdir, and many other basic commands from GNU Coreutilsgrep,sed,awk(often the GNU versions) for text processinggcc,make,gdbif you compile or debug programsglibcas the main C library (on many distributions)
All of these are released under FSF-backed free software licenses, especially the GPL or LGPL.
“Free as in Freedom” in Real Use
Because so much of the stack is GNU and GPL-licensed, typical GNU/Linux systems grant you these freedoms:
- You can inspect the system’s source code (the kernel, most utilities, etc.).
- You can modify and rebuild components to fit your needs.
- You can share copies of the system (subject to the license terms).
- Distributions are required, when they distribute GPL software, to make source code available.
Not every piece of software in every distribution follows this (many include proprietary drivers or firmware), but the core system ideas come from GNU and the FSF’s free software philosophy.
Why Beginners Should Care
You can use Linux effectively without knowing this history, but understanding GNU and the FSF helps you see:
- Why Linux is widely available and often free of cost: the licensing encourages sharing.
- Why you have more control over your system than on typical proprietary OSes.
- Why some communities are strict about license choices or about using non-free drivers/firmware: they are following the FSF’s focus on user freedoms.
Later chapters in this course will show you many tools (like bash, gcc, and coreutils) that exist because of the GNU project and are licensed under terms created and promoted by the FSF.