Home
Softono
RK0

RK0

Open source Apache-2.0 C
14
Stars
3
Forks
0
Issues
2
Watchers
4 weeks
Last Commit

About RK0

RK0 is an embedded real-time kernel built on the principle of zero surprises by moving worst-case coordination mechanics from the application into the kernel itself. Rather than being a minimal RTOS, RK0 centers on concurrency requirements as the major commonality across real-time systems. Programmers express the dependency they need, and the kernel enforces the corresponding scheduling behavior, addressing issues like priority inversion, blocked producers, nested ownership, timeout races, and delayed receivers that are difficult to manage reliably at the application level. Key features include a well-defined service map for kernel primitives, comprehensive documentation covering design internals and usage examples, support for ARM Cortex-M architectures (M0, M3, M4) including Nucleo board packages, and VSCode and QEMU setup guides for Linux, Windows, and macOS. RK0 compiles only with the ARM GNU toolchain using the C99 standard and produces clean code under strict GCC warning flags plus Cppcheck static analy

Platforms

Web Self-hosted

Languages

C

CI Version Docs

RK0 - The Embedded Real-Time Kernel '0'image


Zero surprises: Not a minimal RTOS...

image

RK0 is centred on the idea that concurrency requirements are the major commonality accross real-time systems. It supports real-time application programmers by moving worst-case coordination mechanics into the kernel. Programmers express the dependency being created, and the kernel enforces the corresponding scheduling behaviour. This is important because real-time correctness is often lost in worst-case scenarios: priority inversion, blocked producers, nested ownership, timeout races, and delayed receivers, among others, are difficult to manage reliably at the application level.

  • Service Map: a must-read for developing

  • RK0 Docbook: compreehensive document with design internals, architecture, caveats and usage examples

  • RK0 Wiki: useful information such as setting up environment (VSCode/QEMU) (Linux/Win/MacOS), functional packages for Nucleo-boards (M0/M3/M4), some profiling metrics.

  • RK0 Blog: blogs about RK0 and systems programming in general


Quick Start (QEMU)

Prerequisites:

  • ARM GNU Toolchain (arm-none-eabi-gcc, arm-none-eabi-gdb / gdb-multiarch (Debian))
  • QEMU for ARM (qemu-system-arm)

Build and run the RK0 demo on QEMU:

git clone https://github.com/antoniogiacomelli/RK0.git
cd RK0
make arch=armv6m|armv7m qemu

Code Quality

RK0 source code compiles cleanly with the following GCC flags:

-Wall -Wextra -Wsign-compare -Wsign-conversion -pedantic

Static Analysis (Cppcheck) is clean with no warnings, errors, or style issues.


Dependencies

  • RK0 compiles only with ARM GCC.
  • The C code standard is C99.

Copyright (C) 2026 Antonio Giacomelli | All Rights Reserved | www.kernel0.org | đź“«