QNX

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
QNX
sistem de operare
Siglă
Dezvoltator Mure
Familie Unix
lansare Acasă (1982 ; acum 39 de ani )
Release curent 6.6 (martie 2014 ; acum 7 ani )
Tipul de nucleu microkernel în timp real
platforme sprijinite Intel 8088 , x86 , MIPS , PowerPC , SH-4 , ARM , StrongARM , XScale
Tipul licenței Software proprietar
Licență Proprietar ( EULA )
Site-ul web www.qnx.com/

QNX (pronunțat QNX sau Q-nix) este un sistem comercial de operare compatibil POSIX, în timp real, similar cu Unix , bazat pe microkernel și care vizează în principal piața sistemelor încorporate . La 12 septembrie 2007, sursele întregului sistem de operare și majoritatea suplimentelor au fost puse la dispoziție în scopuri necomerciale.

Descriere

QNX este conceput ca un sistem de microkernel , a cărui idee de bază este de a construi sistemul de operare ca un set de piese mici care oferă un serviciu specific: aceste piese sunt numite „servere” și, de asemenea, iau locul „driverelor de dispozitiv” ale sistemului de operare. sisteme.traditionale.

Tocmai în această abordare se află diferența dintre un sistem de microkernel și nucleul sistemelor de operare tradiționale: în acestea, sistemul de operare este compus de la începutul multor module grupate într-un singur software mare (nucleu monolitic) care în mod normal nu poate fi separat individual de restul.

În cazul QNX, sistemul microkernel permite utilizatorului să-și asambleze propriul sistem folosind doar piesele care sunt cu adevărat necesare, lăsându-le complet pe cele nedorite și asta fără a modifica sau recompila sistemul de operare în sine.

În același timp, este posibil să extindeți sistemul cu piese scrise de utilizator sau de către alții, fără pericolul de a provoca defecțiuni în restul sistemului de operare. Un sistem de operare complet în timp real, cu funcții complete, incluzând stiva de rețea TCP / IP , un sistem de fișiere , un interpret de comenzi și multe altele se pot potrivi confortabil pe o dischetă .

De la versiunea numită Neutrino QNX a fost portat, în plus față de procesoarele x86, la un număr mare de procesoare diferite, atâta timp cât acestea sunt echipate cu unitate de gestionare a memoriei (MMU), inclusiv: PowerPC , ARM, StrongARM , MIPS și SH- 4 .

Inițial, QNX furniza o licență de utilizare pentru dezvoltare necomercială (QNX NC), care a fost suspendată în 2003 și oferă acum posibilitatea de a descărca sistemul complet cu o licență temporară de 30 de zile. Deoarece sistemul de dezvoltare, comparativ cu unul echivalent pentru un sistem comparabil precum Windows CE sau Linux RTAI , este destul de costisitor, acest tip de limitare împiedică de fapt studiul și difuzarea acestui sistem excelent, care ar putea ajunge să se închidă într-o nișă .

Sistemul de dezvoltare folosește platforma Eclipse , în care QNX și-a integrat instrumentele de dezvoltare și sistemul de operare. Fiind Eclipse dezvoltat în Java , sistemul de dezvoltare poate rula practic pe orice sistem cu Java și o interfață grafică compatibilă, inclusiv sistemele Windows, Unix și Linux și QNX în sine.

Istorie

Gordon Bell și Dan Dodge au fost oamenii care au creat QNX. În 1980 erau studenți la Universitatea din Waterloo și urmau cursul de proiectare a sistemelor de operare, unde se aștepta scrierea unor nuclee simple în timp real. Amândoi convinși de posibilitatea exploatării comerciale a acestor sisteme, au fondat Quantum Software Systems în Kanata , Ontario (o zonă de înaltă tehnologie în afara Ottawa ) în 1982 . În același an, a fost lansată prima versiune QNX , care rulează pe arhitectura Intel 8088 .

QNX a fost inițial ales ca sistem de operare pentru computerul Unisys ICON , proiectat de districtul educațional din Ontario . QNX a fost utilizat în cea mai mare parte pentru proiecte „mari”, deoarece nucleul său de 44 KB era prea mare pentru cipurile mici de microcomputer ale vremii. În acest context, QNX și-a câștigat reputația ca un sistem robust și fiabil și, prin urmare, a fost utilizat pentru aplicații industriale. La sfârșitul anilor 1980, compania a decis să rescrie nucleul și să utilizeze standardul POSIX - rezultatul a fost QNX 4 . Datorită interfeței POSIX , tranziția software-ului Unix și BSD la QNX a devenit foarte simplă.

În această perioadă, Patrick Hayden și Robin Burgener au dezvoltat un nou sistem grafic de ferestre: sistemul de ferestre, acest concept a fost implementat într-o interfață grafică brevetată, numită Photon microGUI . Cu toate acestea, o versiune grafică a sistemului X Window este disponibilă și în QNX.

La sfârșitul anilor 1990, compania a rescris complet QNX, care a fost conceput de la zero ca un sistem de operare pentru suportul nativ al sistemelor multiprocesor ( SMP ). A fost adăugat suport complet pentru API-urile cu specificații POSIX , inclusiv porțiuni POSIX neimplementate încă de niciun alt sistem. Rezultatul a fost QNX Neutrino , lansat în 2001 . Concomitent cu publicarea kernel-ului Neutrino, sistemul QNX a devenit membru al consorțiului Eclipse și a publicat o suită a bancului de lucru Eclipse cu pluginuri dedicate dezvoltării QNX Neutrino, numită Momentics .

În 2004 , compania a fost vândută grupului Harman International Harman International Industries . La 12 septembrie 2007 , codul sursă QNX este lansat sub o licență hibridă de sursă deschisă .

QNX a fost utilizat pe scară largă în mediul auto pentru sistemele telematice . Până când a fost vândut grupului Harman, QNX a fost utilizat în peste 180 de modele de mașini diferite.

La 9 aprilie 2010, Research In Motion , un producător de smartphone-uri BlackBerry , a anunțat achiziția QNX Software Systems. Aproape exact un an mai târziu, pe 19 aprilie 2011 , a fost lansat pe piață BlackBerry PlayBook , o tabletă RIM bazată pe sistemul de operare QNX (redenumită cu ocazia „BlackBerry Tablet OS”).

Sistemul Cisco IOS-XR (ultra înaltă disponibilitate IOS) se bazează pe QNX, la fel ca și sistemul IOS Software Modularity .

În martie 2014 , Apple a anunțat lansarea sistemului CarPlay pentru computerul mobil în mașină, bazat pe sistemul de operare QNX Neutrino OS.

Arhitectură

QNX este un sistem de microkernel, nucleul în sine conține doar aceste părți:

Toate celelalte programe funcționează ca ceea ce în alte sisteme s-ar numi „proces de utilizator”. În acest mod rulează și procesul de sistem numit „proc”, combinat cu microkernel și care are sarcina de a gestiona memoria și de a crea procese.

Principiul de bază care face posibilă utilizarea serviciilor kernel și conectarea diferitelor procese împreună sunt mecanismele QNX IPC și încărcătorul de încărcare care pot încărca o imagine de sistem care conține nu numai nucleul, ci orice altă resursă dorită, cum ar fi utilizatorul programelor, partajată biblioteci sau biblioteci partajate și multe altele.

Comunicarea intraprocesuala

Mecanismul de bază al comunicării dintre procesele QNX, pe care s-au dezvoltat toate celelalte, este constituit de trecerea unui mesaj de la un proces la altul și de așteptarea răspunsului. Această funcție este îndeplinită atomic prin procedura MsgSend . Mesajul este copiat, prin kernel, din spațiul de memorie al procesului de trimitere în spațiul de memorie al procesului de recepție. Partea interesantă este că, dacă procesul destinatarului așteaptă deja mesajul, acesta va fi activat în același timp cu primirea, fără a trece prin planificator. În acest fel, atât expeditorul, cât și destinatarul nu vor trebui să aștepte ciclurile de planificare pentru a-și finaliza operațiunea. Acest mecanism integrează unele funcții de planificare a kernelului în funcțiile IPC și face din QNX unul dintre cele mai rapide sisteme de micro kernel cu sistemul IPC. În multe sisteme, cum ar fi UNIX , Linux sau Windows , mecanismele IPC sunt mult mai grele și ineficiente, având în schimb să treacă întotdeauna prin kernel și programator. Chiar și în multe micro-nuclee, lipsa unor mecanisme IPC eficiente le diminuează foarte mult performanța.

În ciuda acestor mecanisme, o comparație directă între sistemele de microkernel și sistemele de nuclee monolitice indică faptul că sistemele de microkernel nu au, în general, aceleași performanțe ca sistemele de nuclee monolitice. Acest lucru se datorează faptului că serviciile unui sistem de micro kernel sunt neapărat implementate în spații de memorie diferite și, prin urmare, necesită servicii IPC de comunicații, în timp ce serviciile dintr-un nucleu monolitic împărtășesc același spațiu de memorie și nu necesită în mod normal servicii IPC. Evident, eficiența mai mare a unui nucleu monolitic este plătită din punct de vedere al fiabilității, deoarece un blocaj într-un serviciu spațial de nucleu va provoca probabil blocarea întregului sistem. O blocare într-un serviciu de micro kernel va cauza de obicei numai pierderea serviciului respectiv și nu a întregului sistem. QNX implementează câteva trucuri pentru creșterea performanței, de exemplu prin limitarea utilizării întreruperilor și folosirea tehnicilor de sondare pentru a reduce numărul de modificări de context (comutare de sarcini). De asemenea, este posibil să se utilizeze tehnici de încărcare a unui driver folosind DLL-uri sau plugin-uri într-un singur spațiu de proces. Cu toate acestea, aceste tehnici reduc securitatea sistemului, deoarece scad protecția oferită de separarea spațiilor de memorie, care este cheia sistemelor de microkernel . Dacă doriți să mențineți o structură complet microkernel, QNX va fi, de asemenea, supus degradărilor de performanță, mai ales atunci când este utilizat în sisteme cu sarcini de întrerupere foarte grele.

Datorită structurii microkernelului, QNX este, de asemenea, un sistem de operare distribuit . Tehnologia utilizată de QNX se numește Transparent Distributed Processing și a fost dezvoltată de Dan Dodge și Peter van der Veen , care dețin brevetul: patent Această tehnologie face extrem de ușor crearea de rețele de sisteme QNX care pot construi un supercomputer și gestiona mai multe aplicații pe diferite mașini.

Turnătorie27

Foundry27 este noua comunitate promovată de sistemul QNX pentru a servi dezvoltării sistemului Neutrino. Dezvoltatorii se pot înregistra, sub licența propusă, și pot obține codul sursă și seturile de instrumente aferente sistemului de operare. [1]

Sisteme similare

Alte sisteme integrate integrate comparabile sunt sistemele LynxOS , VxWorks , Linux , THEOS , Threadx , Windows CE , RTEMS , OS-9 , sistemele ITRON .

Notă

  1. ^ Comunicate de presă QNX: Foundry27

Bibliografie

Alte proiecte

linkuri externe

Controlul autorității BNF ( FR ) cb16265619v (data)
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT