My personal notes, programs, and labs as I work through Computer Systems: A Programmer's Perspective (CS:APP) by Bryant & O'Hallaron.
This isn't a polished project — it's a living document of me actually reading the book, breaking things, fixing them, and slowly understanding how computers work at a level that makes me slightly dangerous.
├── chapters/
│ └── chapter_N/
│ ├── notes/ ← markdown notes per section
│ └── programs/ ← code written while following along
├── labs/
│ ├── csapp_labs/ ← official CS:APP labs
│ └── self_test_labs/ ← my own experiments and exercises
└── csapp.pdf
Each chapter folder has notes broken down by section and programs that I actually compiled and ran — including the broken ones, because those teach you the most.
| Chapter | Topic | Status |
|---|---|---|
| 1 | A Tour of Computer Systems | ✅ In Progress |
| 2 | Representing and Manipulating Information | 🔲 |
| 3 | Machine-Level Representation of Programs | 🔲 |
| 4 | Processor Architecture | 🔲 |
| 5 | Optimizing Program Performance | 🔲 |
| 6 | The Memory Hierarchy | 🔲 |
| 7 | Linking | 🔲 |
| 8 | Exceptional Control Flow | 🔲 |
| 9 | Virtual Memory | 🔲 |
| 10 | System-Level I/O | 🔲 |
| 11 | Network Programming | 🔲 |
| 12 | Concurrent Programming | 🔲 |
- Notes are written in Markdown as I read — not summaries after the fact, but actual in-the-moment understanding being built up section by section.
- Programs are things I typed, compiled, broke, and fixed. Intermediate files (
.i,.s,.o) are kept intentionally so you can see each stage of the compilation pipeline. - Labs are where the real pain lives.
Goal: finish the book. No shortcuts.