Banner Image

1 Post

Modified: 2016-05-13 14:22

2 DISCLAIMER: Work in Progress

In response to reading so many arguments over the years about what a kernel means or what an operating system means.

This documentation is of history, not about proper language (in my case English). I shall not take a stance to tell people how to speak their own language. Ideas can change from one person to the next, from one place to the next, or over time. People can agree or not regardless of their knowledge of history. That history is what I find interesting, thus I seek to flush it out in this short file.

Also, most users, even in the broad sense, never use directly a significant portion of Linux kernel. Also, for example, most people would almost never ever say they use Qualcomm Atheros either, even though most users of Linux and Atheros have a significant cross section. How common does someone say "I use the heck of my kernel for process scheduling!" versus "I use my wireless network card all the time!"? If a user finds a tool, it makes little difference whether hardware or software. And if one claims that abstraction tiers matter, the typical user has more awareness of the wireless adapter than the scheduling and memory management of the system resources.

3 Operators

Users of early computers, such as mainframes, were operators of the machine itself. These users performed the task of scheduling on computers and at the time there was much less resource abstraction.

4 Operating systems

As per above, operators perform tasks in an operating system.

RMS says: "An operating system does not mean just a kernel, barely enough to run other programs. In the 1970s, every operating system worthy of the name included command processors, assemblers, compilers, interpreters, debuggers, text editors, mailers, and much more. ITS had them, Multics had them, VMS had them, and Unix had them. The GNU operating system would include them too" [1].

5 Linux, the trademark

Linux the word exists as a trademark, thus using or not using it includes some sort of interest 1. In the case of calling something "Linux" it seems that the Linux Foundation perfectly agrees with operating system distributions which include the name. This friendly reuse does not always survive into other forms of free software or open source projects such as the Mozilla trademark Firefox, which other Gecko browsers have required a rebranding such as Debian Iceweasel 2. The community at large does not often continue the analogy for trademark usage, otherwise non-Firefox branded browsers would more typically be known as Gecko distributions if the analogy of kernel to web engine were to survive. For example, Debian Linux would thus include the browser Iceweasel Gecko if the community was more interested in the engine behind the front end of the browser just as many people are more interested in the kernel of the operating system rather than the shell, desktop environment, or library API's.

6 Shell-Kernel metaphor

The kernel is the non-userland part of the nut and the shell is the basic userland interaction which is either just a husk or all of the fleshy part of the nut (or fruit). Kernels interact with the hardware or a layer of abstraction near the hardware; shells interact with the kernel or rather they represent the userland around the kernel. Most people remember that there is a metaphor here, but it seems to have changed over time. Based on the responsibilities, some kernels are called microkernels or monolithic kernels, etc. [*]

7 Kernel mode

Tanenbaum describes kernel mode (or supervisor mode) as the part of the OS that is not user mode. Yet he notes that, "It is hard to pin down what an operating system is other than saying it is the software that runs in kernel mode–and even that is not always true." The reason for this difficulty rests on the opinion that an operating system provides resource abstraction and resource management 3. Note that Tanenbaum uses the word "hardware" and "resource" in his book, but in the case of someone who works with a virtual machine, perhaps thinking of a hardware element as a resource element will create a more abstract picture.

8 Kernel means operating system?

Do kernel and OS mean the same thing? The professionals and the community at large has no concensus. Above, RMS sees an OS as a set of software in order to operate the resources provided by the hardware. On the other hand, Tanenbaum describes immediately on page 1 of his book Modern Operating Systems that an OS as specific to the software that acts in supervisor mode, while other software "is actually not part of the operating system although it uses the operating system to get its work done". Tanenbaum indicates that the user interacts with the application software which then interacts with the kernel. This is not to say that a user will not ever interact with the kernel, but there is a layer of abstraction to make things look more attractive (if you have the text you can see Tanenbaum's funny illustrations of the uglier, lower levels of computing on page 5). For Tanenbaum exists the difference between the end user who uses the pretty applications and the developer who uses the ugly operating system 4. RMS does not seem to make this distinction of users, which may or may not affect the difference of opinion on whether kernel means operating system. But these need not be all or nothing scenarios. Some developers certainly behave as end users of other applications and some end users never act as developers. If user status seems relative, so does operating system status. Thankfully, there seems less of or no argument about what a kernel means, even if many types of kernels exist.

9 Notes for further investigation

Discussion about POSIX.

10 References

[*] A proper source to be determined or supplied soon.
[1] https://www.gnu.org/gnu/thegnuproject.html\\


  1. http://www.linuxfoundation.org/programs/legal/trademark\\↩︎

  2. https://packages.debian.org/wheezy/iceweasel\\↩︎

  3. Modern Operating Systems (3rd Edition) by Andrew S. Tanenbaum, ISBN-10: 0-13-600663-9
    [5] https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds\_debate↩︎

  4. Modern Operating Systems (3rd Edition) by Andrew S. Tanenbaum, ISBN-10: 0-13-600663-9
    [5] https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds\_debate↩︎