Apr 2026
13 Mon
14 Tue
15 Wed
16 Thu
17 Fri 09:00 AM – 06:00 PM IST
18 Sat 08:45 AM – 05:45 PM IST
19 Sun
Submitted Mar 16, 2026
Session Description
Writing software for bare-metal systems traditionally relies on C/C++, trusting the programmer to manually manage memory, hardware state, and concurrency. Rust provides the tools to enforce these constraints at compile time, but applying Rust to undocumented, bare silicon requires a deep understanding of both the compiler’s behavior and the processor’s physical architecture.
This talk dissects the engineering of a custom bare-metal operating system for the Raspberry Pi 5. The Pi 5 abandons the legacy monolithic System-on-Chip design for a disaggregated architecture, separating the CPU (BCM2712) and the I/O controller (RP1) across a PCIe interconnect. Operating in a #![no_std] environment without an underlying OS, we must build the entire abstraction stack from the ground up.
We will walk through the Embedded Rust Abstraction Stack layer by layer to solve specific hardware and concurrency problems:
#[repr(C)] and operator overloading (Deref).dyn) operates at the machine level using fat pointers and vtables to achieve hardware-agnostic design without a runtime.Cell, RefCell, and Mutex either fail the borrow checker (!Sync) or cause single-core deadlocks in interrupt-driven systems. We resolve this by building a custom lock utilizing UnsafeCell and physical CPU interrupt masking to legally forge the Sync contract.Takeaways
UnsafeCell functions as the foundational primitive for bypassing the borrow checker, and the strict physical guarantees required to safely implement the Send and Sync traits.Target Audience
Backend software engineers looking to understand the low-level mechanics of Rust’s concurrency and memory models, systems and firmware developers evaluating Rust for infrastructure, and developers interested in the exact execution physics of #![no_std] environments. No prior embedded experience is required.
Speaker Bio
Devansh Lodha is an undergraduate systems researcher at IIT Gandhinagar and an incoming Software Engineering Intern at Google. In the open-source ecosystem, he engineered the disaggregated boot sequence and PCIe/MSI-X interrupt pipeline for the Raspberry Pi 5 port of the official rust-embedded/rust-raspberrypi-OS-tutorials. He is currently working on the Hardware Abstraction Layer for the Raspberry Pi 5 in Flamingos, an experimental bare-metal Rust operating system.
Hosted by
Supported by
Platinum sponsor
Silver sponsor
Silver sponsor
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}