Operating Systems in Three Easy Pieces. The Arpaci-Dusseau team has an
excellent textbook Three Easy Pieces.
The book is closely
matched to the needs of the class at least through the first six
weeks. In the second half of the class we will move away from core
OS topics and toward networked/distributed systems.
Dynamic Memory Management, Bryant and O'Hallaron, CS:APP textbook (Best read with view mode: facing pages/two-pages per window).
Writing
Solid Code is a Microsoft view of software development in C. It
is worth absorbing the philosophy and many essential
lessons in this book. Some people love this book. It also has its
detractors. Unofficial pdf copies do exist on the web.