QNX at VxWorks

Anonim

Ang unang bagay na napupunta sa ating isip kapag naririnig natin ang salitang operating system ay ang software program na ginagamit sa aming mga desktop computer at laptop tulad ng Microsoft Windows, Linux, Ubuntu, atbp, at Android para sa mga smartphone. Sa katunayan, ang karamihan sa mga digital na elektronikong aparato ay nagpapatakbo ng ilang uri ng operating system sa loob kung saan ay binuo ng programang microcontroller. Ang ebolusyon ng microcontroller ay may aspaltado na paraan para sa maraming mga naka-embed na mga application system na naglalaro ng isang mahalagang papel sa aming pang-araw-araw na buhay isang paraan o isa pa.

Ang isa sa gayong sistema na aming naririnig tungkol sa kani-kanina lamang ay ang Real Time Operating System, o simpleng tinutukoy na "RTOS". Ang RTOS ay isang operating system na ginagamit para sa mga real-time na application na nangangahulugan ng mga application na nagpoproseso ng data sa pagdating nito sa loob ng isang tinukoy na hadlang sa oras. Ang QNX at VxWorks ay dalawang magkakaibang real time operating system, higit sa lahat na ginagamit sa mga pang-industriya at pang-akademikong kapaligiran. Ang layunin ng artikulo ay upang makagawa ng walang pinapanigan na paghahambing sa pagitan ng dalawa.

Ano ang QNX?

QNX ay isang komersyal na real-time na operating system na unang binuo para sa naka-embed na mga system at orihinal na binuo ng Quantum Software Systems sa unang bahagi ng 1980s. Ang kumpanya na nakabase sa Canada ay pinalitan ng ulit na QNX Software Systems at sa huli ay nakuha ng Research in Motion (RIM) para gamitin bilang pundasyon para sa kanilang BlackBerry 10 OS at pagkatapos-popular na BlackBerry Playbook. Ang bersyon ng OS na ginamit sa Playbook ay QNX Neutrino na itinayo sa isang tunay na arkitektong microkernel. Ang QNX ang unang komersyal na matagumpay na operating system ng microkernel. Ang QNX ay karaniwang isang operating system ng Unix na batay sa isang tunay na disenyo ng microkernel at modular architecture kung saan ang mga elemento ng operating system ay tumatakbo bilang mga gawain, na kilala bilang Resource Managers, na magpapahintulot sa mga developer na patayin ang anumang pag-andar na sa palagay nila ay hindi kinakailangan na ngayon sa partikular na sistema. Ang pinakamagandang bagay tungkol sa QNX ay ito ay batay sa mensahe na nakabatay sa interprocess na komunikasyon.

Ano ang VxWorks?

Ang VxWorks ay isang real-time na operating system na partikular na idinisenyo para sa ipinamamahagi computing para sa mga application ng real time na naka-embed na mga system. Ito ay isang proprietary real-time na operating system na binuo ng Wind River Systems, isang kumpanya na nakabase sa California na nagdadalubhasa sa pagbubuo ng naka-embed na software para sa mga intelligent na konektado system. Ang VxWorks ang nangunguna sa industriya na RTOS na nagtatayo ng mga naka-embed na system at device sa mahigit tatlong dekada. Ito ay isang monolitik kernel na may malawak na inter-proseso ng komunikasyon at pag-synchronize ng mga function. Ang bawat build ng VxWorks ay kakaiba dahil sa arkitektura nito kung saan gumagana ang buong operating system sa espasyo ng kernel na nangangahulugang ang lahat ng mga serbisyo ng kernel at ang mga serbisyo ng user ay umiiral sa parehong puwang ng address na ginagawang mas mabilis ang pagpapatakbo ng operating system. Nagbibigay ito ng mga pag-debug ng pag-andar, pagsubaybay sa pagganap, pamamahala ng memorya, pag-iiskedyul ng CPU, at iba pang pag-andar ng operating system sa pamamagitan ng mga tawag sa system.

Pagkakaiba sa pagitan ng QNX at VxWorks

  1. Mga Pangunahing Kaalaman ng QNX at VxWorks

Ang parehong mga natatanging natatanging real-time na operating system na partikular na inilaan para sa real-time na mga application na may naka-embed na mga system, ang bawat isa ay may mga naglo-load ng iba't ibang mga bahagi na may iba't ibang mga pag-andar. Ang parehong mga sistema ay malawak na ginagamit sa mga malalaking pang-industriya at pang-akademikong mga kapaligiran at naging sa negosyo para sa higit sa mga dekada. QNX ay isang komersyal na RTOS na binuo ng Canada na batay sa Quantum Software Systems sa unang bahagi ng 1980s, na sa kalaunan ay nakuha ng RIM noong 2010. Ang VxWorks ay isang proprietary software na binuo ng Wind River Systems na nakabase sa California, ang pinuno ng industriya na nagdadalubhasa sa pagtatayo ng embedded software para sa mga intelligent na nakakonektang produkto at system.

  1. Arkitektura ng QNX at VxWorks

Ang parehong mga operating system ay gumagamit ng real-time na kernel para sa misyon-kritikal na mga application na nagpoproseso ng data dahil ito ay nangangahulugang ang mga subject ng system sa isang real-time na pagpilit na tinitiyak ang tugon sa loob ng mga natukoy na limitasyon ng oras, na kilala bilang 'deadline'. Ang pangunahing kaibahan ay nakasalalay sa arkitektura - habang ang QNX ay nakabatay sa isang pagpasa ng mensahe ng mensahe, ang VxWorks ay nagpapahiram sa sarili nito sa pagbabahagi ng memory architecture. Ang pagpasa ng mensahe ay napakahalaga sa disenyo ng kernel na nagpapahintulot sa sistema na ipasa ang impormasyon mula sa isang gawain patungo sa iba o sa maraming iba pa sa system. Ang ibinahaging memory architecture ay tumutukoy sa isang sistema na may sarili nitong pribadong address space para sa mga pisikal na ipinagkaloob na mga alaala.

  1. Kernel

Ang isa sa mga pangunahing pagkakaiba sa pagitan ng dalawang real-time na operating system ay ang QNX ay isang microkernel-based OS samantalang ang VxWorks ay isang monolithic kernel. Ang isang microkernel ay tulad ng isang maliit na operating system na gumagamit ng mga tawag sa system upang pamahalaan ang mga pangunahing serbisyo tulad ng address space management, pamamahala ng thread, at interprocess na komunikasyon. Ito ay tumutukoy sa isang sistema na nangangailangan ng isang limitadong hanay ng mga primitibo at minimum na dependency ng software upang ipatupad ang isang OS. Ang isang monolithic kernel, sa kabilang banda, namamahala sa lahat ng mga pangunahing serbisyo at mga tinukoy ng gumagamit na mga serbisyo kabilang ang mga inter-proseso ng mga komunikasyon sa isang protektadong espasyo ng kernel. Bilang isang monolitikong kernel, ang VxWorks ay nasa sarili.

  1. Pag-iiskedyul

Ang bawat thread o proseso ay may sariling priyoridad sa QNX. Sa ilalim ng QNX, ang lahat ng mga proseso ay tumatakbo sa isang priority-driven preemptive na batayan na nangangahulugan na ang proseso na may pinakamataas na priyoridad ay makakakuha upang ma-access ang CPU muna at ang mga prayoridad ay 0 hanggang 31.Ang pag-iiskedyul ay nangyayari sa real-time at ang bawat thread ay nagmamana ng priority ng magulang nito sa pamamagitan ng default. Kapag ang dalawang thread ay nagbabahagi ng parehong priyoridad, ang iba pang mga paraan ng pag-iiskedyul ay ginagamit ng QNX tulad ng FIFO, Round-Robin, at Sporadic Scheduling. Ang VxWorks, sa kabilang banda, ay gumagamit lamang ng dalawang uri ng mga algorithm sa pag-iiskedyul, preemptive na priority-based at Round-Robin scheduling. Magkasama silang nagbibigay ng higit na antas ng kontrol sa mga gumagamit para sa mahusay na pag-iiskedyul.

QNX kumpara sa VxWorks: Tsart ng Paghahambing

Buod ng QNX Kumpara. VxWorks

Parehong mga kernel-based na real-time na operating system na inilaan para sa real-time na mga application na nangangailangan ng mga gawain na maiproseso at makumpleto kapag dumating sila sa loob ng isang naunang natukoy na oras na pagpilit, kung hindi man tinutukoy bilang deadline. Ang dalawa ay nasa negosyo na mahigit sa 25 taon at nagdadalubhasa sa pagbubuo ng mga naka-embed na produkto at sistema, ngunit ito ay kung saan ang lahat ng pagkakatulad ay nagtatapos. QNX ay isang microkernel na nakabatay sa real-time na operating system na kung saan ay sa halip kaakit-akit sa sarili nitong, salamat sa kanyang mensahe pagpasa batay sa architecture na kung saan ay perpekto para sa paggawa ng maaasahang sistema ng ibinahagi. Ang VxWorks ay isang monolitikong kernel batay sa nakabahaging memory architecture na ginagawang perpekto para sa mga malalaking pang-industriya na kapaligiran tulad ng mga automotive system, avionics, consumer electronics, atbp.