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 articleBaking 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.
Related
Writing GUI applications on the Raspberry Pi without a desktop environment
This article explains writing GUI applications on a Raspberry Pi without a desktop environment. It covers interacting with the framebuffer, configuring resolutions, using low-level interfaces, Raylib library, and optimizing CPU usage.
Kernel tweaks improve Raspberry Pi performance, efficiency
Development efforts for Raspberry Pi include kernel tweaks like "Suspend to idle" for older models and NUMA support for Pi 5, improving performance and power efficiency. These advancements demonstrate adapting techniques for better computing.
A Mini Monitor for a Pi
The author shares a project using a 2-inch display as a Raspberry Pi monitor, creating a handheld console. Details include wiring, SPI communication, display mirroring for tasks like coding and web browsing, hardware setup, communication protocol, and a system service for seamless display experience.
Introduction to Hardware Hacking with a Raspberry Pi
The article explores hardware hacking with a Raspberry Pi, introducing the PiFex tool. It details setting up a Raspberry Pi for hardware reverse engineering, including enabling interfaces and using the OLED screen.
Driving Compilers
The article outlines the author's journey learning C and C++, focusing on the compilation process often overlooked in programming literature. It introduces a series to clarify executable creation in a Linux environment.
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!
Though his OS is mainly written in C, while I believe the course is mostly or all assembly.
- 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.
Related
Writing GUI applications on the Raspberry Pi without a desktop environment
This article explains writing GUI applications on a Raspberry Pi without a desktop environment. It covers interacting with the framebuffer, configuring resolutions, using low-level interfaces, Raylib library, and optimizing CPU usage.
Kernel tweaks improve Raspberry Pi performance, efficiency
Development efforts for Raspberry Pi include kernel tweaks like "Suspend to idle" for older models and NUMA support for Pi 5, improving performance and power efficiency. These advancements demonstrate adapting techniques for better computing.
A Mini Monitor for a Pi
The author shares a project using a 2-inch display as a Raspberry Pi monitor, creating a handheld console. Details include wiring, SPI communication, display mirroring for tasks like coding and web browsing, hardware setup, communication protocol, and a system service for seamless display experience.
Introduction to Hardware Hacking with a Raspberry Pi
The article explores hardware hacking with a Raspberry Pi, introducing the PiFex tool. It details setting up a Raspberry Pi for hardware reverse engineering, including enabling interfaces and using the OLED screen.
Driving Compilers
The article outlines the author's journey learning C and C++, focusing on the compilation process often overlooked in programming literature. It introduces a series to clarify executable creation in a Linux environment.