This book discusses the concepts, structure, and implementation of the Linux kernel. In particular, the individual chapters cover the following topics:Chapter 1 provides an overview of the Linux kernel and describes the big picture that is investigated more closely in the following chapters.Chapter 2 talks about the basics of multitasking, scheduling, and process management, and investigates how these fundamental techniques and abstractions are implemented.Chapter 3 discusses how physical memory is managed. Both the interaction with hardware and the in-kernel distribution of RAM via the buddy system and the slab allocator are covered.Chapter 4 proceeds to describe how userland processes experience virtual memory, and the comprehensive data structures and actions required from the kernel to implement this view.Chapter 5 introduces the mechanisms required to ensure proper operation of the kernel on multiprocessor systems. Additionally, it covers the related question of how processes can communicate with each other.Chapter 6 walks you through the means for writing device drivers that are required to add support for new hardware to the kernel.Chapter 7 explains how modules allow for dynamically adding new functionality to the kernel. Chapter 8 discusses the virtual ﬁlesystem, a generic layer of the kernel that allows for supporting a wide range of different ﬁlesystems, both physical and virtual.Chapter 9 describes the extended ﬁlesystem family, that is, the Ext2 and Ext3 ﬁlesystems that are the standard workhorses of many Linux installations.Chapter 10 goes on to discuss procfs and sysfs, two ﬁlesystems that are not designed to store information, but to present meta-information about the kernel to userland. Additionally, a number of means to ease writing ﬁlesystems are presented.Chapter 11 shows how extended attributes and access control lists that can help to improve system security are implemented.Chapter 12 discusses the networking implementation of the kernel, with a speciﬁc focus on IPv4, TCP, UDP, and netﬁlter.Chapter 13 introduces how systems calls that are the standard way to request a kernel action from userland are implemented.Chapter 14 analyzes how kernel activities are triggered with interrupts, and presents means of deferring work to a later point in time.Chapter 15 shows how the kernel handles all time-related requirements, both with low and high resolution.Chapter 16 talks about speeding up kernel operations with the help of the page and buffer cachesChapter 17 discusses how cached data in memory are synchronized with their sources on persistent storage devices.Chapter 18 introduces how page reclaim and swapping work.Chapter 19 gives an introduction to the audit implementation, which allows for observing in detail what the kernel is doing.
Author: Wolfgang Mauerer
Do you want ot get/download the Professional Linux® Kernel Architecture as Paperback or Kindle/pdf eBook?