Det första som kommer till vårt hjärta när vi hör ordet operativsystem är det program som används i våra stationära datorer och bärbara datorer som Microsoft Windows, Linux, Ubuntu, etc., och Android för smartphones. Faktum är att de flesta digitala elektroniska enheter kör ett slags operativsystem inuti vilket utvecklas av mikrokontrollerprogrammet. Utvecklingen av mikrokontroller har banat väg för många inbyggda systemapplikationer som spelar en avgörande roll i vårt dagliga liv på ett eller annat sätt.
Ett sådant system som vi har hört på senare tid är operativsystemet Real Time, eller helt enkelt kallat RTOS. RTOS är ett operativsystem som används för realtidsapplikationer vilket innebär de applikationer som behandlar data som det kommer inom en viss tidsbegränsning. QNX och VxWorks är två olika operativsystem i realtid, som i stor utsträckning används i industriella och akademiska miljöer. Syftet med artikeln är att göra en opartisk jämförelse mellan de två.
QNX är ett kommersiellt realtidsoperativsystem som ursprungligen utvecklades för inbyggda system och utvecklades ursprungligen av Quantum Software Systems i början av 1980-talet. Det Kanada-baserade företaget döptes senare till QNX Software Systems och slutligen förvärvades av Research in Motion (RIM) för användning som grund för deras BlackBerry 10 OS och sedan populära BlackBerry Playbook. Den version av operativsystemet som användes i Playbook var QNX Neutrino som byggdes på en sann mikrokärnorarkitektur. QNX var det första kommersiellt framgångsrika mikrokärnbaserade operativsystemet. QNX är i grund och botten ett Unix-liknande operativsystem baserat på en sann mikrokernel design och modulär arkitektur där elementen i operativsystemet kör som uppgifter, kända som Resource Managers, vilket skulle göra det möjligt för utvecklarna att stänga av någon funktionalitet som de tycker inte är krävs längre i det specifika systemet. Det bästa med QNX är att det är baserat på meddelandebaserad interprocesskommunikation.
VxWorks är ett operativsystem i realtid speciellt utformat för distribuerad databehandling för realtidsprogram med inbyggda system. Det är ett proprietärt realtidssystem som utvecklats av Wind River Systems, ett Kalifornien-baserat företag specialiserat på att utveckla inbyggd programvara för intelligenta anslutna system. VxWorks är branschledande RTOS som har byggt inbyggda system och enheter i över tre decennier. Det är en monolitisk kärna med omfattande kommunikations- och synkroniseringsfunktioner. Varje byggnad i VxWorks är unik på grund av dess arkitektur där hela operativsystemet fungerar i kärnrummet vilket innebär att alla kärntjänster och användartjänsterna finns i samma adressutrymme som gör körningen av operativsystemet snabbare. Det tillhandahåller felsökningsfunktioner, prestandaövervakning, minneshantering, CPU-schemaläggning och andra operativsystemsfunktioner genom systemanrop.
Båda är mycket unika realtidssystem som är speciellt avsedda för realtidsapplikationer med inbyggda system, var och en med massor av olika komponenter med olika funktioner. Båda systemen används ofta i stora industriella och akademiska miljöer och har varit verksamma i över decennier. QNX är en kommersiell RTOS som utvecklats av Kanada-baserade Quantum Software Systems i början av 1980-talet, som senare förvärvades av RIM 2010. VxWorks är en proprietär programvara utvecklad av Kalifornien-baserade Wind River Systems, branschledaren specialiserat på att bygga inbyggd programvara för intelligenta anslutna produkter och system.
Båda operativsystemen använder realtidskärnan för missionskritiska applikationer som behandlar data som det kommer att innebära i systemets ämnen till realtidsbegränsningar som garanterar svar inom fördefinierade tidsbegränsningar, annars kända som "deadlines". Huvudskillnaden ligger i arkitekturen - medan QNX bygger på ett budskap som passerar arkitektur, lutar VxWorks sig till delad minnesarkitektur. Meddelandeöverföring är grundläggande för kärndesignen som gör det möjligt för systemet att skicka information från en uppgift till en annan eller till flera andra i systemet. Delad minnesarkitektur avser ett system som har sitt eget privata adressutrymme för fysiskt distribuerade minnen.
En av de viktigaste skillnaderna mellan de två realtidsoperativsystemen är att QNX är en mikrokärnbaserad OS medan VxWorks är en monolitisk kärna. En mikrokärna är som ett litet operativsystem som använder systemsamtal för att hantera grundläggande tjänster som adressutrymmehantering, trådhantering och interprocesskommunikation. Det hänvisar till ett system som kräver en begränsad uppsättning av primitiva och minsta beroende på programvara för att implementera ett operativsystem. En monolitisk kärna å andra sidan hanterar alla grundläggande tjänster och användardefinierade tjänster, inklusive inter-process kommunikation i ett skyddat kärnområde. Som en monolitisk kärna är VxWorks självständig.
Varje tråd eller process har sin egen prioritet i QNX. Under QNX kör alla processer på en prioriterad förebyggande grund, vilket innebär att processen med högsta prioritet får åtkomst till CPU först och prioriteringen varierar från 0 till 31. Schemaläggningen sker i realtid och varje tråd ärver dess föräldrars prioritet som standard. När två trådar delar samma prioritet används andra schemaläggningsmetoder av QNX, såsom FIFO, Round-Robin och Sporadic Scheduling. VxWorks använder å andra sidan endast två typer av schemaläggningsalgoritmer, preemptive prioritetsbaserad och Round-Robin schemaläggning. Tillsammans ger de en större grad av kontroll till användarna för effektiv planering.
Båda är kärnbaserade realtidsoperativsystem som är avsedda för realtidsapplikationer som kräver att uppgifterna behandlas och avslutas när de kommer inom en fördefinierad tidsbegränsning, annars kallade tidsfrister. Båda är i branschen i över 25 år och är specialiserade på att utveckla inbyggda produkter och system, men det här är där alla likheter slutar. QNX är ett mikrokärnorbaserat realtidsoperativsystem som är ganska fascinerande på egen hand tack vare dess budskapsbaserade baserade arkitektur som är idealisk för att skapa pålitliga distribuerade system. VxWorks är en monolitisk kärna baserad på delad minnesarkitektur som gör den idealisk för stora industriella miljöer som bilsystem, avionik, konsumentelektronik etc.