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
Cited By
- Wang K, Wu S, Li S, Huang Z, Fan H, Yu C and Jin H (2024). Precise control of page cache for containers, Frontiers of Computer Science: Selected Publications from Chinese Universities, 18:2, Online publication date: 1-Apr-2024.
- Rajput P, Doumanidis C and Maniatakos M ICSPatch Proceedings of the 32nd USENIX Conference on Security Symposium, (6861-6876)
- Bilbao C, Saez J and Prieto-Matias M (2023). Divide&Content: A Fair OS-Level Resource Manager for Contention Balancing on NUMA Multicores, IEEE Transactions on Parallel and Distributed Systems, 34:11, (2928-2945), Online publication date: 1-Nov-2023.
- Chen G, Hu Z and Jin D Integrating I/O Time to Virtual Time System for High Fidelity Container-based Network Emulation Proceedings of the 2022 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation, (37-48)
- Geissler S, Lange S, Linguaglossa L, Rossi D, Zinner T and Hossfeld T (2021). Discrete-Time Modeling of NFV Accelerators that Exploit Batched Processing, ACM Transactions on Modeling and Performance Evaluation of Computing Systems, 6:3, (1-27), Online publication date: 30-Sep-2021.
- Palyvos-Giannas D, Mencagli G, Papatriantafilou M and Gulisano V Lachesis Proceedings of the 22nd International Middleware Conference, (365-378)
- Reghenzani F, Massari G and Fornaciari W (2019). The Real-Time Linux Kernel, ACM Computing Surveys, 52:1, (1-36), Online publication date: 31-Jan-2020.
- Yang C and Shinjo Y Obtaining hard real-time performance and rich Linux features in a compounded real-time operating system by a partitioning hypervisor Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, (59-72)
- Hwang J, Cai Q, Tang A and Agarwal R TCP ≈ RDMA Proceedings of the 17th Usenix Conference on Networked Systems Design and Implementation, (127-140)
- Awad M, Ashkiani S, Johnson R, Farach-Colton M and Owens J Engineering a high-performance GPU B-Tree Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming, (145-157)
- Wu X, Sherwood T, Chong F and Li Y Protecting Page Tables from RowHammer Attacks using Monotonic Pointers in DRAM True-Cells Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, (645-657)
- Lochmann A, Schirmeier H, Borghorst H and Spinczyk O LockDoc Proceedings of the Fourteenth EuroSys Conference 2019, (1-15)
- Gebai M and Dagenais M (2018). Survey and Analysis of Kernel and Userspace Tracers on Linux, ACM Computing Surveys, 51:2, (1-33), Online publication date: 31-Mar-2019.
- Garcia-Garcia A, Saez J, Castro F and Prieto-Matias M LFOC Proceedings of the 48th International Conference on Parallel Processing, (1-10)
- Carabaño J, Westerholm J and Sarjakoski T (2018). A compiler approach to map algebra, Geoinformatica, 22:2, (211-235), Online publication date: 1-Apr-2018.
- Chalios C, Georgakoudis G, Tovletoglou K, Karakonstantis G, Vandierendonck H and Nikolopoulos D (2018). DARE, International Journal of High Performance Computing Applications, 32:1, (74-88), Online publication date: 1-Jan-2018.
- Bushouse M and Reeves D Hyperagents Proceedings of the Eighth ACM Conference on Data and Application Security and Privacy, (212-223)
- Matias R and Ferreira A Kloadavg Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1122-1128)
- Abal I, Melo J, Stănciulescu Ş, Brabrand C, Ribeiro M and Wąsowski A (2018). Variability Bugs in Highly Configurable Systems, ACM Transactions on Software Engineering and Methodology, 26:3, (1-34), Online publication date: 12-Jan-2018.
- Wu Y, Wang F, Hua Y, Feng D, Hu Y, Tong W, Liu J and He D (2017). I/O Stack Optimization for Efficient and Scalable Access in FCoE-Based SAN Storage, IEEE Transactions on Parallel and Distributed Systems, 28:9, (2514-2526), Online publication date: 1-Sep-2017.
- Liu J, Li D, Yuan C, Liu H and Tang Y A Novel Pre-fetching Strategy of Memory Object Caching System Proceedings of the 12th Chinese Conference on Computer Supported Cooperative Work and Social Computing, (115-121)
- Stefanovici I, Schroeder B, O'Shea G and Thereska E (2017). Treating the Storage Stack Like a Network, ACM Transactions on Storage, 13:1, (1-27), Online publication date: 24-Mar-2017.
- Meyer R, Wagner J, Farkas B, Horsinka S, Siegl P, Buchty R and Berekovic M (2016). A Scriptable Standard-Compliant Reporting and Logging Framework for SystemC, ACM Transactions on Embedded Computing Systems, 16:1, (1-28), Online publication date: 28-Feb-2017.
- Feliu J, Sahuquillo J, Petit S and Duato J (2017). Perf&Fair, IEEE Transactions on Computers, 66:5, (905-911), Online publication date: 1-May-2017.
- Stefanovici I, Schroeder B, O'Shea G and Thereska E sRoute Proceedings of the 14th Usenix Conference on File and Storage Technologies, (197-212)
- Gottesman Y and Etsion Y NeSC The 49th Annual IEEE/ACM International Symposium on Microarchitecture, (1-12)
- Wen E, Seah W, Ng B, Liu X and Cao J UbiTouch Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing, (286-297)
- Donyanavard B, Mück T, Sarma S and Dutt N SPARTA Proceedings of the Eleventh IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, (1-10)
- Park J, Kang D and Eom Y File Defragmentation Scheme for a Log-Structured File System Proceedings of the 7th ACM SIGOPS Asia-Pacific Workshop on Systems, (1-7)
- Kim S, Kwon S, Kim J and Jeong J (2015). Controlling physical memory fragmentation in mobile systems, ACM SIGPLAN Notices, 50:11, (1-14), Online publication date: 28-Jan-2016.
- Hsiu P, Tseng P, Chen W, Pan C and Kuo T (2016). User-Centric Scheduling and Governing on Mobile Devices with big.LITTLE Processors, ACM Transactions on Embedded Computing Systems, 15:1, (1-22), Online publication date: 20-Feb-2016.
- Lelli J, Scordino C, Abeni L and Faggioli D (2016). Deadline scheduling in the Linux kernel, Software—Practice & Experience, 46:6, (821-839), Online publication date: 1-Jun-2016.
- Oliveira D and Oliveira R (2016). Timing analysis of the PREEMPT RT Linux kernel, Software—Practice & Experience, 46:6, (789-819), Online publication date: 1-Jun-2016.
- Song W, Choi H, Kim J, Kim E, Kim Y and Kim J PIkit Proceedings of the 25th USENIX Conference on Security Symposium, (37-51)
- Pietrantuono R, Russo S and Trivedi K Emulating environment-dependent software faults Proceedings of the First International Workshop on Complex faUlts and Failures in LargE Software Systems, (34-40)
- Kim M, Koo J, Lee H and Geraci J (2015). Memory Management Scheme to Improve Utilization Efficiency and Provide Fast Contiguous Allocation without a Statically Reserved Area, ACM Transactions on Design Automation of Electronic Systems, 21:1, (1-23), Online publication date: 2-Dec-2015.
- Kim S, Kwon S, Kim J and Jeong J Controlling physical memory fragmentation in mobile systems Proceedings of the 2015 International Symposium on Memory Management, (1-14)
- Ahmed I, Roussev V and Ali Gombe A Robust Fingerprinting for Relocatable Code Proceedings of the 5th ACM Conference on Data and Application Security and Privacy, (219-229)
- Wang T, Liu D, Wang Y and Shao Z (2015). Towards Write-Activity-Aware Page Table Management for Non-volatile Main Memories, ACM Transactions on Embedded Computing Systems, 14:2, (1-23), Online publication date: 25-Mar-2015.
- Chen D, Chen Y, Chen L, Hsu M and Chiang K (2015). A Machine Learning Method for Power Prediction on the Mobile Devices, Journal of Medical Systems, 39:10, (1-11), Online publication date: 1-Oct-2015.
- Kim H, Kim S, Jeong J and Lee J (2014). Virtual asymmetric multiprocessor for interactive performance of consolidated desktops, ACM SIGPLAN Notices, 49:7, (29-40), Online publication date: 25-Sep-2014.
- Kannan R, Jo J and Go H Improved event driven architecture for tizen sensor framework Proceedings of the 1st International Conference on Mobile Software Engineering and Systems, (75-78)
- Tseng P, Hsiu P, Pan C and Kuo T User-Centric Energy-Efficient Scheduling on Multi-Core Mobile Devices Proceedings of the 51st Annual Design Automation Conference, (1-6)
- Kim H, Kim S, Jeong J and Lee J Virtual asymmetric multiprocessor for interactive performance of consolidated desktops Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, (29-40)
- de Oliveira D and de Oliveira R Mapping of the synchronization mechanisms of the Linux kernel to the response-time analysis model Proceedings of the 29th Annual ACM Symposium on Applied Computing, (1543-1544)
- Abal I, Brabrand C and Wasowski A 42 variability bugs in the linux kernel Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, (421-432)
- Chen S, Lin H, Chen K, Chang Y, Yew P and Ho C A systematic methodology for OS benchmark characterization Proceedings of the 2013 Research in Adaptive and Convergent Systems, (404-409)
- Lameter C (2013). NUMA (Non-Uniform Memory Access): An Overview, Queue, 11:7, (40-51), Online publication date: 1-Jul-2013.
- Lameter C (2013). An overview of non-uniform memory access, Communications of the ACM, 56:9, (59-54), Online publication date: 1-Sep-2013.
- Salomie T, Alonso G, Roscoe T and Elphinstone K Application level ballooning for efficient server consolidation Proceedings of the 8th ACM European Conference on Computer Systems, (337-350)
- Jeong J, Kim H, Hwang J, Lee J and Maeng S (2013). Rigorous rental memory management for embedded systems, ACM Transactions on Embedded Computing Systems, 12:1s, (1-21), Online publication date: 1-Mar-2013.
- Kim H, Jeong J, Hwang J, Lee J and Maeng S Scheduler support for video-oriented multimedia on client-side virtualization Proceedings of the 3rd Multimedia Systems Conference, (65-76)
- Bathen L, Gottscho M, Dutt N, Nicolau A and Gupta P ViPZonE Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, (33-42)
- Khoroshilov A, Mutilin V, Novikov E, Shved P and Strakh A Towards an open framework for c verification tools benchmarking Proceedings of the 8th international conference on Perspectives of System Informatics, (179-192)
- Ko B, Kim Y and Kim T Performance improvement of I/O subsystems exploiting the characteristics of solid state drives Proceedings of the 2011 international conference on Computational science and its applications - Volume Part III, (528-539)
- Gotsman A and Yang H Modular verification of preemptive OS kernels Proceedings of the 16th ACM SIGPLAN international conference on Functional programming, (404-417)
- Gotsman A and Yang H (2011). Modular verification of preemptive OS kernels, ACM SIGPLAN Notices, 46:9, (404-417), Online publication date: 18-Sep-2011.
- Chu S, Hsiao C, Chiu P and Lin H User adjustable process scheduling mechanism for a multiprocessor embedded system Proceedings of the 6th WSEAS international conference on Applied computer science, (346-351)
- Choi J, Baek S and Shin S Design and implementation of a kernel resource protector for robustness of Linux module programming Proceedings of the 2006 ACM symposium on Applied computing, (1477-1481)
- Corrêa M, Zorzo A and Scheer R Operating system multilevel load balancing Proceedings of the 2006 ACM symposium on Applied computing, (1467-1471)
- Lin B, Dinda P and Lu D User-Driven Scheduling of Interactive Virtual Machines Proceedings of the 5th IEEE/ACM International Workshop on Grid Computing, (380-387)
Index Terms
- Linux Kernel Development