Preface 1. Introduction to the Linux Kernel 2. Getting Started with the Kernel 3. Process Management 4. Process Scheduling 5. System Calls 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. Modules 18. Device Drivers 19. Debugging 20. Portability 21. Patches, Hacking, and the Community Appendix A. Algorithmic Complexity