What Linux actually is (kernel, GNU, and the distro)
Linux is a kernel, not a whole operating system. This explains the difference, where Linux came from in 1991, what GNU contributed, and why people argue about the name.
In this series
Getting started with Linuxlevel:Beginner
People say "Linux" to mean an entire operating system you can install on a laptop, but that is not quite what Linux is. Strictly, Linux is one component — the kernel — and everything else you think of as "Linux" is a large collection of separate programs bundled around it. This sounds like pedantry until you try to install Arch by hand, at which point the distinction becomes physical: you install the kernel as one step, and then you install all the other parts yourself, one decision at a time. Understanding what is kernel and what is not is the first thing that makes the rest of this series make sense.
The clearest way to see it is as a stack of layers. At the bottom is your hardware. The kernel sits as a thin layer directly on top of it — the only software allowed to touch the hardware directly. Everything you actually see and click sits above the kernel: the shell, the system libraries, and the user applications. Of that whole stack, only one layer is strictly "Linux."
flowchart TD
A["User applications<br/><i>browser, editor, games</i>"] --> B["Shell + system programs + libraries"]
B --> C["Linux kernel<br/><i>the only layer that is strictly Linux</i>"]
C --> D["Hardware<br/><i>CPU, memory, disk, network</i>"]
Only the kernel layer is "Linux" in the strict sense; everything above it is separate software bundled around it.
If you have used Windows or macOS, you already own a reference point for this: Windows is built around the NT kernel and macOS around the XNU kernel, each buried out of sight under the desktop you actually use. Linux is the same idea, except its kernel is named, shipped, and argued about separately from the rest of the system.
The kernel versus the operating system
What a kernel is
A kernel is the core program that sits between your hardware and everything else. When a program wants to read a file, send data over the network, or use a slice of the processor, it does not talk to the hardware directly. It asks the kernel, and the kernel — which is the only software allowed to touch the hardware directly — does the work on its behalf and hands back the result. The Linux kernel manages memory, schedules which program runs on which processor core and when, handles the filesystem, and drives your hardware through pieces of code called drivers.
Crucially, the kernel has no windows, no menus, no command prompt. You never interact with it directly. It is the engine, not the dashboard. By itself a kernel cannot even show you a login screen — it needs other programs layered on top to become something a person can use.
ℹ️ Note When you "type a command into Linux," you are really talking to the shell, which then asks the kernel to do the work. The kernel itself is silent and invisible — everything you see is a program sitting on top of it.
What turns a kernel into an operating system
Those other programs are the rest of the operating system: a shell to type commands into, the small utilities that list files and copy them and search them, the system that starts everything up when you boot, the libraries that applications are built on, and eventually a graphical desktop. None of that is Linux in the strict sense. The kernel is one ingredient; an operating system is the whole meal. This is exactly why the same Linux kernel can power a tiny home router, an Android phone, a supercomputer, and your laptop — the kernel is shared, but the programs bundled around it differ enormously.
Where Linux came from
Linux was started by Linus Torvalds, then a 21-year-old student in Helsinki, in 1991. On 25 August 1991 he posted to the comp.os.minix Usenet newsgroup a message that has since become famous for how badly it underestimated what was coming:
"Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones."
He had been building it since April, had already ported the Bash shell and the GCC compiler to it, and expected to have something practical "within a few months." Three and a half decades later it runs most of the internet, all of the world's top supercomputers, and, in the form of Android, most of the world's phones. The "just a hobby" line is now quoted mostly for its irony.
Notice what Torvalds said he was building: a free operating system, deliberately contrasted with "gnu." That contrast is the key to the next part of the story.
The GNU part, and the name argument
What GNU is
Years before Linux existed, in 1983, Richard Stallman announced the GNU Project with the goal of building a complete, free, Unix-compatible operating system from scratch. ("GNU" is a recursive joke standing for "GNU's Not Unix.") By 1991 the project had produced an enormous amount of an operating system — the compiler, the shell, the core utilities, the text tools, the libraries — everything, in fact, except a finished kernel. Their own kernel effort was stalled.
So when Torvalds released his kernel under a free license, the two halves snapped together. The GNU programs needed a kernel; Linux was a kernel that needed programs. The combination was the first complete, entirely free operating system, and most of what you run on a "Linux" system that is not the kernel itself traces back to GNU. Many of those background programs follow conventions far older than either project — the long-running service processes are still called daemons, a term borrowed from MIT in the 1960s.
Seen as a flow, the GNU userland and the Linux kernel are two separately-built halves that combine into one system — and that combined system is still not yet something you can download, because someone has to choose versions, build them, and package them. That packaging step is the distribution.
flowchart LR
A["GNU programs<br/><i>shell, compiler, core utilities</i>"] --> C["Combined free OS"]
B["Linux kernel"] --> C
C --> D["Assembled by a distribution"]
D --> E["The OS you actually install"]
The kernel and the GNU userland are built separately, combined into one system, then assembled by a distro into the thing you install.
Why some people say "GNU/Linux"
The split the slash is naming is exactly the one in the diagram below: the large GNU userland on one side, the kernel on the other, both required before you have a working system.
graph LR
A["GNU userland<br/><i>most of the system by volume</i>"] --> C["The whole system<br/><i>what FSF calls GNU/Linux</i>"]
B["Linux kernel<br/><i>one component</i>"] --> C
The naming argument is over how much credit the slash should give each half of this picture.
This history is why Stallman and the Free Software Foundation argue that the whole system should be called "GNU/Linux," not just "Linux" — they say the common name gives all the credit to the kernel and erases the much larger body of GNU work that surrounds it. The naming controversy has run for decades. The Debian project adopted "Debian GNU/Linux" in 1994 after a request from Stallman, but most of the world simply says "Linux," and that minority-versus-majority split has never really resolved. You will see both names; now you know what the slash is arguing about.
ℹ️ Note Throughout this series, "Linux" means the whole operating system unless the kernel specifically is meant — the common usage, with the history noted.
What a distribution is, and why there are hundreds
What a distribution is
If "Linux" is really a kernel plus a pile of separate programs, somebody has to do the work of choosing which programs, building them, testing that they work together, and packaging the whole thing so you can install it in one go. That assembled, ready-to-install bundle is called a distribution, or "distro."
A distribution decides which version of the kernel to ship, which desktop to default to, which tool you use to install more software, how often everything updates, and a thousand smaller defaults. Because all of those choices are genuinely open — anyone can take the same free pieces and assemble them differently — there are hundreds of distributions, each reflecting a different set of priorities. Some chase stability above all, some chase the newest software, some chase simplicity, some chase total user control. That last group is where Arch lives, and the next part of this series is entirely about understanding these differences and answering the inevitable "so which one do I pick."
Who maintains Linux today
The kernel is no longer a Helsinki student's side project. Torvalds remains its lead maintainer and has the final say on what goes in, but the day-to-day work is spread across thousands of contributors organised into a hierarchy: maintainers own individual subsystems, collect and review changes, and forward the good ones up the chain until they reach Torvalds for the main tree. Greg Kroah-Hartman, for instance, maintains the stable releases. The source lives at kernel.org, and the development process is documented openly there.
A large share of that contribution is paid work. Companies that depend on Linux — chip makers, cloud providers, phone manufacturers — employ kernel developers to improve the parts they care about, and the nonprofit Linux Foundation provides a neutral home for the infrastructure and employs a handful of fellows, Torvalds and Kroah-Hartman among them. The result is one of the largest collaborative engineering efforts in history, owned by no single company and used by all of them.
What open source means
All of this only works because of the license. The Linux kernel is released under the GNU General Public License, version 2 (GPLv2) — Torvalds switched to it in early 1992 — and that choice shaped everything. "Open source" means the source code, the human-readable instructions a program is built from, is published for anyone to read, study, and modify. "Free software," the term the GNU Project prefers, adds an explicit ethical dimension: free as in freedom, not free as in price.
The GPL goes one step further than simply publishing the code. It is a "copyleft" license, meaning anyone who distributes a modified version must release their changes under the same terms. You cannot take Linux, improve it, and lock the improvements away in a proprietary product. That requirement is why the kernel's improvements keep flowing back into the shared pool instead of being captured by whichever company is largest this decade — and it is a large part of why Linux outlasted the commercial operating systems it once seemed too small to challenge. The deeper standardisation that lets these tools interoperate across systems is its own story, told in POSIX, the standard nobody reads.
A short close
Linux is a kernel: the engine that talks to your hardware and nothing else. The operating system you install is that kernel plus a large collection of mostly-GNU programs, assembled by someone into a distribution, all of it kept open by a license that forces improvements to stay shared. Hold onto the kernel-versus-everything-else distinction, because the entire Arch install at the end of this series is just you doing, by hand and in order, the assembly that a distribution normally does for you. Next up: why there are hundreds of distributions and how to choose one.