Linux Kernel Development Cookbook
- Paperback: 653 pages
- Publisher: WOW! eBook (August 9, 2019)
- Language: English
- ISBN-10: 178995343X
- ISBN-13: 978-1789953435
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.
- Gain an understanding of some of the key data structures and APIs within the kernel
- Write and build kernel code having understood the Loadable Kernel Module (LKM) framework
- Understand the essential internals of the Linux kernel and memory management subsystem
- A broad look at tools and techniques used by kernel (and driver) developers
- When, where and which APIs to use for locking critical sections in your kernel/driver code
- Building the kernel from source, understanding the essentials of the CPU scheduler, using kernel mechanisms, driver essentials
By the end of this book, you will be able to troubleshoot a majority of the problems encountered while developing Linux kernel code.