MIT 6.828: Operating System Engineering

Build an operating system from the ground up. One of the most hands-on OS courses available.

About This Course

MIT 6.828 is a hands-on course where you study the design and implementation of operating systems by building one. The course uses xv6, a simple Unix-like teaching OS written in C, as a vehicle for understanding kernel internals.

Students extend xv6 with new features through a series of labs, gaining deep understanding of how operating systems manage hardware resources.

What You Will Learn

  • Boot Process: How a computer starts up and loads the kernel
  • Virtual Memory: Page tables, address spaces, memory protection
  • Processes and Threads: Creation, scheduling, context switching
  • System Calls: The interface between user programs and the kernel
  • Interrupts and Traps: Hardware interrupts, exceptions, system call dispatch
  • File Systems: On-disk layout, caching, crash recovery, logging
  • Concurrency: Locks, condition variables, deadlock prevention
  • Networking: Network drivers, protocol stacks at the kernel level

Prerequisites

Strong C programming skills. Computer architecture basics (MIT 6.004 or equivalent).

Course content belongs to MIT. Licensed under Creative Commons.