Skip to content

About

Fault-tolerant kernel for deeply embedded systems in Rust

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Actinium is an experimental real-time kernel for microcontrollers. It treats applications as independent, separately compiled binaries that interact through a message-passing. While Actinium draws inspiration from microkernels, it departs from traditional design in several fundamental ways.

Why write yet another RTOS?

There are three key insights behind the design:

  • Since embedded systems are fundamentally reactive, the actor model provides a more intuitive and lightweight framework than traditional threading.

  • Binary modularization enables reusing at module level. The vision is a system where precompiled binary modules for drivers and protocol stacks can be linked via message ports without requiring the developer to write new glue code.

  • RTOS should support memory protection and fault tolerance out of the box.

So, this project is architectural research: testing the viability of combining hardware-assisted scheduling, stackless actors, user-mode and memory protection - a feature set that is rare, if not unique, in the current landscape.

Design

  1. Actors: Actinium does not have the concept of threads. Instead, it utilizes an actor-based execution model featuring stackless, preemptive, run-to-completion routines. This approach minimizes resource overhead and simplifies the calculation of Worst-Case Execution Time (WCET) - a critical requirement for hard real-time systems.

  2. Fault-tolarance: Actors are preemptively scheduled and strictly confined by memory protection. All communication with the kernel occurs via syscalls, ensuring that user-mode failures cannot crash the system.

  3. Hardware-Driven Scheduling: Actinium leverages the interrupt controller as its hardware scheduler. By mapping unused interrupt vectors to specific priorities, the kernel offloads scheduling logic directly to the silicon.

Why Actinium?

It is two words 'actor' and 'tiny' combined in a way to form chemical element name.

About

Fault-tolerant kernel for deeply embedded systems in Rust

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages