Skip to content

RMEOne microkernel, from 64 KB to many cores

A capability-based operating system that keeps one abstraction across MPU microcontrollers, MMU application processors and many-core servers — instead of coercing one hardware model into another.

▶See the design One capability abstraction: 64 KB microcontrollers, MMU application processors, and many-core servers.
RME (Eukaron) logo

What "concord" means ​

Microkernels have existed for decades. What has been missing is a single abstraction that is honest about both microcontrollers and servers — not a cloud kernel squeezed onto an MCU, and not an RTOS pretending to scale to a datacenter.

RME starts from the mechanisms every machine actually has — capabilities, threads, address spaces, interrupts — and exports policy to user level. The result is one kernel that can be configured down to the code lines you need, with no unused drivers, no function-pointer indirection when a single instance exists, and no concealment of the hardware's real protection model.

64K / 20Kminimum ROM / RAM on STM32L071CB (Cortex-M0+)
264cycles for an intra-process yield (STM32F767IG, Keil)
~3 µstypical interrupt latency measured on microcontrollers
6%lowest virtualization overhead when hosting an RTOS

Architecture ​

User-level policyPage serverSchedulervCPUDrivers / servicescapability invocations · signalsRME kernel — mechanism onlyCapabilitiestwo-level · depth 2SchedulerFPRR + budgetsIPCmigrating threadsMemory32 B KOT bitmapIRQbounded callsHardware abstractionCortex-M / RV32MPU microcontrollersCortex-A / RV64MMU application coresx86-64many-core serversC66xDSP
Scroll horizontally on small screens.

The top layer is entirely user-level: page servers, schedulers, vCPU monitors and drivers are ordinary components holding capabilities. The kernel below it is mechanism only — capability tables, FPRR preemption, IPC, kernel-object memory and interrupt delivery. The same kernel image is configured for an MPU microcontroller, an MMU application processor, or a many-core machine.

Three hypers ​

HYPERADAPTABILITY

One abstraction, not two

Match cloud-native operating systems on application processors while matching RTOSes on microcontrollers — with the same kernel design and the same programming model.

HYPERREUSABILITY

Components, not a monolith

Drivers and middleware are decoupled packages usable with RME, with another OS, or with no OS at all. Unused code is stripped, not carried into the image.

HYPERDEPLOYABILITY

Engineering, not a demo

Microcontroller projects are generated through RVM with real toolchains and debuggers. Production concerns are part of the design, not an afterthought.

Measured where it matters ​

ChipCoreYield/SInv/2Sig/2Sig/I
STM32L071CBCortex-M0+513939830534
STM32F405RGCortex-M4F332684735416
STM32F767IGCortex-M7F264600484282
CH32V307VCRV32IMAFC358706723523

GCC builds, average CPU cycles; the STM32F767IG with Keil reaches 264 / 600 / 484 / 282. These are measured on hardware, not simulated. The performance page has the full table and the caveats.

Built for the whole spectrum ​

Cortex-M0+Cortex-M4F / M7FCortex-A9RV32RV64x86-64 (WIP)C66x (immature)

Microcontrollers need an MPU and use RVM as the user-level library and project generator. Application processors need an MMU; their ports and the RMC container layer are work in progress. The platforms page states exactly what is delivered and what is not.

Read the manual ​

The R4T1 technical reference manual is 271 pages (English) and 205 pages (Chinese). It covers capabilities, memory, processes, IPC, kernel-call implementation, porting, and the MISRA-C deviations.

Get started →

An official work of EDI, released into the public domain.

GitHub·Discord·QQ 群 1038895132·rtospro.com