MIT · on MIT OpenCourseWare

Operating System Engineering (6.828)

4.9(2,800) on MIT OpenCourseWare·380K enrolled
Advanced 50 hours EnglishFREE
SkillsOperating systemsKernel developmentCSystems programmingConcurrencyMemory management

Is this course right for you?

Our take
Worth it if you are a strong programmer who wants to understand operating systems by building one. It is free from MIT.

Good for: strong programmers who want deep, hands-on operating-systems knowledge.

Skip if: you are not comfortable with C and systems programming, or you want a certificate.

You implement a Unix-like kernel in C — processes and scheduling, virtual memory, file systems, device drivers — with Frans Kaashoek and Robert Morris teaching at real research depth. It is the course that turns the OS from a black box into something you understand from the inside.

It is demanding and assumes solid C and low-level comfort, so it is not for anyone new to that, and there is no certificate from the free materials. If you want a gentler, higher-level overview, take an intro course instead. The material is foundational and still relevant.

Comparison · LBS

Compare alternatives for Operating System Engineering (6.828)

Same topic, different options. We surface the trade-offs others hide so you can pick the course that actually fits your time, budget, and goals.
MIT OpenCourseWare4.9(2,800)
Operating System Engineering (6.828)
Price
Free
Completely free, openly licensed — no certificate
Duration
50 hrs
Level
Advanced
Certificate
freeCodeCamp4.8(15,000)
JavaScript Algorithms and Data Structures Certification
Price
Free
Completely free, forever
Duration
300 hrs
Level
Intermediate
Certificate
Course Certificate
MIT OpenCourseWare4.9(8,000)
Introduction to Algorithms (6.006)
Price
Free
Completely free, openly licensed — no certificate
Duration
45 hrs
Level
Intermediate
Certificate
Stanford Online4.8(4,500)
CS107: Programming Paradigms
Price
Free
Free lecture materials available online
Duration
45 hrs
Level
Intermediate
Certificate
Prices & availability can change — confirm on the provider's site. We're not affiliated with any single provider.

About this course

MIT 6.828 is the operating systems course where students actually build one — implementing a Unix-like kernel called JOS in C, handling processes and scheduling, memory management and virtual memory, file systems, and network device drivers. Frans Kaashoek and Robert Morris teach it with the depth expected of MIT researchers.

Instructor

FK
Frans Kaashoek / Robert Morris
MIT OpenCourseWare instructor
380K+ learners6 courses4.9 instructor rating

Taught by Frans Kaashoek and Robert Morris, MIT EECS faculty who are also developers of the xv6 educational OS and recognized systems researchers.

Frequently asked questions

No. This is MIT OpenCourseWare, so you get the lectures, labs, and readings free to study on your own, but there is no enrolment, no grading by MIT, and no certificate at the end. The reward is genuine understanding and the labs you complete yourself — which, for a course this demanding, tends to matter more to the people who take it than any paper credential would.

Solid C programming is essential, along with comfort with computer architecture and some assembly — RISC-V in the current versions. This is a demanding upper-level course, and without confident systems-level C the labs, which have you extending a real operating-system kernel, will be overwhelming rather than instructive. It is emphatically not a first programming course or a place to learn C along the way.

Very. It is rated among MIT's most demanding courses, with roughly a hundred and fifty hours of work and labs that have you modifying a real operating system rather than answering quiz questions. It is deeply rewarding for the right person, but not something to attempt casually or as your first systems course — go in expecting it to stretch you, with the prerequisites genuinely in place.

Yes. What many still call 6.828 is now taught as 6.S081 and, more recently, 6.1810, and the modern versions use the xv6 teaching operating system on RISC-V rather than the older x86 setup. When you go looking for materials, seek out the most recent OCW version so you get the current labs and the RISC-V codebase rather than following an outdated x86 iteration.

For anyone serious about systems programming, yes. Working through the xv6 source and labs teaches how virtual memory, file systems, and system calls actually work at a level few other resources convey so concretely — you build understanding by modifying a real kernel, not by reading about one. It is widely used for self-study and pointed to as a benchmark systems course by learners worldwide.
Free
to audit
Enroll now