Operating Systems Design and Implementation


Stanford Winter 2019

This is an experimental course offering. Students will implement a simple, clean operating system (virtual memory, processes, file system) in C on a rasberry pi computer and use the result to run a variety of devices. Students should expect the course to have rough edges since it is the first offering. The course will consist of CS140 lectures followed by labs and projects that focus on developing an OS on a raspberry pi. The course load will be comparable to CS140 with the main difference being the assignments. Course Overview

Course Information

Lecture: Mon/Wed 3:00–4:20 PM Skilling Auditorium

Labs: Mon/Wed 6:00-8:00 PM Gates 463A

Instructor: Dawson Engler

Course Assistant: Holly Chiang (Office Hours Tues 1:00-3:00 pm Gates 2B lounge)

Class Discussion: cs140e-win19 Google Group

Textbook: Operating Systems: Three Easy Pieces

Course Structure

The course grading breakdown is as follows:

Labs (60%) Four labs to build up an OS (bootloader, threads, virtual memory, file system), and an open ended final project with an expense account at sparkfun/adafruit. For each project, 50% of score based on passing test cases, 50% on design and style.

Exams (25%)
Midterm: Wednesday Febuary 13th 3:00-4:20 PM (in class)
Final: Monday March 18th 3:30-6:30 PM
Grade determined based on: max(midterm > 0 ? final : 0, 0.5(midterm + final))

Participation(20%)