Elements of the Kernel

This section provides a brief overview of the various elements of the kernel and outlines the areas we will examine in more detail in the following chapters. Despite its monolithic approach, Linux is surprisingly well structured. Nevertheless, it is inevitable that its individual elements interact with each other; they share data structures, and (for performance reasons) cooperate with each other via more functions than would be necessary in a strictly segregated system. In the following chapters, I am obliged to make frequent reference to the other elements of the kernel and therefore to other chapters, although I have tried to keep the number of forward references to a minimum. For this reason, I introduce the individual elements briefly here so that you can form an impression of their role and their place in the overall concept. Figure 1-1 provides a rough initial overview about the layers that comprise a complete Linux system, and also about some important subsystems of the kernel as such. Notice, however, that the individual subsystems will interact in a variety of additional ways in practice that are not shown in the figure.

Applications

Userspace

C Library

ÇSyStem Cajjs^

Kernel space

1 Core kernel | ^

Device drivers

Hardware

1 :

1

Memory mgmt

Process mgmt

Architecture specific code

Figure 1-1: High-level overview of the structure of the Linux kernel and the layers in a complete Linux system.

Continue reading here: Processes Task Switching and Scheduling

Was this article helpful?

0 0