Understanding the Linux Kernel, 1st & 3rd Editions HD PDF, EPUB

This article along with all titles and tags are the original content of AppNee. All rights reserved. To repost or reproduce, you must add an explicit footnote along with the URL to this article!
Any manual or automated whole-website collecting/crawling behaviors are strictly prohibited.
Any resources shared on AppNee are limited to personal study and research only, any form of commercial behaviors are strictly prohibited. Otherwise, you may receive a variety of copyright complaints and have to deal with them by yourself.
Before using (especially downloading) any resources shared by AppNee, please first go to read our F.A.Q. page more or less. Otherwise, please bear all the consequences by yourself.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

The kernel of Linux is responsible for handling all the interactions between CPU and outside world, deciding the order of all programs share the processor time, effectively managing hundreds or thousands of processes to share the limited memory available in system, skillfully planning the data transmission as a whole to save the time consumed by CPU on waiting for the slower hard drive. Therefore, in-depth study of the most essential parts of the Linux kernel lets you completely understand what makes Linux run normally and why it can work well in various system distributions.

The classic of Understanding the Linux Kernel is needless to be emphasized for many times, readers who are proficient in Linux should have heard of this book, and it is actually the first choice when Linux kernel hackers recommend some books to you. However, this book is likely to make you feel very, very boring when reading it through. In consequence, you’d better read it in combination with the actual code examples, so as to understand how they are implemented clearly. For this, AppNee only gives two suggestions. First, when you read it in detail, you don’t have to strictly follow the original order of all chapters, but it is best to start from point to surface, to learn some basic implementation methods, then to connect these knowledge points together along with code samples. Second, actively explore some knowledge points that were not covered detailedly in this book but have been implemented in the kernel; or some parts of the kernel that have been greatly changed over the years.

The following books can be read as an aid: Linux Device Drivers, Computer Systems: A Programmer’s Perspective, Professional Linux Kernel Architecture, Linux Kernel Development, Understanding the Linux Kernel. But before reading all of these books, you’d better master the C language first, and learn some simple Shell syntax. Here I also recommend a book about Shell: UNIX Shells by Example.

// Table Of Contents //

  • Chapter 1 Introduction
  • Chapter 2 Memory Addressing
  • Chapter 3 Processes
  • Chapter 4 Interrupts and Exceptions
  • Chapter 5 Kernel Synchronization
  • Chapter 6 Timing Measurements
  • Chapter 7 Process Scheduling
  • Chapter 8 Memory Management
  • Chapter 9 Process Address Space
  • Chapter 10 System Calls
  • Chapter 11 Signals
  • Chapter 12 The Virtual Filesystem
  • Chapter 13 I/O Architecture and Device Drivers
  • Chapter 14 Block Device Drivers
  • Chapter 15 The Page Cache
  • Chapter 16 Accessing Files
  • Chapter 17 Page Frame Reclaiming
  • Chapter 18 The Ext2 and Ext3 Filesystems
  • Chapter 19 Process Communication
  • Chapter 20 Program ExZecution
  • Appendix A System Startup
  • Appendix B Modules
  • Appendix Bibliography

// Download URLs //

Edition Format Download Size
First Edition PDF 3.12 MB
Second Edition PDF (original) 5.34 MB
PDF (converted) 5.33 MB
EPUB 4.23 MB


If some download link is missing, and you do need it, just please send an email (along with post link and missing link) to remind us to reupload the missing file for you. And, give us some time to respond.
If there is a password for an archive, it should be "appnee.com".
Most of the reserved downloads (including the 32-bit version) can be requested to reupload via email.