🤖 AI Summary
Existing embedded Rust operating systems lack support for preemptive multicore scheduling on microcontrollers. This paper introduces Ariel OS—the first Rust-based embedded OS designed specifically for 32-bit multicore MCUs (ARM Cortex-M, RISC-V, and Xtensa), enabling safe, real-time, and portable preemptive multicore scheduling. Our approach centers on three key contributions: (1) the first zero-cost abstraction multicore scheduler implemented in bare-metal Rust; (2) a lightweight RTOS kernel built upon a concurrency-aware memory safety model; and (3) integrated multicore synchronization primitives—including MPSC channels and spinlocks—alongside fine-grained bare-metal interrupt management. Microbenchmarking across all three architectures demonstrates near-linear multicore speedup and sub-microsecond scheduling latency. The complete implementation is open-source and supports out-of-the-box deployment.
📝 Abstract
Large swaths of low-level system software building blocks originally implemented in C/C++ are currently being swapped for equivalent rewrites in Rust, a relatively more secure and dependable programming language. So far, however, no embedded OS in Rust supports multicore preemptive scheduling on microcontrollers. In this paper, we thus fill this gap with a new operating system: Ariel OS. We describe its design, we provide the source code of its implementation, and we perform micro-benchmarks on the main 32-bit microcontroller architectures: ARM Cortex-M, RISC-V and Espressif Xtensa. We show how our scheduler takes advantage of several cores, while incurring only small overhead on single-core hardware. As such, Ariel OS provides a convenient embedded software platform for small networked devices, for both research and industry practitioners.