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).
External Links
Course content belongs to MIT. Licensed under Creative Commons.