Course Management

Computing Environment

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.

  • SSH OPTION: the simplest method is to ssh into the machines remotely. There are 10 of them (, ... If you simply ssh into you will be randomly connected to one of them. (This offers good load-balancing. There is just one file system so it doesn't matter which one you log on to.)
  • VM OPTION: to run a VM in VirtualBox on your local machine:
    1. Install VirtualBox
    2. Download the CS VM 2017 file
    3. Launch the .ova file downloaded and accept defaults to import into VirtualBox.
    4. Default username: vm and password: vm

Coding Resources


Our primary textbook is 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.

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.