VxWorks | |
---|---|
| |
Udvikler | Wind River Systems |
OS familie | UNIX-lignende |
Første udgave | 1987 |
nyeste version | 7 ( marts 2014 [ 1 ] ) |
Understøttede platforme | x86 |
Kernel type | mikrokerne |
Licens | Vilkår for brug |
Stat | Faktiske |
Internet side | VxWorks RTOS |
Mediefiler på Wikimedia Commons |
VxWorks er et realtidsoperativsystem udviklet af Wind River Systems ( USA ), designet til brug i indlejrede computere, der kører i hårde realtidssystemer . VxWorks er et system med krydsværktøjer til udvikling af applikationssoftware. Udviklingen foregår med andre ord på en instrumentel computer kaldet vært, til efterfølgende brug på en målmaskine - mål.
Som de fleste andre real-time operativsystemer inkluderer VxWorks en multi -tasking kerne med en forebyggende planlægning og hurtig reaktion på afbrydelser , inter-proces kommunikation og synkroniseringsfaciliteter samt et filsystem og netværks undersystem ( TCP/IP protokol stack ) . Pakken indeholder værktøjer til krydskompilering , ydeevneovervågning ( WindView ), fjernsymbolsk fejlfinding og emulering af forskellige processorer . Derudover leveres et betydeligt antal forskellige protokolstakke, grafiske undersystemer osv. både fra Wind River Systems selv og fra tredjeparter. Sættet af indlejrede platforme, der understøttes af VxWorks, er et af de mest omfattende blandt realtidsoperativsystemer.
Den 4. juni 2009 annoncerede Intel planer om at erhverve Wind River Systems og VxWorks. [2] Den 17. juli 2009 blev overtagelsen af virksomheden gennemført [3] .
Navnet "VxWorks" menes at være et ordspil på navnet VRTX OS , skabt af Ready Systems (nu ejet af Mentor Graphics ). I begyndelsen af 1980'erne var VRTX ret nyt og råt, og det fungerede ikke særlig godt. VRTX var kun 4 KB i størrelse og kunne ikke bruges som et komplet operativsystem. Wind River har erhvervet rettighederne til at distribuere en forbedret version af VRTX kaldet VxWorks. Forbedringer og udvidelser lavet af WindRiver gjorde det muligt at skabe et system, der fungerede (f.eks. havde VXWorks et filsystem og et integreret udviklingsmiljø ). Således kan navnet VxWorks betyde engelsk. VRTX virker nu ("VRTX fungerer nu") eller engelsk. VRTX der virker ("VRTX der virker").
Da det blev klart, at Ready Systems kunne opsige VRTX-distributionskontrakten, udviklede Wind River sin egen styresystemkerne til at erstatte VRTX. Den grundlæggende funktionalitet af den nye VxWorks-kerne var den samme som VRTX.
VxWorks har en klient-server- arkitektur og er, som de fleste hårde realtidsoperativsystemer, bygget ved hjælp af mikrokerneteknologi . På det laveste uafbrydelige kerneniveau (WIND Microkernel) udføres kun de grundlæggende funktioner i opgaveplanlægning og kommunikations-/ synkroniseringsstyring mellem opgaver. Alle andre RTOS-funktioner på højere niveau – hukommelsesstyring, netværk og så videre – implementeres gennem simple funktioner på lavere niveau. På grund af en sådan hierarkisk organisation opnås systemkernens hastighed og determinisme , og det gør det også nemt at bygge den nødvendige konfiguration af operativsystemet.
VxWorks kan konfigureres til systemer med alvorlige hardwarebegrænsninger samt systemer med avanceret funktionalitet. Systemets individuelle moduler kan i sig selv være skalerbare. Når du bygger systemet, kan du deaktivere visse systemfunktioner, der ikke er nødvendige i øjeblikket, du kan også fjerne specifikke kernesynkroniseringsobjekter, hvis de ikke er nødvendige.
Men på trods af, at systemet er konfigurerbart, kan det ikke siges, at det implementerer en komponenttilgang, da alle moduler er bygget oven på basiskernen og ikke kan bruges i andre miljøer.
VxWorks-kernen har følgende egenskaber [4] :
VxWorks leverer både POSIX -baserede [5] planlægningsmekanismer og native vindplanlægningsmekanismer. Begge muligheder har forebyggende og cyklisk planlægning. Forskellen er, at POSIX planlægningsalgoritmer anvendes per proces, mens vindplanlægning anvendes i hele systemet [4] .
Alle systemopgaver og applikationer i VxWorks bruger det samme adresserum, hvilket kan føre til systemustabilitet, hvis en applikation fejler. Løsningen på dette problem opnås ved at installere en separat leveret komponent VxVMI [6] , som gør det muligt for hver proces at bruge sit eget virtuelle rum.
For at opnå hurtig håndtering af eksterne interrupts kører interrupt service rutiner ( ISR'er ) i VxWorks i en speciel kontekst uden for trådkontekster, hvilket udnytter den tid, der normalt bruges på kontekstskifte. C-funktionen, som brugeren knytter til interruptvektoren, er faktisk ikke den faktiske ISR. Interrupts kan ikke få direkte adgang til C-funktioner. I stedet bliver adressen på ISR gemt i interrupt-vektortabellen, som kaldes af hardware. ISR'en udfører den indledende behandling (forbereder stakken og gemmer registrene) og kalder derefter C-funktionen, som blev tilknyttet af brugeren [4] .
VxWorks har følgende netværksfaciliteter [7] :
VxWorks-netværksværktøjerne inkluderer også funktioner, der er nødvendige, når man udvikler enheder, der er forbundet til internettet:
VxWorks understøtter følgende routingprotokoller:
VxWorks leveres som standard med RIP, OSPF er tilgængelig som et valgfrit produkt.
VxWorks understøtter både SNMP (Simple Network Management Protocol) v1 og v2c. MIB (Management Information Base) compileren understøtter MIB-II objekter og udvidelser.
Standardgrænsefladen til at forbinde bærbare netværksprotokoller til operativsystemer er STREAMS-grænsefladen. Under VxWorks kan du installere enhver protokol, der har en STREAMS-implementering: både standard ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...) og specialiseret. VxWorks OS understøtter STREAMS UNIX System V.4.
I 1994 annoncerede Wind River Systems WindNet-programmet, hvorunder en række kommunikationssoftwarevirksomheder integrerede deres softwareprodukter med VxWorks og derved ydede support til (dette er ikke en udtømmende liste) [5] :
VxWorks understøtter følgende filsystemer [8] :
Et realtids-multiprocessorsystem, set fra et softwaresynspunkt, kan være af to typer: asymmetrisk ASMP ( Engelsk Asymmetrisk MultiProcessing ) og symmetrisk SMP ( Engelsk Symmetrisk MultiProcessing ). Med ASMP asymmetrisk multiprocessing udfører hver mikroprocessor, og i tilfælde af en multi-core mikroprocessor, hver processorkerne sin egen OS-instans, og applikationssoftwareudvikleren er ansvarlig for at distribuere processer (tråde, opgaver) blandt processorer. I dette tilfælde er multiprocessorsystemet svært at programmere, men har forudsigelige (deterministiske) realtidskarakteristika.
Med SMP symmetrisk multiprocessing ser en applikationsprogrammør et multiprocessorsystem som et virtuelt enkeltprocessorsystem, hvilket i høj grad forenkler softwareudviklingen, men der er ingen 100% garanti for udførelsesforudsigelighed, da belastningen mellem processorer ikke fordeles manuelt, men automatisk.
Før fremkomsten af multi-core indlejrede mikroprocessorer, var der lidt behov for symmetrisk multiprocessing. Kompleksiteten ved at udvikle software til løst koblede multiprocessorsystemer var lav, og programmeringsvenligheden var kun nummer to efter forudsigeligheden af et realtidssystems opførsel. Derfor blev i VxWorks version 5.x og 6.x op til version 6.5 kun understøttet asymmetrisk multiprocessing, implementeret som et VxMP- bibliotek (tilgængeligt som et valgfrit produkt), der giver kommunikation mellem processorer gennem objekter i delt hukommelse. Med fremkomsten af indlejrede multi-core mikroprocessorer med stærkt koblede processorkerner på en chip, er letheden ved softwareudvikling kommet i forgrunden, hvilket har ført til behovet for indlejrede real-time operativsystemer til at understøtte symmetrisk multiprocessing.
Siden version 6.6, udgivet i november 2007 , begyndte VxWorks at understøtte SMP [9] symmetrisk multiprocessing . Support til SMP-systemer er inkluderet i Wind River Workbench for VxWorks [10] og Workbench for On-Chip-debugging IDE'er . Support til SMP-systemer i VxWorks er tilgængelig som en valgfri funktion. Følgende multi-core mikroprocessorer understøttes:
Understøttede målarkitekturer (mål) | Understøttede instrumentplatforme (værter) | Understøttede grænseflader |
---|---|---|
|
VxWorks er blevet sammenlignet med andre realtidsoperativsystemer [11] .
RTOS | Arkitektur | Udviklingsmiljø | POSIX | Maks. antal opgaver |
---|---|---|---|---|
VxWorks | Klient-server, mikrokerne | Tornado, Workbench, Qt Creator-reklame [12] | POSIX 1003.1, .1b, .1c (inklusive pThreads) | kun begrænset af hukommelsen |
QNX | Klient-server, mikrokerne og interagerende processer | QNX Momentics IDE, Qt Creator (fællesskab og kommerciel) siden version 3.0 [13] , Solaris, QNX4, QNX6 (til og med Neutrino 6.3.2) | POSIX 1003.1-2001, med gevind og forlænget. RV | 4095 processer, hver proces op til 32767 tråde |
LynxOS [14] [15] | monolitisk kerne [16] | Lysstyrke baseret på Eclipse-miljø | POSIX 1003.1a/b/c, 1003.1-2003 | begrænset af hukommelsen |
Realtids operativsystemer | |
---|---|
| |
åben | |
Proprietære |
|
historisk |
|
|