Fall 2014 :: CSE 506 - Operating Systems :: Section 2 (PhD)

Lab Assignments

In this section, we use the first 5 JOS lab assignments. You can find complete instructions for these labs here. The assignment due dates are posted on the Schedule page.

Paper Reading and Discussions

Occasionally in Part 1, and frequently in Part 2, there will be reading assignments. For each assignment, students should read the paper and participate in the related discussion on the newsgroup. Participation is mandatory! Your postings can include

  • points that you learned from the paper (and not already pointed out by previous posts),
  • your questions, comments or critiques about the paper,
  • answers to the questions, comments or critiques made by your classmates,
  • or discussion of other pieces of work that are closely related to the subject being discussed.
These discussion will determine a substantial chunk of you final grade.

Course Project

For your final project, you can either do a research project or a survey and presentation on one of the topics in Part 2 of the course. In either case, you should let me know of your decision and project proposal by the deadline posted on the Schedule page.

Research Project

You should choose a project that is related to Operating Systems. I have included a list of sample projects below, but you are more than welcome to propose your own topic as long as it is OS-related. I would especially encourage you to think of topics related to your thesis research. In any case, your project must have a significant OS-related component. Once you have an idea of what you would like to work on, you should send me a one-page write-up including 1) your group members name, 2) your project's title, 3) a brief section (one or two paragraphs) about the motivation and final goal of your project, and 4) a brief section (one or two paragraphs) on your implementation plan and final deliverable of your project.

Here are some examples and projects from previous offerings of the course. You can find more examples on Prof. Porter's CSE506 page.

  • Make the file system writeable and fault tolerant: using journalling or soft updates, etc.
  • Make JOS run on real hardware and demonstrate a compelling reason for running JOS on real hardware (e.g. performance)
  • Graphics with raw access to VGA frame buffer + compelling application to show it off
  • Port TCC (Tiny C Compiler) to JOS, so you can compile JOS programs in JOS
  • Add JOS support to LLVM backend to cross-compile JOS programs using LLVM
  • Add support for Loadable kernel modules to JOS
  • Add support for binary emulation of (static) Linux executables to JOS
  • Add SHM (IPC through shared memory) support to JOS
  • Add support for Unix-style pipes to JOS

If you prefer something more ambitious, researchy and perhaps long term, I have a list of ideas that you can work on. Let me know and we can schedule a meeting to discuss them. Examples include research on mobile operating systems or deterministic replay tools.


In this option, you will be assigned a set of papers and readings on one of the subjects to be covered in Part 2 of the course (about alternative OS architectures or OS security). You will then carefully read them and prepare a presentation. You will be in charge of one class session where you teach the assigned subject and lead the class discussion on it. You should also prepare a list of (5-10) questions on the subject for the whole class to discuss.

Here are some suggested topics and relevant papers: