Baking Pi – Operating Systems Development logo

Baking Pi – Operating Systems Development

Free

Learn OS development from scratch with Raspberry Pi and assembly

FreeFree tier
Type
Open Source
Company
University of Cambridge (Department of Computer Science and Technology)

About Baking Pi – Operating Systems Development

Baking Pi – Operating Systems Development is a free, open-source tutorial course by Alex Chadwick, hosted by the University of Cambridge's Department of Computer Science and Technology. It guides learners through building basic operating systems for the Raspberry Pi using ARMv6 assembly language. The course consists of progressive lessons that combine theoretical concepts with practical exercises and complete model answers. It covers topics from LED control and screen output to keyboard input, and includes troubleshooting guides and an ARM reference. The project is also available on GitHub for community contributions.

Key Features

Step-by-step lessons from introduction to input handling
Practical exercises with full model answers
Teaches operating systems development in ARMv6 assembly code
Focused on Raspberry Pi hardware (models A, B, not B+/A+ or Pi 2)
Includes troubleshooting guide and ARM reference
Open source on GitHub for community contributions

Pros & Cons

Pros
  • Free and open source with no licensing costs
  • Created by University of Cambridge's Computer Laboratory
  • Hands-on approach with practical exercises and answers
  • Accessible to motivated beginners with basic programming experience
  • Well-structured lessons build knowledge incrementally
Cons
  • Not updated for Raspberry Pi models B+, A+, or Pi 2 (some lessons may not work)
  • Requires a separate development computer (Linux, Windows, or Mac)
  • Limited to ARMv6 assembly language; not a general OS development course
  • Only covers very basic operating system concepts

Best For

Learning operating systems development fundamentalsTeaching computer science concepts at university or self-studyHobbyist Raspberry Pi projects in low-level programmingUnderstanding boot process and hardware interaction on ARM

FAQ

What hardware is required for this course?
You need a Raspberry Pi (original models A or B) with an SD card and power supply. A separate computer (Linux, Windows, or Mac) is required for development and writing the SD card. A screen and keyboard for the Pi are helpful but not essential.
Do I need prior knowledge of operating systems or assembly?
No, the course assumes no prior knowledge of operating systems development or assembly code. Some programming experience is helpful but not strictly required.