Brushing up on operating systems and C programming

If you were like me in college, you first learned about the C programming language in an introductory computer science course. Then, perhaps you took a really hard course in operating systems. Then, you never thought deeply about those concepts ever again.

Given that many software engineering generalists today work in higher level languages, I find that pattern of behavior to be common. Yet, I often encounter situations where I wish I remembered something about C or operating systems, whether it be for an optimization I’m making, a new project I’m starting, or a reference I’m trying to understand.

It’s hard to find good tutorials to refresh one’s memory of these subjects, so I want to share a few that I found useful.

Think OS is an accessible, conversational introduction to operating systems. Read it from start to finish or flip to the chapters discussing concepts you want to brush up on. Alternatively, you can reach for one of the many legendary OS textbooks out there like MOS, but I find that Think OS contains just the right level of detail I’m looking for.

Snaptoken Tutorials walk you through writing substantial C language projects and explain underlying concepts along the way. As of now, the only tutorial up is for a text editor, but it’s fantastic.

The GNU C Programming Tutorial is a wonderfully organized reference for C programming. It’s an excellent resource to look something up.

This is by no means an exhaustive list; I may even add to it in the future. But I felt it’s worth sharing now because I wish I had discovered them earlier.

January 2018

Hacker News