RTOS: het besturingssysteem dat op tijd moet reageren, koste wat het kost
Stel je voor: de airbag in je auto knalt niet meteen bij een botsing, maar pas een halve seconde later, omdat het besturingssysteem van de auto op dat moment druk was met iets anders. Die halve seconde vertraging klinkt niet als veel, maar in de praktijk is het levensgevaarlijk. Voor dit soort systemen is gewone software niet goed genoeg. Er is een besturingssysteem nodig dat gegarandeerd op tijd reageert, elke keer weer. Dat heet een RTOS: een Real-Time Operating System, oftewel een realtime besturingssysteem.
Een RTOS zit onder de motorkap van talloze apparaten die we niet als "computers" herkennen: de airbagcomputer in een auto, de vluchtcomputer van een drone, de chip in een medisch infuuspompje, of de robotarm in een fabriek. Het verschil met het besturingssysteem op je laptop of telefoon zit niet in snelheid, maar in voorspelbaarheid. Windows of Android is meestal snel, maar soms hapert het even, bijvoorbeeld als er een update draait. Bij een RTOS mag dat nooit gebeuren: een taak moet altijd binnen een vooraf afgesproken tijd worden uitgevoerd, of het systeem nu druk is of niet.
Wat is het precies?
Elk besturingssysteem moet keuzes maken: welk programma krijgt nu de rekentijd van de processor? Een gewoon besturingssysteem, zoals Windows, macOS of Linux op een desktopcomputer, probeert daarbij vooral gemiddeld genomen zo snel en eerlijk mogelijk te zijn. Dat heet "best effort": het systeem doet zijn best, maar garandeert niets.
Een RTOS werkt fundamenteel anders. Elke taak krijgt een prioriteit en een deadline, en de planner van het besturingssysteem (de zogeheten scheduler) zorgt ervoor dat de belangrijkste taak altijd voorrang krijgt, met een gegarandeerde, meetbare reactietijd. Ontwikkelaars kunnen vooraf berekenen wat de worst-case reactietijd is: de langst mogelijke tijd tussen een gebeurtenis (zoals een botsingssensor die afgaat) en de reactie van het systeem daarop.
Daarbij wordt onderscheid gemaakt tussen "hard real-time" en "soft real-time". Bij hard real-time, zoals een airbagsysteem, is het missen van een deadline een complete mislukking: het systeem heeft dan gefaald, ongeacht hoe klein de vertraging was. Bij soft real-time, zoals videostreaming, is een gemiste deadline vervelend (een haperend beeld) maar geen ramp.
Een RTOS draait vaak op zeer bescheiden hardware: microcontrollers met soms maar enkele tientallen kilobytes werkgeheugen, zonder scherm, muis of toetsenbord. De kernel — het hart van het besturingssysteem — is daarom meestal extreem klein en compact, in tegenstelling tot de miljoenen regels code van een besturingssysteem als Linux.
Een bekend en berucht probleem in dit soort systemen heet "priority inversion" (prioriteitsomkering): een taak met lage prioriteit blokkeert per ongeluk een taak met hoge prioriteit, omdat ze allebei dezelfde gedeelde bron nodig hebben. RTOS'en lossen dit meestal op met een techniek die "priority inheritance" heet, waarbij de lage-prioriteitstaak tijdelijk de hoge prioriteit "erft" totdat ze klaar is.
Wat wil men ermee bereiken?
Het hoofddoel van een RTOS is betrouwbaarheid onder tijdsdruk: garanderen dat een systeem reageert binnen een afgesproken tijdsvenster, altijd, ook in het slechtst denkbare geval. Voor veiligheidskritische toepassingen — vliegtuigelektronica, medische apparatuur, kerncentrales, voertuigen — is dat geen luxe maar een harde eis.
Daarnaast spelen praktische doelen mee. RTOS'en zijn ontworpen om zuinig om te gaan met beperkte rekenkracht, geheugen en energie, zodat ze passen in kleine, goedkope chips die soms jarenlang op een batterij moeten draaien, zoals in slimme sensoren. Ook moeten ze vaak meerdere taken tegelijk en zonder conflicten uitvoeren, bijvoorbeeld het uitlezen van sensoren, het aansturen van motoren en het communiceren met andere apparaten, allemaal binnen dezelfde chip.
Tot slot is certificeerbaarheid een belangrijke drijfveer. Voor luchtvaart (de norm DO-178C), auto's (ISO 26262) en medische apparatuur (IEC 62304) moet software aantoonbaar veilig zijn. Een RTOS met een klein, overzichtelijk en goed gedocumenteerd kernel maakt zo'n certificeringstraject haalbaar; dat zou bij een complex algemeen besturingssysteem vrijwel onmogelijk zijn.
Voorbeelden uit de praktijk
Een van de bekendste RTOS-verhalen speelt zich af op Mars. Tijdens de Mars Pathfinder-missie in 1997 begon het lander-systeem herhaaldelijk zichzelf te herstarten. De oorzaak bleek een klassiek geval van priority inversion in het VxWorks-besturingssysteem. Ingenieurs op aarde konden het probleem op afstand verhelpen door een instelling voor prioriteitsovererving te activeren, zonder dat iemand ooit fysiek bij het apparaat kon.
VxWorks, gemaakt door het Amerikaanse bedrijf Wind River, draait sindsdien op meerdere Mars-missies, waaronder de rovers Curiosity (geland in 2012) en Perseverance (geland in 2021), en op de kleine Mars-helikopter Ingenuity die in 2021 als eerste vliegtuig op een andere planeet vloog.
Dichter bij huis draait een RTOS in vrijwel elke moderne auto. Kritieke systemen zoals airbags en antiblokkeersystemen (ABS) gebruiken vaak besturingssoftware die voldoet aan de OSEK/AUTOSAR-standaard, een Europese industriestandaard voor realtime software in voertuigelektronica. Het Canadese QNX (nu onderdeel van BlackBerry) wordt op zijn beurt breed ingezet in infotainmentsystemen en digitale instrumentenpanelen bij veel automerken, en wint terrein in geavanceerde rijhulpsystemen.
In de dronewereld draaien populaire open-source vluchtcontrollers zoals PX4 en ArduPilot vaak op NuttX, een lichtgewicht open-source RTOS dat speciaal is ontworpen voor kleine, resource-arme systemen.
Ook in de wereld van slimme apparaten (het "internet of things") is een RTOS onmisbaar. Amazon nam in 2017 het open-source project FreeRTOS onder zijn hoede en koppelde het aan zijn cloudplatform AWS IoT, waardoor het een van de meest gebruikte RTOS'en werd in kleine, verbonden apparaten zoals slimme sloten, industriële sensoren en huishoudelijke apparatuur.
Hoe ver is de techniek?
RTOS-technologie is geen nieuwe uitvinding: de eerste realtime besturingssystemen dateren al uit de jaren zestig en zeventig van de vorige eeuw, en de wiskundige basis voor realtime taakplanning — het beroemde onderzoek van Liu en Layland naar zogeheten "rate-monotonic scheduling" — stamt uit 1973. Het is dus een volwassen vakgebied, geen opkomende technologie die nog moet bewijzen dat ze werkt.
Wat wel sterk verandert, is de schaal waarop RTOS'en worden ingezet. Door de groei van internet-of-things-apparaten, elektrische voertuigen en autonome systemen draaien er tegenwoordig naar schatting miljarden chips met een RTOS erop, vaak zonder dat gebruikers zich daarvan bewust zijn. Open-source alternatieven zoals Zephyr en FreeRTOS winnen daarbij terrein ten opzichte van dure, gesloten commerciële systemen, al blijven gecertificeerde commerciële RTOS'en dominant in de meest kritieke toepassingen zoals luchtvaart.
Een actuele ontwikkeling is het combineren van een RTOS met een gewoon besturingssysteem als Linux op dezelfde chip, via zogeheten hypervisors of "mixed-criticality"-architecturen. Zo kan een auto op één processor tegelijk een infotainmentsysteem (niet kritiek) en een remsysteem (wel kritiek) draaien, strikt van elkaar gescheiden.
De belangrijkste obstakels liggen niet zozeer in de kerntechniek, maar in twee andere hoeken. Ten eerste is certificering voor veiligheidskritische toepassingen kostbaar en traag: elke wijziging in de software kan een nieuwe, dure certificeringsronde vereisen. Ten tweede is beveiliging lange tijd onderbelicht geweest: veel kleine RTOS'en zijn oorspronkelijk ontworpen voor geïsoleerde apparaten zonder internetverbinding, en missen daardoor basisbeveiliging zoals versleuteling. Nu steeds meer van deze apparaten verbonden zijn met internet, bouwen fabrikanten die beveiliging alsnog in, met wisselend succes.
Wie werken eraan?
Het veld wordt gedomineerd door een handvol gespecialiseerde spelers. Wind River (VxWorks) richt zich vooral op lucht- en ruimtevaart, defensie en industriële toepassingen. QNX, eigendom van het Canadese BlackBerry, is marktleider in de automotive-sector. Amazon onderhoudt FreeRTOS als onderdeel van zijn AWS-cloudstrategie voor IoT-apparaten, terwijl Microsoft sinds de overname van het bedrijf Express Logic in 2019 Azure RTOS ThreadX aanbiedt, dat naar eigen zeggen in miljarden apparaten wereldwijd draait.
Daarnaast is er een sterk open-source ecosysteem. Het Zephyr Project, gestart in 2016 en ondergebracht bij de Linux Foundation, wordt gedragen door een brede coalitie van bedrijven zoals Intel, Nordic Semiconductor, NXP, Meta en Google. RTEMS is een ander open-source RTOS met een lange geschiedenis in wetenschappelijke en ruimtevaarttoepassingen, met banden met Europese en Amerikaanse ruimtevaartprojecten.
Tot slot blijft de academische wereld actief betrokken bij het verder ontwikkelen van de theorie achter realtime taakplanning, betrouwbaarheid en beveiliging, aan universiteiten wereldwijd die onderzoek doen naar embedded en cyber-fysieke systemen.