Monday, December 8, 2008

Professional Linux Kernel Architecture

Professional Linux Kernel Architecture (PDF)

Based on Linux 2.6.24, this book give us a detailed look of the kernel.

Contents
  • 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 filesystem, a generic layer of the kernel that allows for supporting a wide range of different filesystems, both physical and virtual.
  • Chapter 9 describes the extended filesystem family, that is, the Ext2 and Ext3 filesystems that are the standard workhorses of many Linux installations.
  • Chapter 10 goes on to discuss procfs and sysfs, two filesystems 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 filesystems 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 specific focus on IPv4, TCP, UDP, and netfilter.
  • 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 caches.
  • Chapter 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.
  • Appendix A discusses peculiarities of various architectures supported by the kernel.
  • Appendix B walks through various tools and means of working efficiently with the kernel sources.
  • Appendix C provides some technical notes about the programming language C, and also
  • discusses how the GNU C compiler is structured.
  • Appendix D describes how the kernel is booted.
  • Appendix E gives an introduction to the ELF binary format.
  • Appendix F discusses numerous social aspects of kernel development and the Linux kernel community.

No comments: