21/07/2012
I vores moderne tidsalder er vi omgivet af teknologi. Fra den smartphone vi har i lommen, til bilen vi kører i, og selv det smarte termostat på væggen. Mange af disse enheder indeholder, hvad man kalder et indlejret system – en specialiseret computer designet til at udføre en bestemt opgave. Ligesom din computer derhjemme har brug for Windows, macOS eller Linux for at fungere, kræver disse indlejrede systemer også et operativsystem. Men det er ikke et hvilket som helst operativsystem. Det er et indlejret operativsystem, der er skræddersyet til formålet. Denne artikel vil guide dig gennem alt, hvad du behøver at vide om indlejrede operativsystemer, fra hvad de er, til de forskellige typer der findes, og hvordan du vælger det rigtige.

Hvad er et Indlejret Operativsystem?
Et indlejret operativsystem (ofte forkortet som embedded OS) er en specialiseret type software, der er designet til at styre hardwaren og køre applikationer på enheder, der ikke er traditionelle computere. Dets primære formål er at sikre, at enheden kan udføre sin specifikke funktion pålideligt og effektivt. Tænk på det som hjernen i en smart enhed. Det kører den kode, der gør det muligt for enheden at udføre sit job, og det fungerer som bindeled mellem enhedens hardware og den software, der kører ovenpå.

Indlejrede operativsystemer er typisk designet med en række specialiserede funktioner, der gør dem i stand til at fungere optimalt i virkelige applikationer:
- Realtidsoperationer: Mange indlejrede systemer skal udføre opgaver inden for en meget specifik tidsramme. Et trafiklys skal for eksempel skifte signal med præcise intervaller. Dette er en kernefunktion, der styres af operativsystemets kerne (kernel), som planlægger opgaver.
- Reaktive Operationer: Systemet skal kunne reagere øjeblikkeligt på input eller stimuli. Et klassisk eksempel er en airbag i en bil. Når sensorer registrerer en kollision, skal operativsystemet reagere næsten øjeblikkeligt for at udløse airbaggen. Dette kan kræve, at systemet afbryder en igangværende opgave for at udføre en ny, mere kritisk opgave.
- Ressourcebegrænsninger: I modsætning til en desktop-computer har indlejrede enheder ofte begrænset hukommelse (RAM), processorkraft og strømforbrug. Operativsystemet skal derfor være ekstremt effektivt og letvægtigt for at kunne køre på denne begrænsede hardware.
- Pålidelighed: For mange indlejrede systemer, især inden for medicinsk udstyr, luftfart og bilindustrien, er et systemnedbrud ikke en mulighed. Operativsystemet skal være ekstremt stabilt og pålideligt og kunne køre uafbrudt i årevis.
Eksempler på enheder, der bruger indlejrede operativsystemer, er overalt: pengeautomater (ATM'er), digitale kameraer, GPS-navigationssystemer, industrielle robotter, smarture, og de utallige enheder, der udgør Internet of Things (IoT).
Typer af Indlejrede Operativsystemer
Fordi indlejrede systemer har så mange forskellige formål, findes der også mange forskellige typer af operativsystemer, der hver især er designet til at understøtte specifikke applikationer. Her er nogle af de mest almindelige typer:
Enkelt System Kontrolsløjfe (Single System Control Loop)
Dette er den mest basale type indlejret OS. Det er designet til at styre en enkelt variabel digitalt. Et simpelt eksempel er en smart termostat i hjemmet. Brugeren indstiller en ønsket temperatur. Systemet bruger sensorer til at måle den omgivende temperatur. Hvis den målte værdi er under den ønskede, tænder systemet for varmen. Er den for høj, aktiverer det måske aircondition. Operativsystemet gør ikke meget andet end at køre denne simple kontrolsløjfe igen og igen.

Multitasking Operativsystem
Når et indlejret system skal udføre flere opgaver eller funktioner samtidigt, kræver det et multitasking-operativsystem. Dette OS er programmeret til at fordele processortid mellem forskellige systemfunktioner baseret på applikationens behov. Din smartphone er et godt eksempel; den kører mange processer i baggrunden, mens du aktivt bruger en app. Et multitasking OS bruger en planlægningsalgoritme (scheduler) til at organisere og prioritere opgaver, så systemet føles responsivt.

Realtidsoperativsystem (RTOS)
Et realtidsoperativsystem (RTOS) er en af de vigtigste kategorier inden for indlejrede systemer. Dets definerende egenskab er determinisme – evnen til at behandle input og levere et output inden for en garanteret, fastsat tidsramme. Hvis en deadline overskrides, betragtes det som en systemfejl. Denne forudsigelighed er afgørende i systemer, hvor timing er kritisk.
Der findes tre hovedtyper af RTOS:
- Hårdt RTOS (Hard RTOS): Her er overholdelse af deadlines absolut kritisk. En enkelt misset deadline kan føre til katastrofale fejl. Dette bruges i systemer som flykontrol, ABS-bremser i biler og livsopretholdende medicinsk udstyr.
- Fast RTOS (Firm RTOS): I denne type kan systemet tolerere, at en deadline lejlighedsvis misses, men det vil forringe systemets kvalitet. Hvis deadlines misses for ofte, vil systemet fejle. Dette kan ses i f.eks. industrielle robotter på en produktionslinje.
- Blødt RTOS (Soft RTOS): Her kan systemet stadig fungere korrekt, selvom deadlines misses. Kvaliteten af servicen bliver dog forringet. Et godt eksempel er videostreaming, hvor en misset deadline kan resultere i et kort hak i billedet, men videoen fortsætter med at afspille.
Rate Monotonic Operativsystem
Dette er ikke en type OS i sig selv, men snarere en type planlægningsalgoritme, der ofte bruges i RTOS. Rate Monotonic Scheduling (RMS) er en statisk prioriteringsalgoritme, der tildeler højere prioritet til opgaver, der skal udføres oftest (dvs. dem med den korteste periode). Formålet er at sikre, at systemet kan opfylde kravene fra en række opgaver, der alle har stramme tidsfrister, med begrænsede ressourcer.

Forskel mellem Indlejrede og Desktop Operativsystemer
Selvom de begge er operativsystemer, er der markante forskelle mellem et OS designet til en indlejret enhed og et til en almindelig computer. Nedenstående tabel sammenligner de vigtigste forskelle.
| Funktion | Indlejret Operativsystem | Desktop Operativsystem |
|---|---|---|
| Primært Mål | Køre en enkelt, specifik applikation eller funktion. | Køre mange forskellige applikationer med diverse krav. |
| Ressourceforbrug | Optimeret til lavt strømforbrug, begrænset CPU og hukommelse. | Kræver betydelige ressourcer (CPU, RAM, lagerplads). |
| Brugerinteraktion | Minimal eller ingen direkte brugerinteraktion. Kører ofte autonomt. | Designet til konstant brugerinteraktion via tastatur, mus, skærm. |
| Pålidelighed | Ekstremt høj. Skal ofte køre fejlfrit i årevis. | Genstarter og nedbrud er acceptable i et vist omfang. |
| Markedsvariation | Stor variation med hundredvis af specialiserede OS'er. | Domineret af få store spillere (Windows, macOS, Linux-distroer). |
| Opdateringer | Opdateringer er sjældne og komplekse (firmware-opdatering). | Regelmæssige og nemme softwareopdateringer. |
Populære Indlejrede Operativsystemer
Markedet for indlejrede OS er mangfoldigt. Nogle af de mest kendte navne inkluderer:
- Embedded Linux: En af de mest populære valg på grund af sin fleksibilitet, open-source natur og enorme community. Projekter som Yocto og Buildroot giver udviklere mulighed for at bygge en skræddersyet, minimalistisk Linux-distribution til deres enhed. Det bruges i alt fra routere og smart-tv til bilers infotainmentsystemer.
- FreeRTOS: Et meget populært open-source realtidsoperativsystem til mikrocontroller-baserede systemer. Det er kendt for at være letvægtigt, pålideligt og nemt at bruge, hvilket gør det ideelt til IoT-enheder og små sensornetværk.
- QNX: Et kommercielt, Unix-lignende RTOS ejet af BlackBerry. Det er kendt for sin ekstreme pålidelighed og sikkerhed og bruges i vid udstrækning i bilindustrien til kritiske systemer som instrumentbrætter og avancerede førerassistentsystemer (ADAS).
- VxWorks: Et andet kommercielt RTOS, der har eksisteret i årtier. Det er kendt for sin ydeevne og sikkerhedscertificeringer, hvilket gør det til et foretrukket valg inden for luftfart, forsvar og medicinsk udstyr. NASA's Mars rovere, som Curiosity, kører på VxWorks.
- Zephyr: Et open-source RTOS, der hostes af Linux Foundation. Det er designet til ressourcebegrænsede enheder og har et stærkt fokus på sikkerhed og tilslutningsmuligheder, hvilket gør det velegnet til IoT-enheder.
- Android: Selvom det primært er kendt fra smartphones, er Android et Linux-baseret operativsystem, der i stigende grad bruges i indlejrede applikationer som bilinfotainment, smart home-enheder og digitale kiosker.
Ofte Stillede Spørgsmål (FAQ)
Hvad er den største forskel på et RTOS og et almindeligt OS?
Den afgørende forskel er determinisme. Et almindeligt OS som Windows er designet til at give den bedst mulige gennemsnitlige ydeevne og retfærdig fordeling af ressourcer mellem mange opgaver. Et RTOS er derimod designet til at garantere, at specifikke opgaver bliver færdige inden for en fastsat deadline, hver eneste gang. Timing og forudsigelighed er vigtigere end den samlede datagennemstrømning.
Kan et indlejret system køre uden et operativsystem?
Ja, det er muligt og ret almindeligt for meget simple enheder. Denne tilgang kaldes "bare metal"-programmering. Her skriver udvikleren en enkelt applikation, der kører direkte på hardwaren (mikrocontrolleren) uden et mellemliggende OS. Dette er velegnet til enheder, der kun udfører én meget simpel, gentagen opgave, og hvor der ikke er behov for komplekse funktioner som multitasking eller filsystemer.
Er Android et indlejret operativsystem?
Ja, Android kan betragtes som et meget avanceret og komplekst indlejret operativsystem. Det er bygget på Linux-kernen og er designet til at køre på enheder med specifik hardware, som smartphones, tablets, smart-tv og bilers infotainmentsystemer. Selvom det er langt mere ressourcekrævende end et typisk RTOS, falder det inden for definitionen af et OS, der er skræddersyet til en specifik enhedstype.
Hvad er det mest anvendte indlejrede operativsystem?
Det er svært at give et enkelt svar, da det afhænger af enhedstypen. For mere komplekse enheder med processorer (MPU'er) er Embedded Linux utroligt populært på grund af dets fleksibilitet og open-source natur. For mindre, ressourcebegrænsede enheder baseret på mikrocontrollere (MCU'er), er FreeRTOS en af de mest udbredte løsninger. Markedet er meget fragmenteret sammenlignet med desktop-markedet.
Hvis du vil læse andre artikler, der ligner Indlejrede OS: Den Ultimative Guide, kan du besøge kategorien Teknologi.
