August 1st, 2024

Baking Pi – Operating Systems Development

Baking Pi is a tutorial course for ages 16+, teaching basic operating system development on Raspberry Pi. It includes practical exercises, requires specific hardware, and encourages community contributions via GitHub.

Read original articleLink Icon
Baking Pi – Operating Systems Development

Baking Pi is a tutorial course designed for individuals aged 16 and older, focusing on the development of basic operating systems using the Raspberry Pi. Created by Alex Chadwick, the course is structured into a series of lessons that guide users through the process of operating system development in assembly code. While prior knowledge of operating systems or assembly is not required, some programming experience may be beneficial. The course includes practical exercises and theoretical explanations, allowing learners to understand and implement various tasks related to operating systems.

Participants need a Raspberry Pi, an SD card, and a power supply, along with a separate computer running Linux, Windows, or Mac OS X for development purposes. A GNU compiler toolchain targeting ARMv6 processors is also necessary for converting source code into executable files for the Raspberry Pi. The lessons cover topics such as enabling the 'OK' LED, using functions in assembly, graphics display, and creating a command line interface. Although the course has not been updated for newer Raspberry Pi models, it remains a valuable resource for those interested in exploring operating systems development. The community is encouraged to contribute to the tutorial via GitHub, fostering collaboration and improvement of the content.

Link Icon 6 comments
By @alphabetter - 8 months
[2012] based on the copyright.

Note the disclaimer: "This course has not yet been updated to work with the Raspberry Pi models B+ and A+. Some elements may not work, in particular the first few lessons about the LED. It has also not been updated for Raspberry Pi v2."

And presumably not updated for the Pi 3,4,5 too!

By @wsc981 - 8 months
This guy is using the course to make his own little Raspberry Pi OS, or at least it seems so looking at the README.

Though his OS is mainly written in C, while I believe the course is mostly or all assembly.

https://github.com/mustafa-khann/tinyos

By @AdrianoKF - 8 months
Reminds me of the experimental version of Stanford's CS 140/212, CS 140e, which used Rust to develop a simple operating system kernel for the Raspberry Pi 3B:

- Course web page: https://cs140e.sergio.bz/

- Accompanying material by the instructor: https://github.com/dddrrreee/cs140e-24win

Disclaimer: I've only worked through the course materials when it launched in '18, haven't actually taken the course physically, so YMMV.