Linux Kernel Development Cookbook: Learn kernel development along with kernel internals and cover essential background for driver authors
Linux Kernel Development Cookbook aims to make kernel programming easy for you. All kernel (and a few device driver) concepts discussed in this book are primarily targeted to offer solutions to frequently encountered kernel issues.
This problem-solution guide focusing on the latest version of Linux kernel 5.0 will follow a recipe-based approach and start off with an overview of the Linux Kernel architecture, and explaining how to build the kernel from source. Next, you will learn how to write your first Kernel module within the Loadable Kernel Module (LKM) framework. You will also explore the essentials of the Linux memory management subsystem and in detail, the kernel dynamic memory allocation and deallocation APIs. Going forward, you will get familiar with CPU scheduling on the Linux OS. The next set of chapters will deal with the different synchronization techniques and some useful Kernel mechanisms (timers, kernel threads, workqueues, even the implementation of a new system call). The last set of chapters will help you understand user-kernel communication pathways, performing I/O to peripheral chips and the handling of hardware interrupts – all valuable topics to the Linux driver developer as well.
By the end of this book, you will be able to troubleshoot a majority of the problems encountered while developing Linux kernel code.