Introducing Pearson+ 1500+ eTexts and study tools, all in one place. Subscriptions starting at $9.99/month.
K-12 educators : This link is for individuals purchasing with credit cards or PayPal only. Contact your Savvas Learning Company Account General Manager for purchase options.
Overview
Description
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.
Series
This product is part of the following series. Click on a series title to see the full list of products in the series.
Developer’s Library
Features
Authored by a well-known member of the Linux kernel development team with a reputation for a highly readable and focused writing style
Updated and improved coverage of all the major subsystems and features of the latest version of the Linux 2.6.xx kernel, with new coverage of kernel data structures
Allows developers to learn how to modify and enhance kernel code by providing examples based on real kernel code
Details on)nterrupt handlers and bottom halves
Extended coverage of virtual memory and-emory allocation
Information on debugging kernel code
Examples of kernel synchronization and timers
Useful insight into submitting kernel patches!nd working with the Linux kernel community
New to This Edition
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
Information on debugging kernel code
Examples of kernel synchronization and timers
Useful insight into submitting kernel patchesВ and working with the Linux kernel community
Table of Contents
1 Introduction to the Linux Kernel
2 Getting Started with the Kernel
3 Process Management
4 Process Scheduling
6 Kernel Data Structures
7 Interrupts and Interrupt Handlers
8 Bottom Halves and Deferring Work
9 An Introduction to Kernel Synchronization
10 Kernel Synchronization Methods
11 Timers and Time Management
12 Memory Management
13 The Virtual Filesystem
14 The Block I/O Layer
15 The Process Address Space
16 The Page Cache and Page Writeback
17 Devices and Modules
20 Patches, Hacking, and the Community
Order
Pearson offers affordable and accessible purchase options to meet the needs of your students. Connect with us to learn more.
K12 Educators: Contact your Savvas Learning Company Account General Manager for purchase options. Instant Access ISBNs are for individuals purchasing with credit cards or PayPal. Savvas Learning Company is a trademark of Savvas Learning Company LLC.
Robert Love is an open source programmer, speaker, and author who has been using and contributing to Linux for more than 15 years. He is currently senior software engineer at Google, where he was a member of the team that developed the Android mobile platform’s kernel. Prior to Google, he was Chief Architect, Linux Desktop, at Novell. Before Novell, he was a kernel engineer at MontaVista Software and Ximian.
Love’s kernel projects include the preemptive kernel, the process scheduler, the kernel events layer, inotify,VM enhancements, and several device drivers.
He has given numerous talks on and has written multiple articles about the Linux kernel and is a contributing editor for Linux Journal. His other books include Linux System Programming and Linux in a Nutshell.
Источник
Linux Kernel Development
«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 th «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 . more
Get A Copy
Friend Reviews
Reader Q&A
Be the first to ask a question about Linux Kernel Development
Lists with This Book
Community Reviews
I have been always fascinated with operating systems. After majoring computer science and still not knowing the inside of them, I felt like a joke. So after reading the Code and this, and various other books too, I am coming closer to understanding the inner workings of the hard parts of software architectures.
I have read this book, and currently reading it second time. There is really a lot of interesting things going under the cover. I was in love with CFS and other terms which was always ali I have been always fascinated with operating systems. After majoring computer science and still not knowing the inside of them, I felt like a joke. So after reading the Code and this, and various other books too, I am coming closer to understanding the inner workings of the hard parts of software architectures.
I have read this book, and currently reading it second time. There is really a lot of interesting things going under the cover. I was in love with CFS and other terms which was always alien to me, like system calls, timers, threads. Not that I am completely unaware of these terms. But there was always a gap that was missing from my understanding.
I suggest this book for getting a very good understanding of OS, it is not overly detailed. So it completely okay for beginners too. . more
I’ve been somewhat of a novice kernel hacker for many years now and the few pieces of the kernel that I can say that I understand very well have been small, hard-won victories for me. There are a number of Linux kernel books out there, and most novice hackers will find, as I have, that it’s very difficult to just go in «cold» and learn about a specific kernel subsystem from these books. Books like «Linux Kernel Internals», «Understanding the Linux Kernel» and «Understanding the Linux Virtual Mem I’ve been somewhat of a novice kernel hacker for many years now and the few pieces of the kernel that I can say that I understand very well have been small, hard-won victories for me. There are a number of Linux kernel books out there, and most novice hackers will find, as I have, that it’s very difficult to just go in «cold» and learn about a specific kernel subsystem from these books. Books like «Linux Kernel Internals», «Understanding the Linux Kernel» and «Understanding the Linux Virtual Memory Manager», are all very good references, but may be a bit overwhelming for the neophyte.
The problem is that there’s just so damn much going on in the kernel. Diving too deeply too soon is likely to give the novice a sense that he/she is working without enough context to actually understand the material.
«Linux Kernel Development» acts as a nice primer for someone who wants to get an idea of how everything comes together before taking the deep dive. The book is fairly light on source code, so you’re not terribly likely to come out a kernel hacker if you read this cover to cover, but in conjunction with a reference like «Understanding the Linux Kernel» and, of course, the source code, the kernel becomes much more approachable.
And, of course, while there’s no substitute for source code, if you’re like me, you need to know *why* something is implemented in a certain way before you’re able to make heads or tails of it.
If I get lost in the source, I often find myself coming back to this book to get a sense of the «big picture». Robert Love does an excellent job in getting readers over that initial hurdle. . more
Good intro to Linux Kernel newbies who want to know how the kernel works and how to modify it.
Best used while cross-referencing with current Kernel documentation so you know what in the book is obsolete/deprecated and what APIs have been changed or introduced.
I have tried reading other well know Linux Kernel literature, but Robert Love’s is the most readable of all. Robert has written with a good balance of Linux Kernel fundamentals and the code walk through of Kernel where appropriate. With his long experience with Kernel development, he provides lot of context on why certain decisions were made (For example, Why scheduler’s Complete Fair Queuing (CFQ) is the best scheduler in O/S world).
This book created a new level of respect for Linus Torvalds. I I have tried reading other well know Linux Kernel literature, but Robert Love’s is the most readable of all. Robert has written with a good balance of Linux Kernel fundamentals and the code walk through of Kernel where appropriate. With his long experience with Kernel development, he provides lot of context on why certain decisions were made (For example, Why scheduler’s Complete Fair Queuing (CFQ) is the best scheduler in O/S world).
This book created a new level of respect for Linus Torvalds. I can’t image the 1000’s of decisions he has to make as the core maintainer and for every processor architecture.
If you’re working in Linux for sometime and wants to know how exactly the Kernel functions internally, I’d highly recommend this book.
As with most Linux classics, this edition is getting outdated with latest additions to the kernel such as cgroups, the new BPF etc. But don’t let that stop you from pick up this classic. . more
This is by far the best Linux Kernel books when it comes to understanding as well as implementation. He breaks down the complexity of the kernel into simple components that any computer science major can understand. He discusses each concept from an operating systems class and breaks them down to how they are implemented in the kernel. From processes, synchronization techniques, to sysfs, drivers, and even various data structures that are already implemented in the kernel; and more importantly h This is by far the best Linux Kernel books when it comes to understanding as well as implementation. He breaks down the complexity of the kernel into simple components that any computer science major can understand. He discusses each concept from an operating systems class and breaks them down to how they are implemented in the kernel. From processes, synchronization techniques, to sysfs, drivers, and even various data structures that are already implemented in the kernel; and more importantly how to use these structures.
I haven’t *technically* finished the entire book, but I have read more than 60% of it and it has already proven itself to be invaluable at work and as a linux user/enthusiast. Highly recommend. . more
I think this would’ve made a good companion to Tannenbaum as textbooks for my undergrad operating systems course. Very focused on the details of implementation of central parts of linux 2.6, whereas Tannenbaum is more theoretical and not focused on implementation details. However, that specificity has caused this work to not age so well, as the 2.6 kernel is now quite outdated, and in certain cases his recommended ways of doing things are now outdated too (his enthusiasm for uevents has, I belie I think this would’ve made a good companion to Tannenbaum as textbooks for my undergrad operating systems course. Very focused on the details of implementation of central parts of linux 2.6, whereas Tannenbaum is more theoretical and not focused on implementation details. However, that specificity has caused this work to not age so well, as the 2.6 kernel is now quite outdated, and in certain cases his recommended ways of doing things are now outdated too (his enthusiasm for uevents has, I believe, not been borne out by time). I had a few other minor complaints:
* The background knowledge assumed (or not assumed) by the author was in some places rather unusual; I feel like if a potential kernel dev has never seen a linked list or binary tree before, there’s already a problem. * In certain chapters (I’m thinking of the VFS here as the most serious case), long sections were spent talking about all the fields of various structs and all the functions of various operations on struct types, but there wasn’t quite enough pulling it all together to give me a good picture of (say) the lifecycle of a file and all the structs associated with it. If he’d gone one layer of abstraction up, from documenting the API to linking all the parts together, that would’ve been really useful. As it stands, I probably need to go re-read that chapter, and then the source, to get that holistic understanding of file management. * I’m really curious what the Debugging chapter would look like now, what with kASAN and kmemleak and all these other good tools coming out.
All that said, I have found this useful for my work and expect to continue to do so. . more
Robert Love has written an excellent book covering the major systems of the Linux Kernel. It starts off with describing the main systems and how they are inter-related with each other. These include the virtual filesystem, the memory manager, the drivers, the process schedulers and more. All of them include the relevant snippets from the Linux Kernel.
Although the book was written around 10 years ago, it is still extremely relevant today. I had the kernel source open in another window and I was Robert Love has written an excellent book covering the major systems of the Linux Kernel. It starts off with describing the main systems and how they are inter-related with each other. These include the virtual filesystem, the memory manager, the drivers, the process schedulers and more. All of them include the relevant snippets from the Linux Kernel.
Although the book was written around 10 years ago, it is still extremely relevant today. I had the kernel source open in another window and I was browsing through the relevant parts of the code while reading what the author had written. It gave me more insight into what the author was trying to say.
If you want a good introduction to Linux and a basic tour of the systems embedded in the source code, this is the book for it.