Why do people refer to Linux as a kernel rather than an operating system? To the best of my knowledge, the kernel is one part of the operating system.


A linux system is built out of many different parts.

The central part is the linux kernel. (You can get it from kernel.org, it is originally written by Linus Torvalds who named it "Linux".)

The kernel by itself is pretty much useless. It manages all kind of hardware and provides an interface for applications to use. To make any use of it you therefore need applications using this kernel.

On the other hand there is the GNU project, initiated by Richard Stallman. Its mission is to create a complete free operating system with all the standard tools around it.

After several years the GNU project went well, they wrote all the standard tools, but they still were missing a working kernel.

So it happened that at the same time there was a project for a kernel without tools (Linux), and a project with all the tools but without a kernel (GNU). As both were written with the same UNIX mindset it was possible to combine them into a full operating system which people aptly called "GNU/Linux".

But even this kind of bare "GNU/Linux" system is not very useful without the software you want to run on it. (Like a browser, a mail server, or anything like this.)

Therefore some distributions (like Debian, RedHat, SuSE, Arch, etc.) went to package a Linux kernel, the GNU tools, and all kind of applications together for easy installation and maintenance. (There are also distributions which use other kernels. For example you can have a Debian system with FreeBSD or GNU-Hurd as a kernel.)

Now for "normal" people, (who for example just want to have a running web browser) this background is much too detailed and they want just a single name for it. So most of the time someone claims he installed "Linux" he usually really installed some distribution which came with a Linux kernel as one part of many.

To cut a long story short, people often just use the name of the central kernel to refer to the whole system.

It is for you to decide what you call an "operating system". Is it just the thing that manages hardware (like Linux) or is it the thing you interact with (like your favorite desktop environment), or maybe something in between like a basic (command line based) GNU/Linux.


A kernel is a constituent part of a larger operating system -- usually, in Linux distributions, the larger operating system contains a base of GNU tools, which is why many people refer to the kernel as Linux, and the overall operating system as "GNU/Linux" (although many people don't make this distinction).

People call Linux an operating system because they have to choose a name to refer to the overall operating system that is provided by the sum of parts. Linux is the lowest level component that is readily visible to the user, so it is natural that it would take on this name and role. People don't usually refer to GNU grep as "GNU grep", they usually just call it "grep" -- to many users, GNU tools are not as visibly tied together as the Linux kernel.

Richard Stallman is very insistent about having people call Linux "GNU/Linux", since it contains many GNU tools (the C compiler perhaps being the most critical). I'm not so fussed, and not many other people are, either.

If you want clarity, GNU/Linux unambiguously refers to the operating system (rather than the kernel). "Linux" is significantly more ambiguous out of context.

  • The OS in case of Linux would be its various flavors available, like Fedora, Red Hat, Solaris etc. All of these flavors are based on the same kernel i.e. Linux. – debal Oct 10 '13 at 6:06
  • @debal they are also based on the same GNU tools so GNU/Linux would also work. – StrongBad Oct 10 '13 at 7:10
  • 4
    Solaris is not a Linux distro - it is an OS in its own right, with its own kernel. – D_Bye Oct 10 '13 at 7:10
  • @D_Bye You should probably mention (with @) debal in that comment so that he can respond. – Chris Down Oct 10 '13 at 7:11
  • 1
    I would not say it is called Gnu/Linux because of tools like gcc but because most of the POSIX APIs, i.e. what makes an OS a Unix is provided in the Linux case by Gnu software. These pieces are mainly libraries like the glibc and core utilities (shell and basic commands). On the other hand, the C compiler is not at all required or even AFAIK specified by the standard. – jlliagre Oct 10 '13 at 14:39

Linux is a kernel. That is the main reason to call it a kernel. Ubuntu, Android and Chrome OS are fundamentally different operating systems. Applications for Ubuntu do not necessarily run on Android just like they do not necessarily run on Windows. For one simple reason: The operating system is different. Linux based operating systems also strongly differ from a security point of view. Chrome OS is known to be very secure. Android is not that secure: http://www.forbes.com/sites/gordonkelly/2014/03/24/report-97-of-mobile-malware-is-on-android-this-is-the-easy-way-you-stay-safe/


Linux is itself is a kernel. It can be configured to a network workstation, a DNS server, a DHCP server, a web server, a mail server, a file and print server, database server, a firewall, a gateway router and many more. Kernel makes memory management, device management and system calls efficient Linux torvald created kernel. Richard stallman in return decide to build a free os. They were lacking kernel. Then, GNU/Linux was born. Linux is not about just torvald.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.