ChibiOS/NIL is a minimalist real-time kernel designed for deeply embedded and resource‑constrained systems.
It focuses on a very small footprint, simple APIs, and a fully static architecture, while still providing a useful set of synchronization and timing primitives.
ChibiOS/NIL is also designed to be API‑compatible with ChibiOS/RT: it implements a subset of the ChibiOS/RT API (with some small differences), making it easier to move between NIL and RT when projects grow in complexity.
Tiny RTOS kernel – typically below 1 kB of code space in a minimal configuration.
Very small memory objects – threads, semaphores, and other kernel objects have compact representations.
Fully static architecture – no dynamic allocation required in the kernel; all objects defined at compile time.
API‑compatible subset of ChibiOS/RT – similar programming model, with a reduced feature set tailored to small systems.
Real tickless kernel – scheduling and timeouts do not rely on a fixed periodic tick; the kernel uses a fully tickless design.
No complex dynamic data structures – no dynamic lists, queues, or heaps inside the kernel.
Self‑contained thread array – the scheduler operates on a single, statically allocated array of thread structures; pointers are bounded within this array and use a single level of indirection (no chains of pointers to other pointers).
Deterministic behavior – static design, bounded pointers, and short code paths make timing and analysis straightforward.
Efficient and predictable – optimized for low overhead and short, bounded execution paths.
Despite its minimal size, ChibiOS/NIL remains highly efficient and offers a practical set of features for simple control loops, cooperative tasks, and many low‑end MCU applications.
Explore the features set.