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.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

Linux Kernel Development (2nd Edition) 2nd Edition

4.6 out of 5 stars 102 customer reviews
ISBN-13: 978-0672327209
ISBN-10: 0672327201
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Have one to sell? Sell on Amazon
Buy used
Condition: Used: Very Good
Comment: Support Your Planet. Buy CLEAN EARTH BOOKS. Shipping orders swiftly since 2008. This book is in excellent condition and comes with a 100% Money Back Guarantee. Our customer service can't be beat! Tracking included on all orders.
Access codes and supplements are not guaranteed with used items.
38 Used from $0.77
FREE Shipping on orders over $25.
More Buying Choices
10 New from $12.08 38 Used from $0.77

There is a newer edition of this item:

Free Two-Day Shipping for College Students with Prime Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Best Books of the Year So Far
Looking for something great to read? Browse our editors' picks for the Best Books of the Year So Far in fiction, nonfiction, mysteries, children's books, and much more.
click to open popover

Editorial Reviews

From the Back Cover

The Linux kernel is one of the most important and far-reaching open-source projects. That is why Novell Press is excited to bring you the second edition of Linux Kernel Development, Robert Love's widely acclaimed insider's look at the Linux kernel. This authoritative, practical guide helps developers better understand the Linux kernel through updated coverage of all the major subsystems as well as new features associated with the Linux 2.6 kernel. You'll be able to take an in-depth look at Linux kernel from both a theoretical and an applied perspective as you cover a wide range of topics, including algorithms, system call interface, paging strategies and kernel synchronization. Get the top information right from the source in Linux Kernel Development.

About the Author

Robert Love is an open source hacker who has used Linux since the early days. Robert is active in and passionate about both the Linux kernel and the GNOME communities. Robert currently works as Senior Kernel Engineer in the Ximian Desktop Group at Novell. Before that, he was a kernel engineer at MontaVista Software.

Robert's kernel projects include the preemptive kernel, the process scheduler, the kernel events layer, VM enhancements, and multiprocessing improvements. He is the author and maintainer of schedutils and GNOME Volume Manager.

Robert has given numerous talks on and has written multiple articles about the Linux kernel. He is a Contributing Editor for Linux Journal.

Robert received a B.A. in Mathematics and a B.S. in Computer Science from the University of Florida. Born in South Florida, Robert currently calls Cambridge, Massachusetts home. He enjoys college football, photography, and cooking.


The latest book club pick from Oprah
"The Underground Railroad" by Colson Whitehead is a magnificent novel chronicling a young slave's adventures as she makes a desperate bid for freedom in the antebellum South. See more

Product Details

  • Paperback: 432 pages
  • Publisher: Novell Press; 2 edition (January 22, 2005)
  • Language: English
  • ISBN-10: 0672327201
  • ISBN-13: 978-0672327209
  • Product Dimensions: 7 x 1 x 9 inches
  • Shipping Weight: 1.4 pounds
  • Average Customer Review: 4.6 out of 5 stars  See all reviews (102 customer reviews)
  • Amazon Best Sellers Rank: #1,012,713 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

Format: Paperback Verified Purchase
I have been doing Linux kernel/system level development on and off since 1999. This is the book that I think should be owned by any Linux newbie who wants starting their kernel hacking. Even if people do not directly do Linux kernel development, it is a good book complementary to any serious operating systems course in college - it helps gain a better idea of how and why.

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).
5 Comments 100 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
I was shopping for a good overview reference book of the Linux kernel, I did not want too much depth into each component, what I wanted was a "brief" overview of all the different components. If you're looking for depth into each module, then this is not the book for you. If you're interested in Linux and want a good overview book that you can finish quickly and have a working knowledge of the different components and how they tie in together then this is a great piece. I think "Linux Device Drivers" by Corbet is a better reference if your interest is strictly device driver and "Understanding Linux Networking Internals" by Benvenuti is better if you want to know more about the IP stack. Overall Robert Love goes through kernel development at a great level for an overview with just enough depth and enough examples. I use the book not every day but I often have it on my desk for reference.
3 Comments 48 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
I was a Linux kernel newbie writing a device driver and started reading "Linux Device Drivers" by Rubini. On hindsight, this was a bad idea. Rubini's book goes deep into driver code quickly with good details but it only sparingly touches the higher level kernel overview or essential concepts. These missing pieces are covered very well in Love's book and I should have understood them before reading Rubini's book; important basic concepts covered in good detail include:

- user thread vs kernel thread.
- kernel-space process context vs kernel-space interrupt context.
- tasklet as a non-concurrent form of softirq and is not related in any way to tasks.
- bottom-half methods comprising softirq, tasklet and work queue; and that BH and task queue are obsolete and deprecated.
- semaphore sleeping vs spinlock spinning (busy-wait).
- spinlock adversely affecting scheduling latency while semaphore does not.

Love's book shows ambly that he is an expert in Linux kernel matters and speaks with authority. At the same time he has the ability of a good teacher to explain obscure and critical kernel concepts clearly. I heartily recommend this as the first book one should read about the Linux kernel, well before books such as Bovet's "Understanding the Linux Kernel" or Rubini's device driver book.

This 2nd edition introduces more materials and explanation to cover the updated 2.6 kernel. As far as I can see, it is a worthy new edition to own.
Comment 37 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
This book is for a reader who is an accomplished C programmer and for someone who wants to learn how to do Linux Kernel Development. The author has been contributing to Linux for more than 15 years and he was a member of the team that developed Android mobile platform's kernel. Although the author explains some of the topics in detail (for example Process Scheduling), he glosses over some of the other topics (for example Process Management). In order to understand some of the theoretical concepts presented in the book, it is better to have a background of Operating Systems. Therefore, it is better to study this book along with a theoretical book on Operating Systems (Silberschatz, Galvin). Having said that, this book can serve as a useful introduction to someone who wants to know the design and implementation of the Linux kernel.

In the first few chapters, the author provides instructions for obtaining the Kernel source code and compiling it. In the rest of the chapters, the author gives details of each of the parts of the Linux kernel. In the chapter on Kernel Data Structures (Chapter 6), the author gives a detailed explanation of the most important data structures that are used in Linux (linked lists, queues, maps and red-black trees). The chapter on Debugging (Chapter 18) is full of useful tips for debugging the Linux Kernel. What I like most about the book is that the author is very practical with his approach and concludes his book by saying that "the only way to start (learning the Linux Kernel) is by reading and writing code".
Comment 23 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews