Stanford CS104e - An Experimental Course on Operating Systems
FreeBuild your own embedded OS for the Raspberry Pi
About Stanford CS104e - An Experimental Course on Operating Systems
Stanford CS104e (CS140e) is an experimental, lab-based operating systems course where students build their own simple, clean OS for the ARM-based Raspberry Pi from scratch. There are no explicit lectures; instead, the course consists of two two-to-three hour labs per week, with an optional Friday discussion section. By the end of the quarter, students implement interrupts, threads, virtual memory, and a simple file system. The course emphasizes working directly with primary sources such as the Broadcom and ARM6 manuals and various datasheets, teaching students how to read and act on technical documentation. Unlike traditional OS courses, CS140e uses real hardware instead of a simulator, and almost all code is written by the student. The class is intended for students who write code well or are willing to invest significant time, and it can substitute for the standard CS140 (including for PhD students needing an OS breadth requirement). The outcome is a working embedded system that can serve as a base for sensor-based or embedded projects.
Key Features
Pros & Cons
- Real hardware experience rather than simulation
- Emphasis on reading and applying technical datasheets
- Significant hands-on coding with minimal scaffolding
- Course output is a working OS useful for real projects
- Small class format with optional discussion sections
- Requires strong coding skills or significant time commitment
- No formal lectures; learning is self-directed via labs
- Challenging for students not already interested in systems
- Must be comfortable with primary source documentation