- Paperback: 440 pages
- Publisher: Addison-Wesley Professional; 3 edition (July 2, 2010)
- Language: English
- ISBN-10: 0672329468
- ISBN-13: 978-0672329463
- Product Dimensions: 7 x 1.4 x 9 inches
- Shipping Weight: 1.8 pounds (View shipping rates and policies)
- Average Customer Review: 116 customer reviews
- Amazon Best Sellers Rank: #39,075 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Linux Kernel Development (3rd Edition) 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
"Enlightenment Now: The Case for Reason, Science, Humanism, and Progress"
Is the world really falling apart? Is the ideal of progress obsolete? Cognitive scientist and public intellectual Steven Pinker urges us to step back from the gory headlines and prophecies of doom, and instead, follow the data: In seventy-five jaw-dropping graphs, Pinker shows that life, health, prosperity, safety, peace, knowledge, and happiness are on the rise. Learn more
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
From the Back Cover
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
About the Author
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.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
I favor books. Books are often rigorously peer reviewed, coherent, well indexed, useful both as a reader and a reference.
1. Covers the material
2. Presented in an organized and meaningful way
5. Indexed (indexed expertly - I can find the desired answer quickly)
Robert takes you gently but thoroughly through most of the facets of kernel programming, including system call registration, coding guidelines, synchronization and the VM layer. This is a great book which while being short and precise still manages to get you hacking on the kernel without suffering two much headache. The only thing I feel is missing is a chapter or two devoted to debugging the kernel - but in that regard one could also pickup "Linux(R) Debugging and Performance Tuning " by Steve Best which is a complete book on the fine art of bug/bottleneck hunting. Anyway this is one of the best written tech book I have ever had the joy of reading and it fully deserves to be put next to computer science classics such as "Introduction to Algorithms" and "The C Programming Language".
The book is quite easy to follow and read and does not try to overwhelm readers with tons of information (consequently it does not address many details in Linux kernel). I consider this is a major strength of the book which parts away from other books (comparing to "Understanding the Linux Kernel", which has quite some details on each subsystem, but if you take the book as your guide to kernel programming, you feel you are overwhelmed by the information and often clueless on where to start to write some simple stuffs. This does not mean I think the latter is a bad one - it is a very good one indeed). Considering the fact that Linux kernel evolves so fast, it may make sense to focus on the core parts and once you understand them, it may become easy for you to track and understand changes later. Even as a professional programmer doing kernel development, occasionally referencing a well-written book like this is very helpful.
I am a bit reluctant to rate it 5 stars though due to many typos observed, which I guess is the result of rush to publishing (and the poor job of proofreading). Fortuanately, most can be understood by reading the contexts around them. But a few are really misleading or totally wrong. For example, on page 169, there is a sample code to show how page allocation/free is done in kernel. It uses __get_free_pages() to allocate pages, but uses free_pages() to free these pages. As the author has just said a page ago, __free_pages() should be used to free (struct page*) pages, otherwise corruption will ensure (free_pages is used to free pages with logic address as parameter).
I purchased this book primarily to prepare for an upcoming job interview. I had some small background in driver development and user space development. A job I was interviewing for delves into kernel space beyond my current depth. This book helped me come up to speed and ultimately pass the interview and get the job offer.
Most recent customer reviews
I request the author to invest more time to tell the full story more vividly. No hurry.Read more