Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Course · OtherFree

MIT 6.1810: Operating System Engineering

MIT's operating systems engineering course, built around xv6, a small Unix-like teaching kernel for RISC-V. The schedule, readings and labs are published openly, and the labs ask you to add system calls, page table features, copy-on-write, locking and file system changes to a real kernel. It is the natural next step after a textbook course.

xv6-riscv GitHub stars

10.5k

GitHub (mit-pdos/xv6-riscv) · Sept 2026

Format

Course

Topic

Other

Provider

MIT PDOS

Time needed

One semester

Level

Advanced

Access

Free

What it is

6.1810 (previously numbered 6.S081 and 6.828) is MIT's undergraduate course on operating system engineering, run by the Parallel and Distributed Operating Systems group. It is taught around xv6, a small re-implementation of Unix Version 6 for RISC-V processors, with a companion book that explains the kernel's source code. The course website publishes the schedule, readings, the xv6 book, lab instructions and tool setup guides, and the site redirects to the current year's edition.

What you do

The labs are the heart of the course. Recent editions include labs on system calls, page tables, traps, copy-on-write fork, a network driver, locks, the file system and memory-mapped files. Each lab has you read the relevant part of the kernel, then change it and pass a set of tests. You run xv6 in the QEMU emulator on your own machine, so no special hardware is needed.

Who it is for

This is an advanced resource. You should already understand processes, virtual memory, concurrency and file systems at the level of a textbook such as OSTEP, and be comfortable reading and writing C and using a debugger such as GDB. It suits students who have finished a first operating systems course and want to see how the ideas are implemented, and engineers heading towards systems, embedded or infrastructure work.

Why it is worth your time

Reading about page tables is different from debugging a kernel panic because your page table is wrong. These labs force exact understanding, and xv6 is small enough to read in full, unlike Linux. Finishing even three or four labs is a strong signal of systems depth.

Free or paid

All materials on the course site are free to use for self-study. You will not get grading or a certificate as an outside learner, but the labs come with test scripts, so you can check your own work. Please respect academic integrity if you are a student at a university that uses the same labs, and do not publish solutions.

How to use it

Set up the toolchain from the course's tools page first; this step takes some patience on Windows, where WSL helps. Read the xv6 book chapter before each lab, attempt the lab without searching for solutions, and use GDB to step through the kernel when stuck.

Common questions

Is it better than OSTEP? They do different jobs. OSTEP teaches the concepts clearly; 6.1810 makes you implement them. Most people benefit from OSTEP first.

Are the lectures recorded? Check the current year's schedule page; availability of recordings changes between editions.

computer sciencefree courseopen sourcecpp

Ready to start?

Opens on MIT PDOS in a new tab.

Open resource
Link broken or out of date?

Report a problem

With "MIT 6.1810: Operating System Engineering". Only Tauseef reads this.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.