6.828 Operating System Engineering, Fall 2003
Sun Solaris™ 9 operating system on an MIT Athena workstation. (Image courtesy of MIT OCW.)
Highlights of this Course
Students in this course develop their own operating system by the end of the semester, through the completion of a series of lab assignments. The lectures help to familiarize students with the main concepts needed to engineer an operating system.
» Download the complete contents of this course.
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 one operating system, UNIX® v6, in detail. The second block of lectures covers important operating systems concepts invented after UNIX® v6, which was introduced in 1976.
Technical Requirements
File decompression software, such as Winzip® or StuffIt®, is required to open the .zip files found on this course site. Any number of development tools can be used to compile and run the .c files found on this course site. Please refer to the course materials for any specific instructions or recommendations.