VxWorks | |
---|---|
A VxWorks kezdőképernyője ASCII grafikában | |
Fejlesztő | Wind River Systems |
OS család | UNIX-szerű |
Első kiadás | 1987 |
legújabb verzió | 7 ( 2014 . március [ 1 ] ) |
Támogatott platformok | x86 |
Kernel típusa | mikrokernel |
Engedély | Használati feltételek |
Állapot | Tényleges |
Weboldal | VxWorks RTOS |
Médiafájlok a Wikimedia Commons oldalon |
A VxWorks a Wind River Systems ( USA ) által kifejlesztett valós idejű operációs rendszer , amelyet kemény valós idejű rendszerekben futó beágyazott számítógépekben való használatra terveztek . A VxWorks egy olyan rendszer, amely kereszteszközökkel rendelkezik az alkalmazásszoftverek fejlesztéséhez. Más szóval, a fejlesztés egy host nevű műszeres számítógépen történik, amelyet később egy célgépen – célon – használnak.
A legtöbb más valós idejű operációs rendszerhez hasonlóan a VxWorks is tartalmaz egy többfeladatos kernelt megelőző ütemezővel és gyors reagálással a megszakításokra , folyamatok közötti kommunikációs és szinkronizálási lehetőségeket , valamint fájlrendszert és hálózati alrendszert ( TCP/IP protokoll verem ). . A csomag tartalmaz eszközöket keresztfordításhoz , teljesítményfigyeléshez ( WindView ), távoli szimbolikus hibakereséshez és különböző processzorok emulációjához . Ezen túlmenően jelentős számú különböző protokollverem, grafikus alrendszer stb. érkezik magától a Wind River Systems-től és harmadik felektől. A VxWorks által támogatott beágyazott platformok készlete az egyik legkiterjedtebb a valós idejű operációs rendszerek között.
2009. június 4-én az Intel bejelentette a Wind River Systems és a VxWorks felvásárlásának tervét. [2] 2009. július 17-én lezárult a cég átvétele [3] .
A "VxWorks" név szójáték a VRTX OS néven , amelyet a Ready Systems hozott létre (jelenleg a Mentor Graphics tulajdona ). Az 1980-as évek elején a VRTX meglehetősen új és nyers volt, és nem működött túl jól. A VRTX mindössze 4 KB méretű volt, és nem használható teljes operációs rendszerként. A Wind River megszerezte a VRTX VxWorks nevű továbbfejlesztett változatának terjesztésének jogát. A WindRiver fejlesztései és bővítései lehetővé tették egy működő rendszer létrehozását (például a VXWorks fájlrendszerrel és integrált fejlesztői környezettel rendelkezett ). Így a VxWorks név angolt jelenthet . A VRTX most működik („VRTX most működik”) vagy angol nyelven. VRTX, amely működik ("VRTX, amely működik").
Amikor világossá vált, hogy a Ready Systems felmondhatja a VRTX terjesztési szerződést, a Wind River saját operációs rendszer kernelt fejlesztett ki a VRTX leváltására. Az új VxWorks mag alapvető funkciói ugyanazok voltak, mint a VRTX-é.
A VxWorks kliens-szerver architektúrával rendelkezik , és a legtöbb kemény valós idejű operációs rendszerhez hasonlóan mikrokernel technológiával készült . A legalacsonyabb szünetmentes kernel szinten (WIND Microkernel) csak a feladatütemezés és a feladatok közötti kommunikáció/ szinkronizálás kezelésének alapvető funkciói valósulnak meg. Az összes többi magasabb szintű RTOS funkció – memóriakezelés, hálózatépítés és így tovább – egyszerű, alacsonyabb szintű funkciókon keresztül valósul meg. Az ilyen hierarchikus felépítésnek köszönhetően a rendszermag sebessége és meghatározottsága elérhető, és ez megkönnyíti az operációs rendszer szükséges konfigurációjának felépítését is.
A VxWorks konfigurálható súlyos hardverkorlátozott rendszerekhez, valamint fejlett funkcionalitással rendelkező rendszerekhez. A rendszer egyes moduljai maguk is skálázhatók. A rendszer felépítésénél letilthatunk bizonyos rendszerfunkciókat, amelyekre pillanatnyilag nincs szükségünk, illetve adott kernelszinkronizációs objektumokat is eltávolíthatunk, ha nincs rájuk szükség.
De annak ellenére, hogy a rendszer konfigurálható, nem mondható, hogy komponens megközelítést valósít meg, hiszen minden modul az alapmagra épül, és más környezetben nem használható.
A VxWorks mag a következő tulajdonságokkal rendelkezik [4] :
A VxWorks POSIX alapú [5] ütemezési mechanizmusokat és natív szél ütemezési mechanizmusokat is biztosít. Mindkét lehetőség rendelkezik megelőző és ciklikus tervezéssel. A különbség az, hogy a POSIX ütemezési algoritmusokat folyamatonként alkalmazzák, míg a szélütemezést rendszerszinten [4] .
A VxWorks összes rendszerfeladata és alkalmazása ugyanazt a címteret használja, ami a rendszer instabilitásához vezethet, ha valamelyik alkalmazás meghibásodik. A probléma megoldását egy külön biztosított VxVMI [6] komponens telepítésével érik el , amely lehetővé teszi, hogy minden folyamat a saját virtuális terét használja.
A külső megszakítások gyors kezelésének elérése érdekében a VxWorks megszakítási szolgáltatási rutinjai ( ISR ) speciális környezetben futnak a szálkontextusokon kívül, ami kihasználja a kontextusváltásra általában fordított időt. A felhasználó által a megszakítási vektorhoz csatolt C függvény valójában nem a tényleges ISR. A megszakítások nem férhetnek hozzá közvetlenül a C függvényekhez. Ehelyett az ISR címe a megszakítási vektor táblában van tárolva, amelyet a hardver hív meg. Az ISR elvégzi a kezdeti feldolgozást (a verem előkészítése és a regiszterek mentése), majd meghívja a felhasználó által csatolt C függvényt [4] .
A VxWorks a következő hálózati lehetőségekkel rendelkezik [7] :
A VxWorks hálózati eszközök olyan funkciókat is tartalmaznak, amelyek az internethez csatlakozó eszközök fejlesztéséhez szükségesek:
A VxWorks a következő útválasztási protokollokat támogatja:
A VxWorks alapfelszereltsége a RIP, az OSPF opcionális termékként kapható.
A VxWorks támogatja az SNMP (Simple Network Management Protocol) v1 és v2c protokollt. A MIB (Management Information Base) fordító támogatja a MIB-II objektumokat és bővítményeket.
A hordozható hálózati protokollok operációs rendszerekhez való csatlakoztatásának szabványos interfésze a STREAMS interfész. A VxWorks alatt bármilyen STREAMS-megvalósítással rendelkező protokollt telepíthet: szabványos ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...) és speciális protokollokat is. A VxWorks OS támogatja a STREAMS UNIX System V.4 rendszert.
1994-ben a Wind River Systems bejelentette a WindNet programot, amelynek keretében számos kommunikációs szoftvercég integrálta szoftvertermékeit a VxWorks-szel, ezzel támogatást nyújtva (ez nem a teljes lista) [5] :
A VxWorks a következő fájlrendszereket támogatja [8] :
A valós idejű többprocesszoros rendszer szoftveres szempontból kétféle lehet: aszimmetrikus ASMP ( angolul Asymmetrical MultiProcessing ) és szimmetrikus SMP ( angol Symmetrical MultiProcessing ). Az ASMP aszimmetrikus többfeldolgozásnál minden mikroprocesszor, többmagos mikroprocesszor esetén pedig minden processzormag saját operációs rendszer példányát hajtja végre, az alkalmazásszoftver fejlesztője pedig felelős a folyamatok (szálak, feladatok) processzorok közötti elosztásáért. Ebben az esetben a többprocesszoros rendszer nehezen programozható, de megjósolható (determinisztikus) valós idejű jellemzőkkel rendelkezik.
Az SMP szimmetrikus többprocesszoros feldolgozásnál az alkalmazásprogramozó a többprocesszoros rendszert virtuális egyprocesszoros rendszernek tekinti, ami nagymértékben leegyszerűsíti a szoftverfejlesztést, de nincs 100%-os garancia a végrehajtás kiszámíthatóságára, mivel a processzorok közötti terhelés elosztása nem manuálisan történik. hanem automatikusan.
A többmagos beágyazott mikroprocesszorok megjelenése előtt nem volt szükség szimmetrikus többfeldolgozásra. A lazán csatolt többprocesszoros rendszerek szoftverfejlesztésének bonyolultsága alacsony volt, és a programozás egyszerűsége a második helyre került a valós idejű rendszerek viselkedésének kiszámíthatósága után. Ezért a VxWorks 5.x és 6.x verzióiban a 6.5-ös verzióig csak az aszimmetrikus többfeldolgozást támogatták, amelyet VxMP könyvtárként valósítottak meg (opcionális termékként), amely kommunikációt biztosít a processzorok között a megosztott memóriában lévő objektumok révén. A beágyazott többmagos mikroprocesszorok megjelenésével, amelyek egy chipen magasan csatolt processzormagokat tartalmaznak, előtérbe került a szoftverfejlesztés egyszerűsége, ami miatt szükség volt beágyazott valós idejű operációs rendszerekre a szimmetrikus többfeldolgozás támogatásához.
A 2007 novemberében kiadott 6.6-os verzió óta a VxWorks elkezdte támogatni az SMP [9] szimmetrikus többfeldolgozást . Az SMP-rendszerek támogatását a Wind River Workbench for VxWorks [10] és a Workbench for On-Chip-Debugging IDE tartalmazza . A VxWorks SMP-rendszereinek támogatása opcionális szolgáltatásként érhető el. A következő többmagos mikroprocesszorok támogatottak:
Támogatott célarchitektúrák (célok) | Támogatott hangszerplatformok (gazdagépek) | Támogatott interfészek |
---|---|---|
|
A VxWorks-t más valós idejű operációs rendszerekkel hasonlították össze [11] .
RTOS | Építészet | Fejlesztőkörnyezet | POSIX | Max. feladatok száma |
---|---|---|---|---|
VxWorks | Kliens-szerver, mikrokernel | Tornado, Workbench, Qt Creator Commercial [12] | POSIX 1003.1, .1b, .1c (beleértve a pThreadeket is) | csak a memória korlátozza |
QNX | Kliens-szerver, mikrokernel és interakciós folyamatok | QNX Momentics IDE, Qt Creator (közösségi és kereskedelmi) a 3.0 verzió óta [13] , Solaris, QNX4, QNX6 (a Neutrino 6.3.2-ig bezárólag) | POSIX 1003.1-2001, menetes és kiterjesztett. RV | 4095 folyamat, mindegyik legfeljebb 32767 szálat dolgoz fel |
LynxOS [14] [15] | monolit kernel [16] | A fényerő az Eclipse környezeten alapul | POSIX 1003.1a/b/c, 1003.1-2003 | memória korlátozza |
Valós idejű operációs rendszerek | |
---|---|
| |
nyisd ki | |
Szabadalmazott |
|
történelmi |
|
|