This book focuses entirely on the kernel space, of course. The Linux kernel today is a rather large and complex beast. Internally, it consists of a few major subsystems and several components. A broad enumeration of kernel subsystems and components yields the following list:
- Core kernel: This code handles the typical core work of any modern operating system, including (user and kernel) process and thread creation/destruction, CPU scheduling, synchronization primitives, signaling, timers, interrupt handling, namespaces, cgroups, module support, crypto, and more.
- Memory Management (MM): This handles all memory-related work, including the setup and maintenance of kernel and process Virtual Address Spaces (VASes).
- VFS (for filesystem support): The Virtual Filesystem Switch (VFS) is an abstraction layer over the actual filesystems implemented within the Linux kernel (for example, ext[2|4], vfat, reiserfs, ntfs, msdos, iso9660, JFFS2, and UFS).
- Block IO: The code...