Kernel
The main purpose of the kernel ring is to manage the hardware attached to a system and expose its functionalities as system calls. The following diagram shows how a specific hardware functionality is exposed through different rings before a user application can finally use it:
Figure 10-4: Function calls and system calls made between various Unix rings in order to expose a hardware functionality
The preceding diagram shows a summary of what we have explained so far. In this section, we are going to focus on the kernel itself and see what the kernel is. A kernel is a process that, like any other processes that we know, executes a sequence of instructions. But a kernel process is fundamentally different from an ordinary process, which we know as a user process.
The following list compares a kernel process and a user process. Note that our comparison is biased to a monolithic kernel such as Linux. We will explain the different types of kernels in the next...