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] .
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.
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] :
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.
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] .
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.
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] :
VxWorks stöder följande filsystem [8] :
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:
Målarkitekturer som stöds (mål) | Instrumentplattformar som stöds (värdar) | Gränssnitt som stöds |
---|---|---|
|
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 |
Operativsystem i realtid | |
---|---|
| |
öppna | |
Proprietär |
|
historisk |
|
|