Linux is Just a Kernel: What Does it Mean?
You may have heard this in a number of forums and discussions on the internet.
Linux is just a kernel
And that made you curious. Is it a kernel? Is it an operating system? What’s the difference between the two?
I’ll answer those questions in this quick explainer.
Is Linux an OS or kernel?
Well, technically, Linux is just a kernel, not an operating system. However, the term Linux is often referred to a complete operating system that includes a shell (like bash) and command line and/or GUI tools to control the system. The technically correct term for this complete operating system is Linux distribution or simply Linux distro. Examples of popular Linux distributions include Ubuntu, Red Hat, and Debian.
Back in 1991, what Linus Torvalds created was the kernel only. Even today, he works on the Linux kernel. He doesn’t code anymore but supervises which code goes into the kernel.
Kernel, what?
The kernel is at the center of every operating system. It’s not just a Linux thing. Windows and macOS have kernels too.
Think of the kernel as the heart of an operating system. You cannot live without your heart. Your operating system cannot exist without a kernel.
However, just like a heart needs a body to live in, the kernel needs other programs and tools to make a complete operating system that people can use on their computers.
Here’s the typical structure of an operating system:
The kernel is at the core interacting with the hardware. On top of that lies the shell that interacts with the kernel. And then you have applications, command line and graphical, to give you various ways of using the system.
Kernel is the engine, OS is the car
A better analogy is to think of the kernel as the engine of a car and the operating system as the car.
You cannot drive an engine but you can also not drive a car without the engine. You need to have tires, steering, and other components to turn it into a car you can drive.
Similarly, you cannot use the kernel directly. You need shell and then other tools and components to use the operating system.
I have written an in-depth article with this analogy. I am not going to repeat it all. If you liked the analogy, do read the article 👇
Linux vs GNU/Linux
On a similar line, you’ll also come across statements like ‘Linux is just a kernel, what you are referring to as Linux is actually GNU Linux”.
Even before Linus Torvalds created Linux in 1991, Richard Stallman created the Free Software movement and the GNU project. The GNU project encompasses the reimplementation of popular UNIX tools and commands like ls, grep, sed, etc.
Typically, your Linux distribution comes with all these GNU tools on top of the Linux kernel.
This is why purists insist on calling it GNU Linux so that people don’t forget the contribution and importance of GNU in the success of Linux.
In the end…
So, if you are asked this question in viva or interview, reply with ‘Linux is a kernel, not an operating system’. Mostly your teacher or interviewer is looking for that answer.
But deep down, understand the difference between the kernel and the operating system.
If someone says, “I use Linux”, you understand that the person is referring to a Linux distribution, not just the kernel. And sincerely, there is no need to correct someone with ‘Linux is just a kernel, not an operating system’.