
Quick answer
Richard Stallman did not create the Linux kernel; Linus Torvalds did. Stallman’s contribution came earlier and around it. He launched the GNU Project, was the principal or initial author of GNU Emacs, the original GNU C Compiler that became GCC, and GDB, founded the Free Software Foundation, and wrote the first versions of the GNU General Public License. The wider GNU Project built many of the tools and libraries needed around a Unix-like kernel.
The connection is visible in Linux’s own 1991 records. Before Linux 0.01 was released, Torvalds reported that Bash 1.08 and GCC 1.40 were already working with his kernel. Linux 0.01’s release notes also say the kernel had to be compiled with GCC 1.40. Linux later moved to GNU copyleft terms, and the modern kernel remains licensed under GPLv2.
So the accurate answer is not “Stallman created Linux.” It is that Stallman and GNU built major parts of the free software environment that Linux entered, while Torvalds created the kernel that filled GNU’s largest remaining gap.
For the broader Unix → GNU → MINIX → Linux → distributions timeline, see our complete History of Linux.
When to use this explanation
Use this guide if you want to understand:
- what Richard Stallman actually contributed to Linux;
- whether Stallman created Linux;
- what GNU contributed to early Linux systems;
- why GCC and Bash matter to the 1991 Linux story;
- what Torvalds himself created;
- why Stallman prefers the name GNU/Linux;
- whether Linux can exist without GNU.
This is not a complete Stallman biography or a second history of Linux. It is a technical attribution explainer: who built what, when the projects met, and what the primary records show.
Before you start
Three distinctions prevent most confusion.
- Linux is technically a kernel. Kernel.org explicitly says the kernel is only one component of a working Linux system.
- GNU is an operating-system project. It began years before Linux and produced compilers, shells, libraries, utilities and other software.
- Richard Stallman is not the sole author of GNU. He founded the project and personally wrote or initiated several foundational components, but GNU became a large collaborative effort.
Think of the relationship like this:
Richard Stallman
↓
founder + programmer + licensing work
GNU Project
↓
large collaborative Unix-like software project
Linux
↓
kernel created by Linus Torvalds
and later developed by a large community

Who is Richard Stallman?
Richard Stallman joined the MIT Artificial Intelligence Laboratory in 1971 and became part of a programming culture where source code was routinely studied, modified and shared.
The famous Xerox printer story illustrates what changed. Stallman later described how MIT received a newer printer whose control software was available only as a binary. The lab’s programmers could no longer add features they had implemented for an earlier printer because they did not have the source code. In a 1986 lecture, Stallman described the frustration of being technically capable of fixing software but not permitted to do so.
That printer episode was important, but it should not be treated as the sole cause of GNU. Stallman’s broader historical account emphasizes the collapse of the MIT software-sharing community, the spread of proprietary restrictions and nondisclosure agreements, and the breakup of the Lisp-machine hacker culture.
His response was to build something far larger than a replacement program: a complete free Unix-compatible operating system.
On 27 September 1983, Stallman announced the GNU Project. Development began in January 1984. GNU means “GNU’s Not Unix”—compatible with Unix in interfaces and usage, but written as a separate free software system.
Did Richard Stallman create Linux?
No. Linus Torvalds created the Linux kernel.
In 1991, while studying at the University of Helsinki, Torvalds began writing a Unix-like kernel for his 386 PC. Kernel.org describes Linux as having been written from scratch by Torvalds with assistance from a growing network of contributors.
The confusion comes from the word Linux being used in two ways:
Linux, technically = the kernel
Linux, in everyday speech = a complete distribution
such as Debian, Ubuntu, Fedora, Arch or Mint
A distribution contains much more than a kernel: libraries, shells, system utilities, package management, services, applications and software from many independent projects.
So “Torvalds created Linux” is fully accurate when Linux means the kernel. It becomes incomplete only when it is used to imply that he personally created the entire operating-system environment around it.
What did Richard Stallman personally create?
GNU’s official contributor history identifies Stallman as the founder of the GNU Project and the principal or initial author of:
- GNU Emacs
- the original GNU C Compiler, which became the GNU Compiler Collection (GCC)
- the GNU Debugger (GDB)
- parts of other GNU packages
He also founded the Free Software Foundation (FSF) in October 1985.
These are concrete engineering contributions, not merely philosophy.
GNU Emacs
GNU Emacs became one of GNU’s first major programs and a powerful development environment. It helped demonstrate that GNU was producing real software long before the full operating system could boot on its intended kernel.
GCC
GCC creates the clearest direct link to early Linux.
A C compiler translates source code into machine code. Linux was written largely in C plus architecture-specific assembly, so a working compiler toolchain was essential to build it.
By 1991, GNU’s compiler already existed—and Torvalds used it.
GDB
GDB provided a free source-level debugger for inspecting running programs, memory, variables and control flow. It was another part of the development infrastructure GNU was building independently of any future Linux kernel.
Copyleft and the GNU GPL
Stallman’s contribution also included licensing.
He developed the copyleft approach and wrote the first GNU GPL in 1989. GPL version 2 followed in 1991. The modern Linux kernel documentation states that the kernel as a whole is provided under GNU GPL version 2 only, with documented exceptions where applicable.
Licensing is not kernel code, but it became a major part of Linux’s development and redistribution model.
What did the GNU Project contribute?
Stallman did not personally write every GNU program. GNU became a collaborative project with volunteers and paid contributors.
Across the project, GNU developed or maintained major Unix-like components including:
| GNU component | Main role |
|---|---|
| GCC | Compiler toolchain |
| GNU Binutils | Assembler, linker and binary tools |
| Bash | Command shell |
| GNU C Library (glibc) | Standard C library used by many GNU/Linux systems |
| GNU Make | Build automation |
| GDB | Debugging |
| Coreutils and predecessor utility sets | Basic command-line utilities |
| grep, sed, gawk | Text processing |
| GNU Emacs | Editing and development |
This does not mean everything in a Linux distribution is GNU. Modern distributions combine software from GNU, the Linux kernel project and many other independent projects.
The historically important point is narrower:
When Linux appeared, GNU had already built a substantial free Unix-like development and user-space environment that could be adapted to a new kernel.
What did Linus Torvalds actually create?
Torvalds created the part GNU had struggled to finish: a practical kernel that ran on 386-class PC hardware and evolved rapidly.
The Linux kernel handled low-level responsibilities such as:
- process creation and CPU scheduling;
- memory management;
- system calls;
- interrupts;
- filesystems;
- disk and device access;
- terminal handling;
- the boundary between user programs and hardware.
The first preserved source release, Linux 0.01, is dated 17 September 1991. Its tree already contained recognizable areas including:
boot/
fs/
include/
init/
kernel/
lib/
mm/
tools/
Linux was not GNU Hurd and was not copied Unix source. It was an independent kernel project.
That distinction also prevents the opposite exaggeration: saying Linux was “only a tiny missing piece” understates how difficult and central a kernel is.
What was missing from GNU before Linux?
GNU had always planned to include a kernel. The original 1983 announcement explicitly listed one alongside a shell, editor, compiler, linker and assembler.
By around 1990, GNU’s own history describes the system as almost complete, with the kernel as the major missing component. GNU planned the Hurd, a collection of servers running on top of the Mach microkernel.
The architecture was ambitious, but development took much longer than expected. GNU’s historical account says the multithreaded servers communicating through messages proved difficult to debug and that making Hurd robust stretched over many years.
GNU did not begin Hurd because it rejected Linux: Linux did not yet exist. Stallman later explained that when Hurd work began, the problem was simply how to obtain a free kernel at all.
So entering 1991, the rough picture was:
GNU
compiler ✅
debugger ✅
editor ✅
many utilities ✅
libraries/tools ✅
shell environment ✅
kernel ⏳ not ready for broad practical use
Then Torvalds’ kernel appeared.

The evidence: GNU software was already part of Linux’s story in 1991
This is the most important section because it replaces vague claims with contemporary evidence.
25 August 1991: Torvalds names GNU directly
In the famous comp.os.minix announcement, Torvalds described his project as a hobby that would not be “big and professional like GNU.”
More importantly, he reported:
Bash 1.08 → ported
GCC 1.40 → ported
That proves two things: Torvalds knew about GNU before Linux 0.01, and GNU software was already being used to test whether Linux could support a practical Unix-like environment.
17 September 1991: Linux 0.01 requires GCC
The preserved Linux 0.01 release notes list:
linux-0.01.tar.Z
bash.Z
update.Z
RELNOTES-0.01
They also state that the kernel must be compiled with GCC and that Torvalds used GCC 1.40.
The technical relationship was therefore already concrete:
Linux source code
↓
GNU GCC 1.40
↓
compiled Linux kernel
And for interactive use:
Linux kernel
↓
user space
↓
GNU Bash
This is stronger than saying GNU merely “influenced” Linux. We can identify the actual GNU software involved at Linux’s birth.

Why GCC and Bash mattered
GCC: Linux’s build tool
GCC was not just an application running on Linux. Linux 0.01’s own notes required it to compile the kernel.
Torvalds even warned that an older GCC might not understand all the inline __asm__ directives in the source.
That gives us a direct chain:
Stallman begins GNU compiler work
↓
GNU C Compiler matures
↓
Torvalds uses GCC 1.40
↓
Linux 0.01 is compiled
Torvalds wrote the kernel; GCC was the free toolchain used to transform that source into executable machine code.
Bash: a usable command environment
A kernel manages CPU, memory and devices, but it does not provide a friendly command interface.
Bash does.
Torvalds’ report that Bash 1.08 already worked was significant because it showed Linux could execute a substantial Unix-style user-space program.
Linux kernel → system services
GNU Bash → command shell
They were separate components cooperating through Unix-style interfaces.

What did the GPL contribute to Linux?
GNU’s code and GNU’s license are two different contributions.
Early Linux did not initially use the modern kernel’s GPL terms. In the Linux 0.12 announcement dated 15 January 1992, Torvalds said he had decided to change the copyright rules to match the GNU copyleft, including removing the earlier restriction on distribution for money. The notes scheduled the GNU copyleft terms to take effect on 1 February, subject to contributor approval.
Today the kernel’s official licensing documentation is explicit: the Linux kernel as a whole is provided under GPL-2.0-only terms.
The GPL helped create a framework in which people and companies could obtain source, modify it and redistribute covered code under reciprocal terms. It did not create the Linux community by itself, and it does not automatically force every program running on Linux to become GPL software.
Still, this is a major Stallman contribution to Linux’s history that is real without claiming he wrote kernel code.

How GNU and Linux came together: 6 steps
1. Stallman launches GNU
GNU begins as a project to build a complete Unix-compatible system composed of freedom-respecting software.
2. GNU builds reusable components
Compilers, debugging tools, editors, shells, libraries and utilities appear years before GNU has a completed kernel.
3. GNU’s kernel work takes longer than expected
The Hurd/Mach architecture remains unfinished for mainstream practical use.
4. Torvalds writes an independent kernel
Linux begins in 1991 for 386 PCs. It is neither GNU Hurd nor Unix source code.
5. GNU software works with Linux almost immediately
Bash and GCC appear in Torvalds’ August 1991 announcement; GCC is used to compile Linux 0.01.
6. Distributions integrate the ecosystem
Linux, GNU software and many non-GNU programs are packaged into usable operating systems.
A simplified traditional stack looks like:
Applications
↓
desktop, services and command-line programs
↓
GNU tools + many non-GNU projects
↓
libraries and runtime components
↓
Linux kernel
↓
hardware

Is Linux the same as GNU/Linux?
No.
- Linux is the kernel.
- GNU is a separate operating-system project begun in the 1980s.
- GNU/Linux is GNU’s preferred term for systems combining substantial GNU software with the Linux kernel.
- A Linux distribution is a packaged system around the Linux kernel and normally includes software from many projects.
Context is the best guide.
Use Linux kernel when discussing kernel internals. Use Linux distribution when discussing Ubuntu, Debian, Fedora or similar complete systems. Use GNU/Linux when the GNU-plus-Linux composition or its history is specifically relevant.
Why does Stallman insist on the name GNU/Linux?
Stallman’s argument is about attribution.
GNU’s position is that calling the complete system simply “Linux” makes it sound as if the whole operating system began in 1991 with Torvalds, overlooking years of GNU development that supplied a large part of the surrounding environment.
The historical evidence behind that concern is strong:
- GNU was announced in 1983.
- GNU tools existed before Linux.
- Torvalds explicitly referenced GNU in August 1991.
- Bash and GCC were already working with early Linux.
- Linux 0.01 was compiled with GCC.
- Linux later adopted GNU copyleft terms.
But there is another technically valid perspective: Linux became the conventional umbrella term for distributions and the wider ecosystem, and real distributions contain huge amounts of software that is neither GNU nor Linux kernel code.
The best approach is therefore not ideological. Use the name that identifies the layer you actually mean.
Can Linux exist without GNU?
Yes.
This is essential for keeping the historical argument technically accurate.
Android
The Android Open Source Project states that Android kernels are based on upstream Linux LTS kernels combined with Android-specific changes. Android’s user space, however, is the Android platform—not a traditional GNU desktop/server environment.
So Android demonstrates:
Linux kernel
+
non-GNU user space
=
Linux-based operating system
Alpine Linux
Alpine’s documentation says the base system is built around musl libc and BusyBox. BusyBox replaces many commands commonly supplied by GNU Coreutils and related packages.
Alpine can still run individual GNU packages, but its base system proves that major GNU user-space components are not mandatory for every Linux distribution.
The reverse is also true: GNU is not inherently tied to Linux. GNU’s Hurd remains an alternative kernel architecture for GNU systems.
So the precise conclusion is:
GNU was historically crucial to the rapid formation of useful Linux-based systems, but GNU and Linux are not technically inseparable.

So how important was Stallman to Linux?
Two extreme claims should be avoided.
“Linux could never have existed without Stallman.”
That is an unprovable counterfactual.
“Stallman had nothing to do with Linux because Torvalds wrote the kernel.”
That ignores the documented technical and licensing connections.
A better conclusion is:
Stallman did not create Linux, but he created or initiated several pieces of the free software infrastructure that Linux immediately used, and he founded the GNU Project that supplied a major portion of the early Unix-like environment around the kernel.
His contribution falls into three layers:
Technical: GNU Emacs, GCC, GDB and the wider GNU development environment.
Organizational: GNU and the FSF created a sustained framework for developing and distributing free system software.
Legal and philosophical: copyleft and the GPL provided a model for preserving software freedoms when code is redistributed.
Richard Stallman vs GNU vs Linus Torvalds: who built what?
| Person or project | What it actually contributed | What it did not create |
|---|---|---|
| Richard Stallman | Founded GNU; principal or initial author of GNU Emacs, original GCC and GDB; founded FSF; authored early GNU GPL versions | Linux kernel; every GNU package |
| GNU Project | Large Unix-like environment including compilers, shell/tools, libraries, build/debug utilities and many other components | Linux kernel |
| Linus Torvalds | Created the Linux kernel and became its principal upstream integrator | GNU; Bash; GCC; the entire distribution user space |
| Linux contributors | Expanded drivers, filesystems, networking, architecture support and other kernel subsystems | The complete software ecosystem |
| Distribution projects | Integrated kernel + GNU + non-GNU software into installable systems | The original Linux kernel or GNU Project |
Focused timeline: GNU and Linux converge
| Year | Milestone | Why it matters |
|---|---|---|
| 1971 | Stallman joins MIT AI Lab | Experiences a strong software-sharing culture |
| 27 Sep 1983 | GNU announced | A complete free Unix-compatible system is proposed |
| Jan 1984 | GNU development begins | Work starts years before Linux exists |
| 1985 | FSF founded | Organizational support for free software grows |
| 1980s | GNU Emacs, GCC, GDB and other components develop | Major free development/user-space infrastructure appears |
| 1989 | GNU GPL v1 released | GNU’s generalized copyleft license arrives |
| 1990 | GNU says the kernel is the major missing component | Defines the gap Linux later fills |
| Jun 1991 | GNU GPL v2 released | GPLv2 exists before Linux’s license change |
| 25 Aug 1991 | Torvalds announces Linux project | Mentions GNU, Bash 1.08 and GCC 1.40 |
| 17 Sep 1991 | Linux 0.01 | Release notes require GCC and include Bash for testing |
| 15 Jan 1992 | Linux 0.12 announced | Torvalds announces GNU-copyleft-compatible terms |
| 1 Feb 1992 | GNU copyleft terms scheduled to take effect | Deepens the legal connection between the projects |

After this point, distributions and a much larger contributor ecosystem become the main story. See our History of Linux for that broader timeline.
Common mistakes
1. Saying Stallman created Linux
He did not. Torvalds created the Linux kernel.
2. Saying Stallman wrote all of GNU
GNU became a large collaborative project. Stallman personally wrote or initiated several major components, not every package.
3. Saying GNU was literally complete except for one file
GNU describes the kernel as its major missing component, but building a complete usable system also required integration, libraries, packaging and software from other projects.
4. Saying every Linux system is GNU/Linux
Android and Alpine show why that is too broad. Linux can support non-GNU user-space environments.
5. Saying GNU had nothing to do with early Linux
Torvalds’ own 1991 records mention GNU directly, Bash 1.08, GCC 1.40 and compiling Linux 0.01 with GCC.
6. Treating GPL and GNU software as the same contribution
GNU supplied code and tools. The GPL supplied licensing terms. Both mattered, but in different ways.
7. Saying the Xerox printer alone created GNU
The printer story is a useful symbol. The larger cause was the collapse of Stallman’s software-sharing environment and the growth of proprietary restrictions.
8. Treating “Linux” vs “GNU/Linux” as a simple right-or-wrong test
The correct term depends on whether you mean the kernel, a distribution, or a particular historical software composition.
Security, privacy and safety notes
You do not need to install historical software or run terminal commands to understand this article.
If you experiment with Linux 0.01, Linux 0.12 or old GNU software:
- use an isolated virtual machine or emulator;
- do not expose obsolete systems directly to the modern Internet;
- download historical code from reputable archives;
- back up disk images before testing old partitioning or filesystem tools;
- do not paste historical installation commands into a modern production machine without understanding them.
Historical source code is excellent for education, but it should be treated as archival software rather than secure production software.
Faster alternative
If you only need the answer in a few lines:
Linus Torvalds created Linux, meaning the kernel. Richard Stallman had already launched GNU and personally created or initiated major GNU tools including GNU Emacs, GCC and GDB. The wider GNU Project built many additional Unix-like components. In August 1991 Torvalds reported Bash 1.08 and GCC 1.40 working with his kernel, and Linux 0.01 was compiled with GCC. Linux later adopted GNU copyleft terms and remains GPLv2-licensed. Traditional distributions combined Linux, substantial GNU software and many other projects, which is why GNU argues for the name GNU/Linux.
The key nuance is that Stallman, GNU and Linux are three related but distinct levels of attribution.
FAQ
What did Richard Stallman contribute to Linux?
He did not write the Linux kernel. He founded GNU, was the principal or initial author of GNU Emacs, original GCC and GDB, founded the FSF, and authored the early GNU GPL versions. GNU software such as GCC and Bash was already involved with Linux in 1991.
Did Richard Stallman create Linux?
No. Linus Torvalds created the Linux kernel in 1991.
What did GNU contribute to Linux?
GNU supplied major development and user-space components used in many Linux-based systems, including GCC, Bash, libraries, build tools, debugging tools and command-line utilities.
Did Linus Torvalds use GNU software to build Linux?
Yes. His August 1991 announcement reported Bash 1.08 and GCC 1.40 working, and Linux 0.01’s release notes say the kernel had to be compiled with GCC.
Did Stallman write GCC?
GNU’s official contributor history identifies Stallman as the principal or initial author of the GNU C Compiler, which became GCC.
Did Stallman write Bash?
No. Bash is a GNU Project program, but it should not be attributed personally to Stallman.
Did Stallman write GDB?
GNU identifies Stallman as the principal or initial author of GDB.
What is GNU/Linux?
GNU/Linux is GNU’s preferred term for systems combining substantial GNU software with the Linux kernel.
Why does Stallman call it GNU/Linux?
He argues that calling the entire system “Linux” obscures the GNU system work that predated the Linux kernel and supplied much of the surrounding environment.
Is Linux part of GNU?
No. The Linux kernel is an independent project. It is often used with GNU software.
Can Linux run without GNU?
Yes. Android uses Linux-based kernels without a traditional GNU userland, and Alpine Linux replaces several major GNU base components with musl and BusyBox.
Can GNU run without Linux?
Yes. GNU has its own kernel project, GNU Hurd, built around GNU Mach.
Why did GNU not use Linux from the beginning?
Linux did not exist when GNU began. GNU started its own kernel work before Linux was available.
What does GNU stand for?
GNU stands for “GNU’s Not Unix.”
Who created GNU/Linux?
No single person created a complete GNU/Linux distribution. Stallman founded GNU and wrote foundational GNU components; Torvalds created Linux; many other developers wrote additional parts; distributions integrated them.
Is “Linux” or “GNU/Linux” the correct name?
Both can be accurate in context. Linux is the kernel name and the common umbrella term for distributions. GNU/Linux is useful when specifically referring to a GNU-plus-Linux system or discussing that historical composition.
Last tested
This article was reviewed against primary or authoritative historical and technical sources rather than relying on retrospective video narratives alone.
Tested on:
- GNU Project: Initial Announcement, GNU history, contributor records, GNU/Linux position and Hurd history
- Linux historical archive: Linux 0.01 and Linux 0.12 release records
- Linux kernel documentation: current GPLv2 licensing rules and kernel/distribution distinction
- Android Open Source Project: Linux-kernel architecture documentation
- Alpine Linux: BusyBox/base-system documentation
Last tested: 2026-09-02






