6.1810 | Fall 2023 | Undergraduate

Operating System Engineering

Course Description

This is a course on the design and implementation of operating systems and their use as a foundation for systems programming. Topics covered include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; and interprocess communication, coordination, and interaction between software …
This is a course on the design and implementation of operating systems and their use as a foundation for systems programming. Topics covered include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; and interprocess communication, coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.
Learning Resource Types
Labs
Online Textbook
Lecture Notes
An opened laptop sitting on a chair, with a blue dialog screen showing.
A dialog screen from the installation process for the Windows operating system. (Photo courtesy of IG on Flickr. License: CC BY.)