What components make up a complete Linux system?
A working Linux system is layered: the kernel at the bottom, system software around it, and user applications on top — the kernel alone isn't a usable OS.
The point of this layering is that each tier depends only on the one below it. Applications talk to system software, system software talks to the kernel, and only the kernel talks to hardware. Swap out a layer (a different shell, a different desktop) and the others mostly keep working.
| Layer | Examples | Role |
|---|---|---|
| Kernel | The Linux kernel | Manages hardware and resources |
| System programs | init/systemd, daemons |
Boot the system, run background services |
| Toolchain | gcc, make, binutils |
Compile software from source |
| Shell (CLI) | bash, zsh, fish | Where the user types commands |
| Applications | Firefox, LibreOffice, Apache | What people actually run |
Key insight: Strictly, "Linux" is only the kernel — the one part Linus Torvalds and contributors wrote. Almost everything else (the compiler, the shell, the core utilities) comes from the GNU project and others. That historical fact is exactly why the Free Software Foundation insists the whole thing be called GNU/Linux.