Systems Programming with C
Reading through Computer Systems: A Programmer's Perspective and hands-on practice
In this series I’ll be diving into “Computer Systems: A Programmer’s Perspective” (CSAPP). Honestly? The core of how computers actually work has always been a bit fuzzy to me. I’ve picked up bits and pieces here and there over the years. A little bit of C, some assembly here, a bit about memory there. But never really sat down and built a solid foundation. That’s what I’m doing now.
The authors of CSAPP make a point that really resonates with me:
In fact, we believe that the only way to learn systems is to do systems, either working concrete problems or writing and running programs on real systems.
That’s exactly my approach. No shortcuts.
Speaking of exercises, they have this nice little difficulty indicator system that helps you know what you’re getting into:
- ♦ Few minutes
- ♦♦ Up to 20 minutes
- ♦♦♦ Perhaps 1-2 hours
- ♦♦♦♦ Requires up to 10 hours
What I’m Learning
This book is focused more on the software side of systems programming. For the hardware side, I’ve heard amazing things about nand2tetris. I haven’t done it myself thought.
The CSAPP website at https://csapp.cs.cmu.edu/ has some really valuable resources that I’m planning to use:
- Web Asides: These enhance the book content even further with additional context and examples
- Labs: Longer, more involved problems that really help solidify the knowledge
This is going to take a lot of time and be slow due to life. But I’ll be sharing what I learn along the way.
Articles in this series (1)
What happens when we compile and run the hello world program?