- hardware → OS → kernel → virtualization → measurement → paper writing
- minimum redundancy
- maximum relevance to kernel / KVM / nested virtualization / systems research
Table 1 — Core spine
| Book | Authors | What it is for |
|---|---|---|
| The C Programming Language | Brian W. Kernighan, Dennis M. Ritchie | Your compact foundation for low-level C fluency and clean systems style. (Pearson) |
| Computer Organization and Design | David A. Patterson, John L. Hennessy | The gentlest hardware-first bridge: ISA, datapath, pipelines, caches, and the hardware/software interface. (Elsevier Shop) |
| Computer Systems: A Programmer’s Perspective | Randal E. Bryant, David R. O’Hallaron | Bridges C to the real machine: memory hierarchy, linking, exceptional control flow, virtual memory, performance. (Pearson) |
| Computer Architecture: A Quantitative Approach | John L. Hennessy, David A. Patterson, Christos Kozyrakis | The deep cost model book: caches, TLBs, NUMA, coherence, multiprocessors, and quantitative tradeoffs. (Elsevier Shop) |
| Operating Systems: Three Easy Pieces | Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau | Best first-principles OS model: virtualization, concurrency, and persistence; free online. (CS User Pages) |
| Linux System Programming | Robert Love | The Linux user/kernel boundary in practice: processes, threads, files, signals, timers, and IPC. (Amazon) |
| Linux Kernel Development | Robert Love | Your first inside-the-kernel systems book: scheduling, interrupts, timers, memory management, kernel design. (Pearson Technology Group) |
| The Linux Programming Interface | Michael Kerrisk | The long-term Linux/UNIX reference you keep nearby while building and debugging real systems. (man7.org) |
| Understanding the Linux Virtual Memory Manager | Mel Gorman | Crucial for your area: page tables, allocators, faults, zones, reclaim, and VM mental models. (Kernel.org) |
| Is Parallel Programming Hard, And, If So, What Can You Do About It? | Paul E. McKenney | Kernel-grade concurrency: RCU, memory ordering, synchronization, and shared-memory reasoning. (arXiv) |
| Hardware and Software Support for Virtualization | Edouard Bugnion, Jason Nieh, Dan Tsafrir | The virtualization backbone: architectural support, VT-x, nested virtualization, and hypervisor design. (Springer) |
Table 2 — Implementation and measurement stack
| Book | Authors | What it is for |
|---|---|---|
| Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3 | Intel | Not a normal book — the architecture rulebook for protection, paging, interrupts, APIC, VMX, and VT-x. Read it whenever KVM gets real. (Intel) |
| Systems Performance | Brendan Gregg | The methodology book for proving what is slow, why it is slow, and how to measure it properly. (brendangregg.com) |
| Learning eBPF | Liz Rice | Practical entry to eBPF: writing programs, loading them, and understanding observability/networking use cases. (GitHub) |
| BPF Performance Tools | Brendan Gregg | Operational observability: ready-to-use BPF workflows for tracing kernel and system bottlenecks. (brendangregg.com) |
| Linux Device Drivers | Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman | Older, but still valuable for modules, DMA, interrupts, and device-model thinking. (LWN.net) |
| The Art of Multiprocessor Programming | Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear | Stronger theory of multicore synchronization, concurrent objects, and algorithmic concurrency tradeoffs. (ScienceDirect) |
| TCP/IP Illustrated, Volume 1 | W. Richard Stevens, Kevin R. Fall | The networking book I’d keep: packet-level intuition and protocol behavior that actually helps systems debugging. (Apple) |
Table 3 — Support shelf and paper craft
| Book | Authors | What it is for |
|---|---|---|
| Writing for Computer Science | Justin Zobel | Turns good technical work into a readable, convincing systems paper. (Springer) |
| The Craft of Research | Wayne C. Booth, Gregory G. Colomb, Joseph M. Williams, Joseph Bizup, William T. FitzGerald | Helps you turn vague ideas into research questions, claims, evidence, and argument. (University of Chicago Press) |
| Understanding the Linux Kernel | Daniel P. Bovet, Marco Cesati | Useful as a historical/internal-structure reference, but not a current-kernel authority. (Amazon) |
| Expert C Programming | Peter van der Linden | Good for sharpening C intuition and avoiding low-level mistakes once you are already coding heavily in C. (Amazon) |
Final reading order
If you want the order as one single sequence:
-
The C Programming Language
-
Computer Organization and Design
-
Computer Systems: A Programmer’s Perspective
-
Computer Architecture: A Quantitative Approach
-
Operating Systems: Three Easy Pieces
-
Linux System Programming
-
Linux Kernel Development
-
The Linux Programming Interface
-
Understanding the Linux Virtual Memory Manager
-
Is Parallel Programming Hard?
-
Hardware and Software Support for Virtualization
-
Intel SDM Volume 3
-
Systems Performance
-
Learning eBPF
-
BPF Performance Tools
-
Linux Device Drivers
-
The Art of Multiprocessor Programming
-
TCP/IP Illustrated, Volume 1
-
Writing for Computer Science
-
The Craft of Research
-
Understanding the Linux Kernel
-
Expert C Programming
This is the final list I’d stand behind for your PhD direction.
If you want, next I’ll turn this into a 12-month reading + implementation schedule with what to code after each book.