It is important that you develop your code in the same computing environment that we will use to test your code. We are using the CIS Undergraduate Computing Lab Servers as the standard for this course. You may either ssh into these machines remotely or download a snapshot of the machines and run them as a VM on the local machine of your choice.
Our primary textbook is Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. This book is available for free online, but you can also get the PDF or get a printed copy. We also recommend Operating Systems: Principles and Practice (2nd Edition), by Tom Anderson and Mike Dahlin. You can find this in the bookstore or on Amazon or you can buy the ebook version which is split into volumes one, two, three, and four. There are two copies of this textbook on reserve at Uris library for this class. Finally, UIUC has a free crowdsourced text (mostly written by staff).
Suggested Additional readings:
Supplementary: Those of you looking for a primer/refresher on computer architecture material should read Chapters 3.1-3.11, 4.1-4.5, 5.1-5.3, 7.1-7.4, 8.1-8.5 in "Computer Organization & Design: The Hardware/Software Interface" by Patterson and Hennessy. The chapter numbers are from the 2nd edition -- the library has it, or you can find the content listing online and map it to whatever edition you actually have. Keep in mind that this material is purely supplementary: the tests will focus on the OS side of the content in the course and not on architecture. But there are some overlaps with the OS side of the content and the material covered in these chapters, so it may be helpful to those who may have forgotten it.