Forskjellen mellom QNX og VxWorks

Det første som kommer til vårt hjerte når vi hører ordet operativsystem er programvaren som brukes i stasjonære datamaskiner og bærbare datamaskiner som Microsoft Windows, Linux, Ubuntu, etc., og Android for smartphones. Faktisk kjører de fleste digitale elektroniske enheter en slags operativsystem inni som er utviklet av microcontroller-programmet. Utviklingen av mikrokontroller har banet vei for mange innebygde systemapplikasjoner som spiller en avgjørende rolle i vårt daglige liv på en eller annen måte.

Et slikt system vi har hørt om i det siste, er Real Time Operating System, eller bare referert til som "RTOS". RTOS er et operativsystem som brukes til sanntidsapplikasjoner, noe som betyr at programmene som behandler data som det kommer inn innen en angitt tidsbegrensning. QNX og VxWorks er to forskjellige operativsystemer i sanntid, hovedsakelig brukt i industrielle og akademiske miljøer. Formålet med artikkelen er å gjøre en objektiv sammenligning mellom de to.

Hva er QNX?

QNX er et kommersielt sanntidsoperativsystem som ble utviklet for innebygde systemer, og ble opprinnelig utviklet av Quantum Software Systems tidlig på 1980-tallet. Det Canada-baserte selskapet ble senere omdøpt til QNX Software Systems og til slutt kjøpt av Research in Motion (RIM) for bruk som grunnlag for deres BlackBerry 10 OS og deretter populære BlackBerry Playbook. Versjonen av operativsystemet som ble brukt i Playbook var QNX Neutrino, som ble bygget på en ekte mikrokjernelarkitektur. QNX var det første kommersielt vellykkede mikrokjernen-baserte operativsystemet. QNX er i utgangspunktet et Unix-lignende operativsystem basert på en ekte mikrokjerneledesign og modulær arkitektur hvor elementene i operativsystemet kjører som oppgaver, kjent som Resource Managers, som vil tillate utviklerne å slå av enhver funksjonalitet som de tror ikke er kreves lenger i det aktuelle systemet. Det beste med QNX er at den er basert på meldingsbasert interprosesskommunikasjon.

Hva er VxWorks?

VxWorks er et operativsystem i sanntid, spesielt utviklet for distribuert databehandling for sanntidsapplikasjoner med innebygde systemer. Det er et proprietært sanntidsoperativsystem utviklet av Wind River Systems, et California-basert selskap som spesialiserer seg på å utvikle innebygd programvare for intelligente tilkoblede systemer. VxWorks er bransjeledende RTOS som har bygget innebygde systemer og enheter i over tre tiår. Det er en monolitisk kjerne med omfattende kommunikasjons- og synkroniseringsfunksjoner mellom prosessene. Hver bygg i VxWorks er unik på grunn av sin arkitektur der hele operativsystemet fungerer i kjerneplassen, noe som betyr at alle kjernetjenester og brukertjenestene eksisterer i samme adresserom som gjør utførelsen av operativsystemet raskere. Den gir feilsøkingsfunksjoner, ytelsesovervåking, minnehåndtering, CPU-planlegging og andre operativsystemfunksjoner gjennom systemanrop.

Forskjellen mellom QNX og VxWorks

  1. Grunnleggende om QNX og VxWorks

Begge er veldig unike sanntidsoperativsystemer som er spesielt beregnet for sanntidsapplikasjoner med innebygde systemer, hver med mange forskjellige komponenter med forskjellige funksjoner. Begge systemene er mye brukt i store industrielle og akademiske miljøer og har vært i virksomhet i over tiår. QNX er en kommersiell RTOS utviklet av Canada-baserte Quantum Software Systems tidlig på 1980-tallet, som senere ble kjøpt opp av RIM i 2010. VxWorks er en proprietær programvare utviklet av California-baserte Wind River Systems, bransjeleder spesialisert på å bygge innebygd programvare for intelligente tilkoblede produkter og systemer.

  1. Arkitektur av QNX og VxWorks

Begge operativsystemene bruker sanntids-kjernen til misjonskritiske applikasjoner som behandler data som det kommer til å bety systemets fag til en sanntidsbegrensning som garanterer respons innen forhåndsdefinerte tidsbegrensninger, ellers kjent som "deadlines". Hovedforskjellen ligger i arkitekturen - mens QNX er basert på en melding som passerer arkitektur, gir VxWorks seg til felles minnearkitektur. Meldingspassering er grunnleggende for kjernedesignen som gjør at systemet kan sende informasjon fra en oppgave til en annen eller til flere andre i systemet. Delt minnearkitektur refererer til et system som har sitt eget private adresserom for fysisk distribuerte minner.

  1. Kernel

En av de viktigste forskjellene mellom de to sanntidsoperativsystemene er at QNX er et mikrokjernebasert OS mens VxWorks er en monolitisk kjernen. En mikrokjernen er som et lite operativsystem som utnytter systemanrop til å administrere grunnleggende tjenester som adressromstyring, trådstyring og interprosesskommunikasjon. Det refererer til et system som krever et begrenset sett med primitiver og minimal programvareavhengighet for å implementere et operativsystem. En monolitisk kjernen forvalter derimot alle grunnleggende tjenester og brukerdefinerte tjenester, inkludert inter-prosesskommunikasjon i et beskyttet kjernefelt. Som en monolitisk kjernen er VxWorks selvstendig.

  1. planlegging

Hver tråd eller prosess har sin egen prioritet i QNX. Under QNX kjører alle prosessene på en prioriteringsbasert preemptive basis, noe som betyr at prosessen med høyeste prioritet får tilgang til CPU først og prioriteringene varierer fra 0 til 31. Planleggingen skjer i sanntid, og hver tråd arver foreldrenes prioritet som standard. Når to tråder deler samme prioritet, brukes andre planleggingsmetoder av QNX som FIFO, Round-Robin og Sporadic Scheduling. VxWorks bruker derimot kun to typer planleggingsalgoritmer, preemptive prioritetsbasert og Round-Robin planlegging. Sammen gir de en større grad av kontroll til brukerne for effektiv planlegging.

QNX vs VxWorks: Sammenligningstabel

Sammendrag av QNX Vs. VxWorks

Begge er kjernebaserte sanntidsoperativsystemer beregnet på sanntidsapplikasjoner som krever at oppgaver blir behandlet og fullført etter hvert som de kommer innenfor en forhåndsdefinert tidsbegrensning, ellers referert til som tidsfrister. Begge er i bransjen i over 25 år og er spesialisert på å utvikle innebygde produkter og systemer, men her er alle likhetene slutt. QNX er et mikrokjernelbasert sanntidsoperativsystem som er ganske fascinerende alene, takket være dens budskapsbasert baserte arkitektur som er ideell for å lage pålitelige distribuerte systemer. VxWorks er en monolitisk kjernen basert på delt minnearkitektur som gjør den ideell for store industrielle miljøer som bilsystemer, avionikk, forbrukerelektronikk osv..