VxWorks

VxWorks

VxWorks startskärm i ASCII-grafik
Utvecklaren Wind River Systems
OS-familjen UNIX-liknande
Första upplagan 1987
senaste versionen 7 ( mars 2014 [ 1 ] )
Plattformar som stöds x86
Typ av kärna mikrokärna
Licens Villkor
stat Faktisk
Hemsida VxWorks RTOS
 Mediafiler på Wikimedia Commons

VxWorks  är ett realtidsoperativsystem utvecklat av Wind River Systems ( USA ), designat för användning i inbyggda datorer som körs i hårda realtidssystem . VxWorks är ett system med tvärverktyg för att utveckla applikationsprogramvara. Utvecklingen sker med andra ord på en instrumentell dator som kallas värd, för efterföljande användning på en målmaskin - mål.

Liksom de flesta andra realtidsoperativsystem inkluderar VxWorks en kärna med flera uppgifter med en förebyggande schemaläggare och snabb respons på avbrott , kommunikations- och synkroniseringsfaciliteter mellan processer , såväl som ett filsystem och nätverksundersystem ( TCP/IP- protokollstack ) . Paketet innehåller verktyg för korskompilering , prestandaövervakning ( WindView ), symbolisk fjärrfelsökning och emulering av olika processorer . Dessutom levereras ett betydande antal olika protokollstackar, grafiska delsystem, etc. både från Wind River Systems själva och från tredje part. Uppsättningen av inbäddade plattformar som stöds av VxWorks är en av de mest omfattande bland realtidsoperativsystem.

Den 4 juni 2009 tillkännagav Intel planer på att förvärva Wind River Systems och VxWorks. [2] Den 17 juli 2009 slutfördes övertagandet av företaget [3] .

Historik

Namnet "VxWorks" tros vara en ordlek på namnet VRTX OS , skapat av Ready Systems (nu ägs av Mentor Graphics ). I början av 1980-talet var VRTX ganska nytt och rått, och det fungerade inte särskilt bra. VRTX var endast 4 KB i storlek och kunde inte användas som ett komplett operativsystem. Wind River har förvärvat rättigheterna att distribuera en förbättrad version av VRTX som heter VxWorks. Förbättringar och tillägg gjorda av WindRiver gjorde det möjligt att skapa ett system som fungerade (till exempel hade VXWorks ett filsystem och en integrerad utvecklingsmiljö ). Namnet VxWorks kan alltså betyda engelska.  VRTX fungerar nu ("VRTX fungerar nu") eller engelska.  VRTX som fungerar ("VRTX som fungerar").

När det stod klart att Ready Systems kunde säga upp VRTX-distributionsavtalet utvecklade Wind River sin egen operativsystemkärna för att ersätta VRTX. Den grundläggande funktionaliteten för den nya VxWorks-kärnan var densamma som VRTX.

Arkitektur

VxWorks har en klient-server- arkitektur och är, som de flesta hårda realtidsoperativsystem, byggd med hjälp av mikrokärnteknologi . På den lägsta avbrottsfria kärnnivån (WIND Microkernel) utförs endast de grundläggande funktionerna för uppgiftsschemaläggning och kommunikation/ synkroniseringshantering mellan uppgifter. Alla andra RTOS-funktioner på högre nivå – minneshantering, nätverk och så vidare – implementeras genom enkla funktioner på lägre nivå. På grund av en sådan hierarkisk organisation uppnås hastigheten och determinismen hos systemkärnan, och detta gör det också enkelt att bygga den nödvändiga konfigurationen av operativsystemet.

VxWorks kan konfigureras för system med allvarliga hårdvarubegränsningar samt system med avancerad funktionalitet. Systemets individuella moduler kan själva vara skalbara. När du bygger systemet kan du inaktivera vissa systemfunktioner som inte behövs för tillfället, du kan även ta bort specifika kärnsynkroniseringsobjekt om de inte behövs.

Men trots att systemet är konfigurerbart kan det inte sägas att det implementerar en komponentmetod, eftersom alla moduler är byggda ovanpå baskärnan och inte kan användas i andra miljöer.

VxWorks-kärnan har följande egenskaper [4] :

Planering

VxWorks tillhandahåller både POSIX- baserade [5] schemaläggningsmekanismer och inbyggda vindschemaläggningsmekanismer. Båda alternativen har förebyggande och cyklisk planering. Skillnaden är att POSIX-schemaläggningsalgoritmer tillämpas per process, medan vindschemaläggning tillämpas i hela systemet [4] .

Alla systemuppgifter och applikationer i VxWorks använder samma adressutrymme, vilket kan leda till systeminstabilitet om någon applikation misslyckas. Lösningen på detta problem uppnås genom att installera en separat tillhandahållen komponent VxVMI [6] , som gör att varje process kan använda sitt eget virtuella utrymme.

Avbryter

För att uppnå snabb hantering av externa avbrott körs avbrottsservicerutiner ( ISR  ) i VxWorks i ett speciellt sammanhang utanför trådsammanhang, vilket utnyttjar den tid som vanligtvis läggs på kontextväxling. C-funktionen som användaren kopplar till avbrottsvektorn är faktiskt inte den faktiska ISR. Avbrott kan inte direkt komma åt C-funktioner. Istället lagras adressen för ISR i avbrottsvektortabellen, som anropas av hårdvara. ISR gör den första bearbetningen (förbereder stacken och sparar registren) och anropar sedan C-funktionen som kopplades av användaren [4] .

Nätverksfaciliteter

VxWorks har följande nätverksfaciliteter [7] :

VxWorks nätverksverktyg inkluderar även funktioner som är nödvändiga när man utvecklar enheter anslutna till Internet:

VxWorks stöder följande routingprotokoll:

VxWorks levereras som standard med RIP, OSPF finns som tillvalsprodukt.

VxWorks stöder både SNMP (Simple Network Management Protocol) v1 och v2c. MIB - kompilatorn (Management Information Base) stöder MIB-II-objekt och tillägg.

Standardgränssnittet för att ansluta bärbara nätverksprotokoll till operativsystem är STREAMS-gränssnittet. Under VxWorks kan du installera vilket protokoll som helst som har en STREAMS-implementering: både standard ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...) och specialiserade. VxWorks OS stöder STREAMS UNIX System V.4.

Ytterligare nätverksfunktioner: WindNet Program

1994 tillkännagav Wind River Systems WindNet-programmet, under vilket ett antal kommunikationsprogramvaruföretag integrerade sina mjukvaruprodukter med VxWorks och därigenom tillhandahåller stöd för (detta är inte en uttömmande lista) [5] :

Filsystem

VxWorks stöder följande filsystem [8] :

Stöd för symmetrisk och asymmetrisk multiprocessing

Ett multiprocessorsystem i realtid, ur mjukvarusynpunkt, kan vara av två typer: asymmetrisk ASMP ( Engelska  Asymmetrical MultiProcessing ) och symmetrisk SMP ( Engelska  Symmetric MultiProcessing ). Med ASMP asymmetrisk multiprocessing, varje mikroprocessor, och i fallet med en flerkärnig mikroprocessor, varje processorkärna exekverar sin egen OS-instans, och programvaruutvecklaren ansvarar för att distribuera processer (trådar, uppgifter) mellan processorer. I detta fall är multiprocessorsystemet svårt att programmera, men har förutsägbara (deterministiska) realtidsegenskaper.

Med SMP symmetrisk multiprocessing ser en applikationsprogrammerare ett multiprocessorsystem som ett virtuellt system med en processor, vilket avsevärt förenklar mjukvaruutveckling, men det finns ingen 100% garanti för förutsägbarhet i exekvering på grund av att belastningen mellan processorer inte distribueras manuellt, men automatiskt.

Innan tillkomsten av multi-core inbäddade mikroprocessorer fanns det lite behov av symmetrisk multiprocessing. Komplexiteten i att utveckla mjukvara för löst kopplade multiprocessorsystem var låg, och det enkla att programmera rankades på andra plats efter förutsägbarheten av beteendet hos ett realtidssystem. I VxWorks version 5.x och 6.x upp till version 6.5 stöddes därför endast asymmetrisk multiprocessing, implementerad som ett VxMP- bibliotek (tillgängligt som en valfri produkt) som tillhandahåller kommunikation mellan processorer genom objekt i delat minne. Med tillkomsten av inbäddade flerkärniga mikroprocessorer med starkt kopplade processorkärnor på ett chip, har den enkla mjukvaruutvecklingen kommit i förgrunden, vilket har lett till behovet av inbäddade realtidsoperativsystem för att stödja symmetrisk multiprocessing.

Sedan version 6.6, släppt i november 2007 , började VxWorks stödja SMP [9] symmetrisk multiprocessing . Stöd för SMP-system ingår i Wind River Workbench for VxWorks [10] och Workbench for On-Chip-Debugging IDEs . Stöd för SMP-system i VxWorks är tillgängligt som en tillvalsfunktion. Följande mikroprocessorer med flera kärnor stöds:

Användning

Målarkitekturer som stöds (mål) Instrumentplattformar som stöds (värdar) Gränssnitt som stöds

Jämförelse med vissa realtidsoperativsystem

VxWorks har jämförts med andra realtidsoperativsystem [11] .

RTOS Arkitektur Utvecklingsmiljö POSIX Max. antal uppgifter
VxWorks Klient-server, mikrokärna Tornado, Workbench, Qt Creator-reklam [12] POSIX 1003.1, .1b, .1c (inklusive pThreads) begränsas endast av minnet
QNX Klient-server, mikrokärna och interagerande processer QNX Momentics IDE, Qt Creator (Community and Commercial) sedan version 3.0 [13] , Solaris, QNX4, QNX6 (till och med Neutrino 6.3.2) POSIX 1003.1-2001, med gängor och förlängd. RV 4095 processer, varje process upp till 32767 trådar
LynxOS [14] [15] monolitisk kärna [16] Ljusstyrka baserad på Eclipse-miljö POSIX 1003.1a/b/c, 1003.1-2003 begränsat av minnet

Anteckningar

  1. Wind River avancerar multicore-ledarskap med introduktion av det senaste VxWorks-operativsystemet i realtid . Hämtad 5 april 2009. Arkiverad från originalet 28 januari 2012.  (Engelsk)
  2. Intel slår tillbaka på ARM, köper inbyggda operativsystemstillverkare Wind River Archived 7 juni 2009 på Wayback Machine  - Ars Technica. (Engelsk)
  3. Intel Corporation tillkännagav idag det framgångsrika slutförandet av sitt förvärv av Wind River Systems Inc. Arkiverad från originalet den 18 november 2011.  (Engelsk)
  4. 1 2 3 Artikel "Realtidsoperativsystem" I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko  (otillgänglig länk) s. 2.1. VxWorks
  5. 1 2 Artikel “VxWorks: Realtidsoperativsystem och verktygssats för programvaruutveckling i realtid”, A. V. Demyanov Arkiverad 11 oktober 2006 på Wayback Machine s. Ytterligare nätverksfunktioner: WindNet- program, s. Stöd för POSIX-standarder
  6. VxWorks Facilities: En översikt  (länk ej tillgänglig) . Virtuellt minne (inklusive VxVMI-alternativ)
  7. Artikel: "Realtidsoperativsystem" I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko  (otillgänglig länk) s. 5. Sammanfattningstabeller över egenskaper hos RTOS-egenskaper Tabell. 2  (nedlänk sedan 2015-07-11 [2672 dagar])
  8. VxWorks/Tornado II FAQ . Hämtad 10 januari 2009. Arkiverad från originalet 7 februari 2010.
  9. VxWorks 6.6 SMP, Symmetric Multiprocessing Technology for Multicore Arkiverad från originalet den 12 februari 2009.
  10. pdf: Wind River Workbench (länk ej tillgänglig) . Tillträdesdatum: 10 januari 2009. Arkiverad från originalet den 16 oktober 2007. 
  11. Sammanfattningstabeller över RTOS-egenskapsegenskaper Arkiverad 6 maj 2009.
  12. VxWorks Notes - Qt-dokumentation (nedlänk) . Hämtad 17 september 2015. Arkiverad från originalet 28 september 2015. 
  13. Målplattformar - Qt-dokumentation . Hämtad 17 september 2015. Arkiverad från originalet 8 oktober 2015.
  14. Artikel: "LynxOS - ett realtidsoperativsystem i POSIX-standarden", Zolotarev S. V., Kalyadin A. Yu. (otillgänglig länk) . Hämtad 13 januari 2009. Arkiverad från originalet 5 januari 2009. 
  15. nyhetsartikel  (otillgänglig länk)
  16. artikel: "En titt på realtidsoperativsystemens värld 2006 av S.V. Zolotarev"  (otillgänglig länk) s. "Monolitisk eller mikrokärna?"

Litteratur

Länkar