Bratislava OpenCamp 2025

CMRX: Mikrokernelový RTOS s ochranou pamäte pre mikrokontrollery
2025-04-05 , Aula Minor
Language: Slovak

Napriek tomu, že ochranu pamäte ako techniku na zvýšenie odolnosti našich systémov používame už desiatky rokov, typické súdobé low-power IoT zariadenie ju ignoruje. Jedným z dôvodov je aj to, že pri väčšine dostupných operačných systémov je ochrana pamäte vlastnosťou pridanou dodatočne. Navrhli a vytvorili sme mikrokernelový real-time operačný systém CMRX so zameraním na procesory, ktoré nedisponujú schopnosťou mapovania pamäte. Tento systém je navrhnutý okolo konceptu totálnej izolácie pamäte a túto funkciu neumožňuje vypnúť.

Implementácia ochrany pamäte na zariadeniach s tak prísnymi limitmi prináša výzvy a vyžaduje robenie kompromisov. V tomto príspevku by som chcel predstaviť najdôležitejšie rozhodnutia ohľadom dizajnu systému CMRX a cestu, ktorou sme k ním prišli.

Ako v tomto prostredí funguje koncept mikrokernelu? Aké prináša výhody? Pokúsim sa načrtnúť potenciálne výhody a limitácie tejto architektúry a dotknem sa aj toho, prečo stále potrebujeme ochranu pamäte aj keď máme Rust.


Toto je rozšírená verzia talku, ktorý odznel na FOSDEMe 2025 v devroome Microkernel and component-based OS. Ten bol obmedzený iba na zhruba 15 minút. V tomto príspevku by som sa rád venoval tématike trocha hlbšie.

CMRX je operačný systém vytvorený od nuly tak, aby obmedzil najväčší problem s bezpečnosťou v odvetví IoT: výhovorku, že ochrana pamäte je zložitá na implementáciu a nikto ju v skutočnosti aj tak nepotrebuje.

Opak je pravdou: S príchodom smerníc ako CRA a im podobných bude nutné využiť všetky dostupné metódy na zvýšenie odolnosti systémov voči prienikom zvonku. Na úrovni operačného systému je to hlavne o izolácii pamäte a o zmenšení dosahu útokov na ovládače.

See also:

Vývojar so skoro dvadsaťročnými skúsenosťami v rôznych odvetviach od hard-embedded a automotive až po desktopový a serverový vývoj.

Vždy som bol zvedavý ako fungujú jednotlivé časti, ktoré tvoria stavebné bloky technológii s ktorými som pracoval. Neskor, keď som zmenil odvetvie v ktorom som pracoval, ma tá istá zvedavosť hnala k jednoduchej otázke: Sú koncepty, ktoré poznám použiteľné aj v inom kontexte než v tom, v ktorom som ich spoznal? Vieme podobné výzvy riešiť podobným prístupom aj keď podmienky sú úplne iné?

Po životnej zmene vo forme prechodu na freelancing som spustil svoj súkromný hobby projekt real-timoveho operačného systému, ktorý robí presne to: prináša niektoré koncepty z desktopových operačných systémov až na úroveň low-power embedded vývoja.