Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in a manner that is beneficial to those writing and developing kernel code, as well as to programmers seeking to better understand the operating system and become more efficient and productive in their coding.
The book details the major subsystems and features of the Linux kernel, including its design, implementation, and interfaces. It covers the Linux kernel with both a practical and theoretical eye, which should appeal to readers with a variety of interests and needs.
The author, a core kernel developer, shares valuable knowledge and experience on the 2.6 Linux kernel. Specific topics covered include process management, scheduling, time management and timers, the system call interface, memory addressing, memory management, the page cache, the VFS, kernel synchronization, portability concerns, and debugging techniques. This book covers the most interesting features of the Linux 2.6 kernel, including the CFS scheduler, preemptive kernel, block I/O layer, and I/O schedulers.
The third edition of Linux Kernel Development includes new and updated material throughout the book:
-An all-new chapter on kernel data structures
-Details on interrupt handlers and bottom halves
-Extended coverage of virtual memory and memory allocation
-Tips on debugging the Linux kernel
-In-depth coverage of kernel synchronization and locking
-Useful insight into submitting kernel patches and working with the Linux kernel community
The authoritative guide to the latest Linux kernel: fully updated, with an all-new chapter on kernel data structures.
Authored by a well-known member of the Linux kernel development team with a reputation for clarity, readability, and insight.
Covers all major subsystems and features of the latest version of the Linux 2.6.xx kernel.
Provides examples based on real kernel code: samples that developers can use to modify and improve the Linux kernel on their own. Linux Kernel Development, 3/e, is a start-to-finish guide to the design and implementation of the latest Linux 2.6.xx kernel, written specifically for programmers who want to understand the existing kernel, write new kernel code, and write software that relies on the kernel's behavior. Author Robert Love is respected worldwide for his contributions to the Linux kernel: contributions that have improved everything from Linux preemption and process scheduling to virtual memory.
In this book, he illuminates every major subsystem and feature of the current Linux kernel: their purpose, goals, design, implementation, and programming interfaces. He covers the kernel both from a theoretical and applied standpoint, helping programmers gain deep insights into operating system design as they master the skills of writing Linux kernel code.
Love covers all important algorithms, relevant subsystems, process management, scheduling, time management and timers, system call interface, memory addressing, memory management, paging strategies, caching layers, VFS, kernel synchronization, signals, and more. This edition has been updated throughout to reflect changes since the original Linux kernel 2.6 was released. It also contains an entirely new chapter on kernel data structures.