Design Principles

System Stability

An embedded application should never crash. The kernel design prevents type conversion issues and has system stability in mind.

Processes

Processes run isolated from each other. A process consists of an allocator and threads. Thus, critical process are protected from unsafe threads.

Stackful Threads

Every thread has its own stack. By default stacks can only be accessed within a process. Stack overflow is prevented. …………………………………… .

Flexibility

The kernel only depends on the CPU core, any/no HAL can be used. All aspects of the kernel can be configured by the user. ………..

Round-Robin Scheduling

High priority tasks preempt lower ones. Tasks with the same priority run at max for one time-slice. ……………………………………………….

Real-Time

Critical Sections are kept as short as possible (atomic operation preffered). Interrupts can run without kernel interation.

Documentation

The documentation is split into API documentation (generated from the code and published on docs.rs) and a user level documentation focused on concepts published as online books.
The online book documentation consists of:


The API documentation consists of:

Software Requirements Specification

The software requirement specification (SRS) defines the features and behavior of the kernel. It lists all functionalities queued for impelementation and tracks their status. It also serves as an overview of the kernel and the direction the development is taking.

More

Source Code

The kernel, tools and documentation are all open source.
The main repositories are:

More