VxWorks

VxWorks

Ecranul de pornire VxWorks în grafică ASCII
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] .

Istorie

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.

Arhitectură

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] :

Planificare

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.

Întreruperi

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] .

Facilități de rețea

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.

Caracteristici suplimentare de rețea: Programul WindNet

Î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] :

Sistem de fișiere

VxWorks acceptă următoarele sisteme de fișiere [8] :

Suport pentru multiprocesare simetrică și asimetrică

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:

Utilizare

Arhitecturi țintă acceptate (ținte) Platforme de instrumente acceptate (gazde) Interfețe acceptate

Comparație cu unele sisteme de operare în timp real

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

Note

  1. Wind River promovează conducerea multicore prin introducerea celui mai recent sistem de operare în timp real VxWorks . Consultat la 5 aprilie 2009. Arhivat din original pe 28 ianuarie 2012.  (Engleză)
  2. Intel atacă ARM, cumpără producătorul de sisteme de operare încorporate Wind River Arhivat 7 iunie 2009 la Wayback Machine  - Ars Technica. (Engleză)
  3. Intel Corporation a anunțat astăzi finalizarea cu succes a achiziției Wind River Systems Inc. Arhivat din original pe 18 noiembrie 2011.  (Engleză)
  4. 1 2 3 Articolul „Sisteme de operare în timp real” I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko  (link inaccesibil) p. 2.1. VxWorks
  5. 1 2 Articolul „VxWorks: Real-time operating system and real-time software development toolkit”, A. V. Demyanov Arhivat 11 octombrie 2006 pe Wayback Machine p. Caracteristici suplimentare de rețea: program WindNet , p. Suport pentru standardele POSIX
  6. VxWorks Facilities: O Overview  (link indisponibil) . Memorie virtuală (inclusiv opțiunea VxVMI)
  7. Articolul: „Sisteme de operare în timp real” I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko  (link inaccesibil) p. 5. Tabelele rezumative ale caracteristicilor proprietăților RTOS Tabel. 2  (link descendent din 11-07-2015 [2672 zile])
  8. Întrebări frecvente VxWorks/Tornado II . Consultat la 10 ianuarie 2009. Arhivat din original pe 7 februarie 2010.
  9. VxWorks 6.6 SMP, Symmetric Multiprocessing Technology for Multicore Arhivat din original pe 12 februarie 2009.
  10. pdf: Wind River Workbench (link indisponibil) . Data accesului: 10 ianuarie 2009. Arhivat din original la 16 octombrie 2007. 
  11. Tabelele rezumative ale caracteristicilor proprietății RTOS Arhivat 6 mai 2009.
  12. VxWorks Notes - Qt Documentation (downlink) . Consultat la 17 septembrie 2015. Arhivat din original la 28 septembrie 2015. 
  13. Target Platforms - Qt Documentation . Consultat la 17 septembrie 2015. Arhivat din original la 8 octombrie 2015.
  14. Articolul: „LynxOS - un sistem de operare în timp real în standardul POSIX”, Zolotarev S. V., Kalyadin A. Yu. (link inaccesibil) . Consultat la 13 ianuarie 2009. Arhivat din original pe 5 ianuarie 2009. 
  15. articol de știri  (link inaccesibil)
  16. articol: „O privire asupra lumii sistemelor de operare în timp real în 2006 de S.V. Zolotarev”  (link inaccesibil) p. „Monolitic sau microkernel?”

Literatură

Link -uri