Highlight of This Year’s Projects

  • Carolyn Ortega, Justin Shafer, Evaluation of Real Time Operating Systems using Symbolic Execution
  • Ziyan Wang, Kaiyue Wu, Tamago: a microkernel implemented in Rust
  • Steven Cheng, Process Separating File System for Better Data Protection


The reading assignments of the course expose you, the reader (reviewer), to influential ideas in the design space of operating systems and help you learn to critique them. The other main component of the course is an open project that gives you the chance to switch roles to be the writer (author): you propose an idea related to systems in general, motivate it, implement a prototype system that demonstrates its efficacy through experiments, and then write up a formal report that can convince others that it is a good idea. The project can be done in group of two students (or three if the amount of work is substantial). Please use the SOSP 2017 submission template to format your report.


The best outcome for a project that is well done is that it can eventually be suitable for publication at some major systems conference. The minimum expectation for the project is that it should at least be interesting: it could be directly motivated to tackle an existing important real-world problem, e.g., system misbehavior in cloud environment, it could be trying to measure and improve an existing system, especially ones that are discussed in class, or it could be some crazy idea that nobody believes will work (initially). In other words, even if the project may not yield a real publication, it should at least have some intellectual depth and research flavor that readers can learn something.


I have provided some suggested topics in the class blog. But you are encouraged to come up with your own. You can also propose project that involves your own research to some extent, e.g., robotics, networking, or that leverages multiple classes you have taken. I will meet with you several times during the semester to help you refine the project and guide the direction along the way.

Deliverable #1: Proposal

In the proposal, briefly describe the problem you would like to tackle, why the problem is important or interesting, what you plan to propose, what is the challenge in your solution, and a timeline for your project. The proposal should be at most 2 pages and include your group member’s name and email. The proposal only needs to be submitted by one of the group members.

Deliverable #2: Checkpoint Report

In the middle of the semester, submit a 2-to-3-page checkpoint report to describe the status of your project, the solution you have build so far and some initial results. The report only needs to be submitted by one of the group members.

Deliverable #3: Final Report

The final report should look like a research paper. It motivates the importance of the problem you are tackling, potentially with some concrete evidence or data points, and why existing solutions do not solve the problem well. Then describes what are you proposal, what challenges you need to address, how do you address them, why your idea is better, what are your system design and implementation. Lastly shows the experiment results and do they match what your expectations are and convince others.

There are no hard restrictions on the page limit on the final report because papers do not need to be long to be great (fun fact: the famous Molecular Structure of Nucleic Acids paper is only 1-page-long!). But a reasonable final report is probably around 6 to 10 pages.

Deliverable #4: In-Class Presentation

Each project team will be given a slot to do a presentation in class to show the cool ideas and results to other students. A live demo of the system you developed would be a nice element of the presentation.

Deliverable #5: Source Code

You will be required to turn in your source code and any documentation so that we can inspect it.