dddrrreee/cs140e-20win logo

dddrrreee/cs140e-20win

Free

cs140e course materials.

FreeFree tier
Type
Open Source

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.