Den første ting, der kommer ind i vores sind, når vi hører ordet operativsystem, er softwareprogrammet, der bruges på vores stationære computere og laptops såsom Microsoft Windows, Linux, Ubuntu, osv., Og Android til smartphones. Faktisk kører de fleste af de digitale elektroniske enheder en slags styresystem indeni, som er udviklet af mikrokontrollerprogrammet. Udviklingen af mikrokontroller har banet vej for adskillige indlejrede systemapplikationer, der på en eller anden måde spiller en afgørende rolle i vores daglige liv.
Et sådant system, vi har hørt om for nylig, er Real Time-operativsystemet, eller blot kaldet ”RTOS”. RTOS er et operativsystem, der bruges til realtidsapplikationer, hvilket betyder, at de applikationer, der behandler data, når de kommer inden for en specificeret tidsbegrænsning. QNX og VxWorks er to forskellige realtids-operativsystemer, der stort set bruges i industrielle og akademiske miljøer. Formålet med artiklen er at foretage en objektiv sammenligning mellem de to.
QNX er et kommercielt realtids-operativsystem, der oprindeligt blev udviklet til indlejrede systemer og blev oprindeligt udviklet af Quantum Software Systems i de tidlige 1980'ere. Det Canada-baserede firma blev senere omdøbt til QNX Software Systems og til sidst erhvervet af Research in Motion (RIM) til brug som grundlag for deres BlackBerry 10 OS og den daværende populære BlackBerry Playbook. Den version af OS, der blev brugt i Playbook, var QNX Neutrino, som var bygget på en ægte mikrokernel-arkitektur. QNX var det første kommercielt succesrige mikrokernel-baserede operativsystem. QNX er dybest set et Unix-lignende operativsystem, der er baseret på et ægte mikrokernel-design og modulær arkitektur, hvor elementerne i operativsystemet kører som opgaver, kendt som Resource Managers, som tillader udviklerne at slukke for enhver funktionalitet, som de mener ikke er kræves længere i det bestemte system. Det bedste ved QNX er, at det er baseret på meddelelsesbaseret interprocess-kommunikation.
VxWorks er et realtids-operativsystem, der specifikt er designet til distribueret computing til realtidsapplikationer med indlejrede systemer. Det er et proprietært operativsystem i realtid udviklet af Wind River Systems, et Californien-baseret firma, der er specialiseret i udvikling af integreret software til intelligente tilsluttede systemer. VxWorks er den branchen førende RTOS, der har bygget indlejrede systemer og enheder i over tre årtier. Det er en monolitisk kerne med omfattende interproces-kommunikation og synkroniseringsfunktioner. Hver build af VxWorks er unik på grund af dens arkitektur, hvor hele operativsystemet fungerer i kernelrummet, hvilket betyder, at alle kerne-tjenester og brugertjenester findes i det samme adresserum, hvilket gør udførelsen af operativsystemet hurtigere. Det giver debugging-funktioner, ydeevneovervågning, hukommelsesstyring, CPU-planlægning og andre operativsystemfunktioner gennem systemopkald.
Begge er meget unikke realtids-operativsystemer, der specifikt er beregnet til realtidsapplikationer med indlejrede systemer, hver med belastninger af forskellige komponenter med forskellige funktionaliteter. Begge systemer er vidt brugt i store industrielle og akademiske miljøer og har været i forretning i over årtier. QNX er en kommerciel RTOS udviklet af Canada-baserede Quantum Software Systems i begyndelsen af 1980'erne, som senere blev erhvervet af RIM i 2010. VxWorks er en proprietær software udviklet af Californien-baserede Wind River Systems, branche-førende specialiseret i opbygning af integreret software til intelligente tilsluttede produkter og systemer.
Begge operativsystemer bruger realtidskerne til missionskritiske applikationer, der behandler data, når det betyder, at systemet udsættes for en realtidsbegrænsning, som garanterer svar inden forud definerede tidsbegrænsninger, også kendt som 'frister'. Den største forskel ligger i arkitekturen - mens QNX er baseret på en meddelelse, der videregiver arkitektur, udlåner VxWorks sig til delt hukommelsesarkitektur. Meddelelse videresendelse er grundlæggende for kernen design, som gør det muligt for systemet at videregive information fra en opgave til en anden eller til flere andre i systemet. Delt hukommelsesarkitektur refererer til et system, der har sin egen private adresserum til fysisk distribuerede hukommelser.
En af de vigtigste forskelle mellem de to realtidsoperativsystemer er, at QNX er et mikrokernelbaseret operativsystem, mens VxWorks er en monolitisk kerne. En mikrokernel er som et lille operativsystem, der udnytter systemopkald til at styre basale tjenester som adresserumstyring, trådstyring og interprocesskommunikation. Det henviser til et system, der kræver et begrænset sæt primitiver og minimum softwareafhængighed for at implementere et operativsystem. En monolitisk kerne administrerer på den anden side alle de basale tjenester og brugerdefinerede tjenester inklusive interproceskommunikation i et beskyttet kerneområde. Som en monolitisk kerne er VxWorks selvstændig.
Hver tråd eller proces har sin egen prioritet i QNX. Under QNX kører alle processer på et prioriteret-drevet forebyggende grundlag, hvilket betyder, at processen med den højeste prioritet får adgang til CPU'en først, og prioriteterne spænder fra 0 til 31. Planlægningen sker i realtid, og hver tråd arver sin forældres prioritet som standard. Når to tråde deler den samme prioritet, bruges andre planlægningsmetoder af QNX, såsom FIFO, Round-Robin og Sporadic Scheduling. VxWorks bruger på den anden side kun to typer planlægningsalgoritmer, præemptiv prioriteret og Round-Robin planlægning. Sammen giver de en større grad af kontrol til brugerne for effektiv planlægning.
Begge er kernebaserede realtids-operativsystemer beregnet til realtidsapplikationer, der kræver, at opgaver behandles og afsluttes, når de kommer inden for en foruddefineret tidsbegrænsning, ellers benævnt deadlines. Begge er i branchen i over 25 år og er specialiserede i at udvikle indlejrede produkter og systemer, men det er her alle ligheder ender. QNX er et mikrokernel-baseret realtids-operativsystem, der er ret fascinerende på egen hånd takket være sin meddelelsesoverførende baserede arkitektur, som er ideel til at fremstille pålidelige distribuerede systemer. VxWorks er en monolitisk kerne, der er baseret på delt hukommelsesarkitektur, hvilket gør den ideel til store industrielle miljøer som automobilsystemer, flyelektronik, forbrugerelektronik osv..