Baking Pi – Operating Systems Development
FreeLearn OS development from scratch with Raspberry Pi and assembly
FreeFree tier
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.