VxWorks | |
---|---|
| |
Dezvoltator | Sisteme Wind River |
Familia OS | asemănător UNIX |
Prima editie | 1987 |
ultima versiune | 7 ( martie 2014 [ 1 ] ) |
Platforme acceptate | x86 |
Tipul de kernel | microkernel |
Licență | Termeni de utilizare |
Stat | Real |
site web | VxWorks RTOS |
Fișiere media la Wikimedia Commons |
VxWorks este un sistem de operare în timp real dezvoltat de Wind River Systems ( SUA ), conceput pentru utilizare în computere încorporate care rulează în sisteme hard-time real . VxWorks este un sistem cu instrumente încrucișate pentru dezvoltarea aplicațiilor software. Cu alte cuvinte, dezvoltarea are loc pe un computer instrumental numit gazdă, pentru utilizare ulterioară pe o mașină țintă - țintă.
La fel ca majoritatea altor sisteme de operare în timp real, VxWorks include un nucleu multitasking cu un planificator preventiv și răspuns rapid la întreruperi , facilități de comunicare și sincronizare între procese , precum și un sistem de fișiere și un subsistem de rețea ( stivă de protocol TCP/IP ) . Pachetul include instrumente pentru compilare încrucișată , monitorizare a performanței ( WindView ), depanare simbolică la distanță și emulare a diferitelor procesoare . În plus, un număr semnificativ de stive de protocoale diferite, subsisteme grafice etc. sunt furnizate atât de la Wind River Systems în sine, cât și de la terți. Setul de platforme încorporate suportate de VxWorks este una dintre cele mai extinse dintre sistemele de operare în timp real.
Pe 4 iunie 2009, Intel a anunțat intenția de a achiziționa Wind River Systems și VxWorks. [2] La 17 iulie 2009 a fost finalizată preluarea companiei [3] .
Numele „VxWorks” este considerat a fi un joc de cuvinte cu numele VRTX OS , creat de Ready Systems (acum deținut de Mentor Graphics ). La începutul anilor 1980, VRTX era destul de nou și brut și nu funcționa foarte bine. VRTX avea o dimensiune de doar 4 KB și nu putea fi folosit ca sistem de operare complet. Wind River a dobândit drepturile de a distribui o versiune îmbunătățită a VRTX numită VxWorks. Îmbunătățirile și extensiile realizate de WindRiver au făcut posibilă crearea unui sistem care să funcționeze (de exemplu, VXWorks avea un sistem de fișiere și un mediu de dezvoltare integrat ). Astfel, numele VxWorks poate însemna engleză. VRTX funcționează acum („VRTX funcționează acum”) sau engleză. VRTX care funcționează („VRTX care funcționează”).
Când a devenit clar că Ready Systems ar putea rezilia contractul de distribuție VRTX, Wind River și-a dezvoltat propriul nucleu de sistem de operare pentru a înlocui VRTX. Funcționalitatea de bază a noului nucleu VxWorks a fost aceeași cu cea a VRTX.
VxWorks are o arhitectură client-server și, la fel ca majoritatea sistemelor de operare în timp real, este construit folosind tehnologia microkernel . La cel mai scăzut nivel de nucleu neîntreruptibil (WIND Microkernel), sunt efectuate doar funcțiile de bază de planificare a sarcinilor și de gestionare a comunicării/ sincronizării între sarcini. Toate celelalte funcții RTOS de nivel superior — managementul memoriei, rețele și așa mai departe — sunt implementate prin funcții simple de nivel inferior. Datorită unei astfel de organizări ierarhice, se realizează viteza și determinismul nucleului sistemului, iar acest lucru facilitează construirea configurației necesare a sistemului de operare.
VxWorks poate fi configurat pentru sisteme cu limitări hardware severe, precum și pentru sisteme cu funcționalități avansate. Modulele individuale ale sistemului pot fi ele însele scalabile. Când construiți sistemul, puteți dezactiva anumite funcții de sistem care nu sunt necesare în acest moment, puteți elimina și anumite obiecte de sincronizare a nucleului dacă nu sunt necesare.
Dar, în ciuda faptului că sistemul este configurabil, nu se poate spune că implementează o abordare componente, deoarece toate modulele sunt construite deasupra nucleului de bază și nu pot fi utilizate în alte medii.
Nucleul VxWorks are următoarele proprietăți [4] :
VxWorks oferă atât mecanisme de programare bazate pe POSIX [5] , cât și mecanisme native de programare a vântului. Ambele opțiuni au planificare preventivă și ciclică. Diferența este că algoritmii de programare POSIX sunt aplicați per-proces, în timp ce programarea vântului este aplicată la nivelul întregului sistem [4] .
Toate sarcinile de sistem și aplicațiile din VxWorks folosesc același spațiu de adrese, ceea ce poate duce la instabilitate a sistemului dacă orice aplicație eșuează. Soluția la această problemă se obține prin instalarea unei componente furnizate separat VxVMI [6] , care permite fiecărui proces să folosească propriul spațiu virtual.
Pentru a obține o gestionare rapidă a întreruperilor externe , rutinele de serviciu de întrerupere ( ISR ) din VxWorks rulează într-un context special în afara contextelor de fir, care profită de timpul petrecut de obicei cu comutarea contextului. Funcția C pe care utilizatorul o atașează vectorului de întrerupere nu este de fapt ISR-ul real. Întreruperile nu pot accesa direct funcțiile C. În schimb, adresa ISR este stocată în tabelul vector de întrerupere, care este apelat de hardware. ISR face procesarea inițială (pregătirea stivei și salvarea registrelor) și apoi apelează funcția C care a fost atașată de utilizator [4] .
VxWorks are următoarele facilități de rețea [7] :
Instrumentele de rețea VxWorks includ, de asemenea, funcții care sunt necesare la dezvoltarea dispozitivelor conectate la Internet:
VxWorks acceptă următoarele protocoale de rutare:
VxWorks vine standard cu RIP, OSPF este disponibil ca produs opțional.
VxWorks acceptă atât SNMP (Simple Network Management Protocol) v1, cât și v2c. Compilatorul MIB (Management Information Base) acceptă obiecte și extensii MIB-II.
Interfața standard pentru conectarea protocoalelor de rețea portabile la sistemele de operare este interfața STREAM. Sub VxWorks, puteți instala orice protocol care are o implementare STREAM: atât standard ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...), cât și specializat. VxWorks OS acceptă sistemul STREAM UNIX V.4.
În 1994, Wind River Systems a anunțat programul WindNet, în cadrul căruia o serie de companii de software de comunicații și-au integrat produsele software cu VxWorks, oferind astfel suport pentru (aceasta nu este o listă exhaustivă) [5] :
VxWorks acceptă următoarele sisteme de fișiere [8] :
Un sistem multiprocesor în timp real, din punct de vedere software, poate fi de două tipuri: ASMP asimetric ( English Asymmetrical MultiProcessing ) și SMP simetric ( English Symmetrical MultiProcessing ). Cu multiprocesarea asimetrică ASMP, fiecare microprocesor, iar în cazul unui microprocesor cu mai multe nuclee, fiecare nucleu de procesor execută propria instanță a sistemului de operare, iar dezvoltatorul de aplicații software este responsabil pentru distribuirea proceselor (thread-uri, sarcini) între procesoare. În acest caz, sistemul multiprocesor este dificil de programat, dar are caracteristici predictibile (deterministe) în timp real.
Cu multiprocesarea simetrică SMP, un programator de aplicații vede un sistem multiprocesor ca pe un sistem virtual cu un singur procesor, ceea ce simplifică foarte mult dezvoltarea software-ului, dar nu există o garanție de 100% a predictibilității execuției datorită faptului că sarcina dintre procesoare este distribuită nu manual, dar automat.
Înainte de apariția microprocesoarelor încorporate cu mai multe nuclee, era puțină nevoie de multiprocesare simetrică. Complexitatea dezvoltării de software pentru sisteme multiprocesoare cuplate slab a fost scăzută, iar ușurința de programare a fost clasată pe locul al doilea după predictibilitatea comportamentului unui sistem în timp real. Prin urmare, în versiunile VxWorks 5.x și 6.x până la versiunea 6.5, a fost suportată doar multiprocesarea asimetrică, implementată ca o bibliotecă VxMP (disponibilă ca produs opțional) care asigură comunicarea între procesoare prin intermediul obiectelor din memoria partajată. Odată cu apariția microprocesoarelor cu mai multe nuclee încorporate cu nuclee de procesor foarte cuplate pe un cip, ușurința dezvoltării software a ajuns în prim-plan, ceea ce a condus la necesitatea sistemelor de operare în timp real încorporate pentru a suporta multiprocesarea simetrică.
Începând cu versiunea 6.6, lansată în noiembrie 2007 , VxWorks a început să accepte SMP [9] multiprocesare simetrică . Suportul pentru sistemele SMP este inclus în Wind River Workbench pentru VxWorks [10] și Workbench pentru IDE-uri On-Chip-Debugging . Suportul pentru sistemele SMP în VxWorks este disponibil ca o caracteristică opțională. Sunt acceptate următoarele microprocesoare cu mai multe nuclee:
Arhitecturi țintă acceptate (ținte) | Platforme de instrumente acceptate (gazde) | Interfețe acceptate |
---|---|---|
|
VxWorks a fost comparat cu alte sisteme de operare în timp real [11] .
RTOS | Arhitectură | Mediu de dezvoltare | POSIX | Max. număr de sarcini |
---|---|---|---|---|
VxWorks | Client-server, microkernel | Tornado, Workbench, Qt Creator Reclamă [12] | POSIX 1003.1, .1b, .1c (inclusiv pThreads) | limitat doar de memorie |
QNX | Client-server, microkernel și procese de interacțiune | QNX Momentics IDE, Qt Creator (comunității și comerciale) începând cu versiunea 3.0 [13] , Solaris, QNX4, QNX6 (până și inclusiv Neutrino 6.3.2) | POSIX 1003.1-2001, cu fire și extins. RV | 4095 procese, fiecare proces până la 32767 fire |
LynxOS [14] [15] | miez monolitic [16] | Luminozitate bazată pe mediul Eclipse | POSIX 1003.1a/b/c, 1003.1-2003 | limitat de memorie |
Sisteme de operare în timp real | |
---|---|
| |
deschis | |
Proprietate |
|
istoric |
|
|