dddrrreee/cs140e-20win
Freecs140e course materials.
FreeFree tier
About dddrrreee/cs140e-20win
CS140E is a lab-based embedded operating systems course taught by Engler in Winter 2020. Students build a simple, clean OS for the ARM-based Raspberry Pi A+, including interrupts, threads, virtual memory, and a file system. The course emphasizes working directly with primary hardware documents such as the Broadcom and ARM6 manuals and uses real hardware instead of simulators. By the end, students gain a concrete understanding of computation on real hardware and have a base for sensor-based projects. The course is designed for those who write code well or are willing to devote significant time to learn systems programming.
Key Features
Lab-based course with no explicit lectures
Build a simple OS for Raspberry Pi A+ (ARM-based)
Covers interrupts, threads, virtual memory, and file system
Uses real hardware instead of a simulator
Works directly with primary sources (Broadcom, ARM6 manuals)
Almost all code written by students
Includes folders: labs, homework, projects, libpi, firmware, docs, support
Pros & Cons
Pros
- Real hardware experience provides concrete understanding of computation
- Emphasizes reading primary hardware documents, a valuable skill
- Students build their own OS from scratch, not just modify existing code
- Produces a usable embedded OS base for further projects
- Teaches how to work with Raspberry Pi and ARM architecture
Cons
- Requires strong coding skills or significant time commitment
- Not suitable for those looking for an easier alternative to CS140
- Limited to Raspberry Pi A+ hardware platform
- No explicit lectures; self-directed lab work may be challenging
- Course materials from 2020 may not reflect newer hardware or software
Best For
Learning embedded operating systems development from scratchUnderstanding ARM-based systems through hands-on experienceBuilding sensor-based embedded projects using a custom OSGaining practical skills in reading hardware datasheets
FAQ
What is CS140E?
CS140E is a lab-based embedded operating systems course taught by Engler in Winter 2020. Students build a simple OS for the Raspberry Pi and cover topics like interrupts, threads, virtual memory, and file systems.
Who should take this course?
Those who write code well or have a lot of time to devote, and are interested in systems topics. It is not recommended as an easier substitute for CS140.
How does CS140E differ from CS140?
CS140e uses real hardware (Raspberry Pi) instead of a simulator, involves reading primary hardware documents, and requires building most of the code yourself. It is about 80% of the coding work of CS140 but requires more strenuous thinking.
What hardware is used?
The course uses the Raspberry Pi A+ (ARM-based) as the target hardware.
What topics are covered?
Interrupts, threads, virtual memory, and a simple file system are built as part of the OS.