Kernel Data Structures
The operating system must keep a lot of information about the current state of the
As things happen within the system these data structures must be changed to reflect
the current reality.
For example, a new process might be created when a user logs onto the system.
The kernel must create a data structure representing the new process and
link it with the data structures representing all of the other processes in the system.
Mostly these data structures exist in physical memory and are accessible only by
the kernel and its subsystems.
Data structures contain data and pointers, addresses of other data structures, or the
addresses of routines. Taken all together, the data structures used by the Linux
kernel can look very confusing.
Every data structure has a purpose and although some are used by several kernel
subsystems, they are more simple than they appear at first sight.
Understanding the Linux kernel hinges on understanding its data structures and the
use that the various functions within the Linux kernel makes of them.
This section bases its description of the Linux kernel on its data structures.
It talks about each kernel subsystem in terms of its algorithms, which are its methods of
getting things done, and their usage of the kernel's data structures.