6.828 Operating System Engineering

Fall 2006

Sun Solaris 9 operating system on an MIT Athena workstation.
Sun Solaris™ 9 operating system on an MIT Athena workstation. (Image by MIT OCW.)

Course Highlights

This course features all of its labs and assignments, both of which help the students develop their own operating system by the end of the semester. The lectures help to familiarize students with the main concepts needed to engineer an operating system.

Course Description

6.828 teaches the fundamentals of engineering operating systems. The following topics are studied in detail: virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, interprocess communication, coordination of concurrent activities, and the interface between software and hardware. Most importantly, the interactions between these concepts are examined. The course is divided into two blocks; the first block introduces an operating system, xv6, which runs on x86 SMPs and provides the basic Unix semantics of Unix v6. The second block of lectures covers important operating systems concepts invented after Unix® v6, which was introduced in 1976.

Technical Requirements

Special software is required to use some of the files in this course: .zip.

*Some translations represent previous versions of courses.

Donate Now


Prof. Frans Kaashoek

Course Meeting Times

Two sessions / week
1.5 hours / session




Archived Courses

Previous version