CSE481A – Operating Systems Capstone

Time: TTH 11.30am - 12.50pm
Location: BAG 108
Instructor: Simon Peter
TA: Rajath Shashidhara

This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems.

We will cover key design issues in implementing an operating system, such as memory management, inter-core synchronization, scheduling, protection, inter-process communication, device drivers, and file systems, paying particular attention to system designs that differ from the traditional monolithic arrangements of Unix/Linux and Windows.

The goals of the course are:

Prerequisites: This course builds on the operating systems course (CSE 451), the contents of which will be assumed knowledge. Proficiency in C programming is assumed.

Project: The course is structured around a significant project which builds up, over the course of the semester, a fairly complete operating system for NXP's ARMv8-based i.MX 8X hardware. The OS is based on the Barrelfish open-source multikernel originally developed at ETH Zurich in collaboration with Microsoft Research.

Lectures: Where practical, lectures will align with project-related material (to provide more background, knowledge, and time in completing the practical work), and also the prior research ideas that have informed the design of the aspects of Barrelfish relevant to the project milestones. They will also provide comparisons between Barrelfish and other systems such as Unix, Windows, and microkernels like L4.

Discussion: Instead of email, we will use EdStem for class and project discussion and Q&A (access via the class Canvas page).

Readings: The project requires you to read the AOS book (link below). It contains all milestone descriptions, lecture notes, background, and helpful tips. The Multikernel research paper is required reading (link in calendar below) for the project tutorial lecture. Each lecture will also offer a number of research papers for students to optionally read for additional background and descriptions of ideas that may be used as project designs.

Grading: Grading is based on the project. Throughout the class, students will be working in groups of 3-4 on the project. The project is sub-divided into milestones that are assigned and graded in weekly intervals (some milestones are multi-week). Each milestone will be individually graded and the final grade is a composition of these grades.

Class schedule

Resources