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 (cisugcl01.cs.cornell.edu, ... cisugcl10.cs.cornell.edu). If you simply ssh into ugclinux.cs.cornell.edu 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

Textbooks

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:

  • On Operating Systems Implementation:
  • On concurrent programming:
  • On networking:
    • This course also has a networking portion. There is no required textbook but students often ask for a resource recommendation. We recommend Computer Networking: A Top-Down Approach by Kurose and Ross. In an effort to create a cost-effective option for this second textbook, we have created a collection of the first 5 chapters of the 6th edition for you to purchase electronally if you wish.
      (Click on the link above to purchase access to the course materials. If you already have a Pearson user account, sign-in with your username/password; if you do not, you will be asked to create a Pearson account prior to purchasing the course materials.) Please note this book goes into far more detail than we do in class.

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.