FX-RTOS is a set of loosely coupled software components. Dependencies between them are created as a result of configuring.
Сonfigurability
The OS is configurable using dependency injection technique. Configuring is performed at compile-time, so resulting machine code is almost optimal and doesn't contain any overhead.
Multiprocessing support
FX-RTOS was initially designed with multiprocessing in mind. Thus, the amount of global variables shared between processors is reduced to minimum, there are no global system-wide locks. Therefore, the system performance scales well with number of processors.
Special support for event driven systems
Special profile for such systems is provided. Threads are removed and replaced with event service routines (ESR) similar in some aspects to program interrupts. Using ESR instead of threads reduces code size by 40%, increases performance and reduces RAM usage (in contrast with threads, ESR may share a single stack).
Extensibility
As several implementations of a single component interface are allowed, the kernel functionality may be extended or modified with components, developed by OS user or community.