-
Notifications
You must be signed in to change notification settings - Fork 2
Home
The Docbook provides design internals, design choice rationale, some theory and rich usage examples.
It is neither minimal nor an RTOS. It is a real-time executive, with feature set that embodies policy for the recurrent coordination problems of real-time design. That does not remove choice; it makes it easier to choose by replacing over generalised mechanisms for services that embodies semantics.
RK0 supports both shared-state and message-passing paradigms. The application example showcases this duality.
- The Execution Image is a single-process. Roughly, we enable concurrency over a single process by composing a thread of execution with a unique portion of the running stack. This composition gives us a schedulable unit, we chose to call a Task:
- User Tasks and System Tasks have the same privilege, while running on separate stack pointers.
- Rationale for both decisions are on the Docbook.
-
Memory is mapped to the physical memory - we are talking about CPUs on the range of 8-256 KiB of RAM.
-
Tasks are strictly allocated on compile time. Cannot be created on runtime, fork, or join.
-
Application-specific needs for dynamic allocation and deallocation, as well as some kernel mechanisms, make use of an allocator that suits real-time demands: fixed-size blocks, word-aligned, O(1).
-
RK0 is suitable systems which quality of service degrades quickly when not meeting time constraints. Tasks can't be unaware of each other and are actually cooperating concurrent units. The solution is domain-dependent. The hardware is domain-dependent. The deployed application was tested and is trusted. This is the typical closed-model which most real-time critical applications fit.
-
It doesn't target any solution that until recently was handled by MMU equipped, moderately powerful devices, runnning tailored full-fledged OSes (historically BSDs, until Linuxes prevailed); anything that face it on the web, exposing to high attack surface.
Q: Why there is no release yet?
A: A release is serious stuff. v1.0.0 will come when I can push:
-
a good Trace mechanism (it is ongoing)
-
can provide meaningful and honest system characterisation (it is ongoing)
-
the test harness in a way it works for any potential contributors (it works on my computer)
Copyright (C) 2025 Antonio Giacomelli | www.kernel0.org