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 1st Edition

4.6 out of 5 stars 102 customer reviews
ISBN-13: 978-0672325120
ISBN-10: 0672325128
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 - Good
Condition: Used: Good
Comment: Cover and edge wear. Nice interior pages. , Super Fast Shipping.
Access codes and supplements are not guaranteed with used items.
17 Used from $5.36
FREE Shipping on orders over $25.
More Buying Choices
8 New from $17.29 17 Used from $5.36

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

The Numberlys Best Books of the Year So Far
click to open popover

Editorial Reviews

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. While the book discusses topics that are theoretical, it does so with the goal of assisting programmers so they better understand the topics and become more efficient and productive in their coding.

The book discusses the major subsystems and features of the Linux kernel, including design and implementation, their purpose and goals, and their interfaces. Important computer science and operating system design details are also addressed. The book covers the Linux kernel from both angles -- theoretical and applied -- which should appeal to both types of readers.

The author, a core kernel developer, shares valuable knowledge and experience on the very latest Linux kernel.

Specific topics covered will include: all the important algorithms, relevant subsystems, process management, scheduling, time management and timers, system call interface, memory addressing, memory management, paging strategies, caching layers, VFS, kernel synchronization, and signals.

An authoritative, practical guide that helps programmers better understand the Linux kernel, and to write and develop kernel code.

* Authored by core Linux kernel developers.
* In-depth coverage of all the major subsystems and features of the new Linux 2.6 kernel.
* Targeted audience includes programmers interested in gaining relevant and timely information so they may further their kernel development skills.

About the Author

Robert Love has used Linux since the early days and is active in the open source community. Currently, Robert is employed as a software engineer at MontaVista Software, where he hacks on the Linux kernel.

Robert's kernel projects include the process scheduler, the preemptive kernel, the VM, and multiprocessing enhancements. His other open source projects include schedutils and procps, both of which he maintains. Robert has given numerous talks on the kernel and he is a contributing editor for Linux Journal. Robert currently lives in Gainesville, Florida and enjoys photography and good food.


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: 332 pages
  • Publisher: Sams; 1st edition (September 8, 2003)
  • Language: English
  • ISBN-10: 0672325128
  • ISBN-13: 978-0672325120
  • Product Dimensions: 7 x 0.8 x 9 inches
  • Shipping Weight: 1.2 pounds
  • Average Customer Review: 4.6 out of 5 stars  See all reviews (102 customer reviews)
  • Amazon Best Sellers Rank: #1,848,073 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