Features Documentation Examples Repository Blog Contact

Blogs


Performance Benchmark

This blog presents first results of Thread Metric Benchmark ran on CMRX RTOS.

Talks 2025

The project of CMRX was started as an experiment if hassle-free approach to memory isolation on MMU-less microcontrollers is technically possible and feasible.

Motivation that fueled this experiment was me witnessing how much hassle it is to maintain a reasonably cybersecure project running on a microcontroller using contemporary modern tech stack. It turned out that memory isolation can both be hassle-free and still perform fast even on $1 microcontroller. It just works without consuming 80% of your CPU. That’s a huge win.


Transactions

Critical sections and interrupts - this is a situation every OS kernel has to deal with. Deny interrupts access to kernel services to keep data consistent or disable interrupts during critical sections to keep things consistent despite interrupts calling kernel routines? Or is there a third way that provides benefits of both these approaches?

Why Memory Isolation

You firmware is doing one thing. You don’t load unnecessary code into device. So why do you need to think about memory isolation? The only part of your firmware deserving protection are secrets for encrypted communication. Or, they are not?

There is this world of embedded devices which contain firmware written by single person, or maybe a small team. These devices are not connected to any kind of network, bus or radio. In this world, it is quite possible that you don’t need to think of memory isolation. Yet, this world is shrinking at rapid pace.


CMRX on Linux!

Did you know you can now try CMRX without even having any embedded hardware around you? Yes, that’s right. Now that CMRX has got a native support to run hosted on Linux machine, you can build CMRX instance as a plain normal Linux process.

To demonstrate this, we prepared two small demos which stress capabilities of this port.

CMRX with window manager

Desktop on Microcontroller-Grade Resources

First demo consists of simple desktop window manager that runs entirely inside the CMRX. While this is not a typical use case for an embedded operating system, it demonstrates the capabilities of CMRX kernel.


Benefits of Userspace Drivers

This is a case study of a firmware bug in sensor driver connected to a communication bus problem. A manufacturer of RV appliances had an ecosystem with temperature sensors which were connected to STM32-based controller. These sensors were sometimes sending unexpected malformed data which the driver wasn’t handling properly. When this rare-yet-recurrent malformed data arrived the driver wrote these meaningless data into unauthorized memory locations in the controller’s memory.

Eventually this memory corruption hit a critical location which stored internal state of slide open/close command.


ESE Kongress 2025 Talk

This december the ESE Kongress will take place in Sindelfingen. We are pleased to announce that CMRX RTOS project will be present there. One of talks will deal with modern approach to the design of embedded systems which CMRX enables.

While previous talks were targeted mostly to specialist in the area of operating system design and computer science this time CMRX will be presented to its real target audience - embedded software developers.


CMRX on FOSDEM 2025

In February 2025 the FOSDEM conference took place again in Brussels for 25th time. This year there were 24 developer rooms which hosted more than 1000 different talks. As CMRX reached state mature-enough to be able actually do useful work we decided to present it on largest open source conference in Europe (and probably in the whole world).

As CMRX is an embedded RTOS, there were multiple developer rooms relevant for us. This project could be interesting to attendees of Embedded, Mobile and Automotive devroom or for Microkernel and Component-Based OS devroom.

64kB of protected memory ought to be enough for everyone.