VxWorks

VxWorks

VxWorks startskærm i ASCII-grafik
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] .

Historie

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.

Arkitektur

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

Planlægning

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.

Afbryder

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

Netværksfaciliteter

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.

Yderligere netværksfunktioner: WindNet Program

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

Filsystem

VxWorks understøtter følgende filsystemer [8] :

Understøttelse af symmetrisk og asymmetrisk multiprocessing

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:

Brug

Understøttede målarkitekturer (mål) Understøttede instrumentplatforme (værter) Understøttede grænseflader

Sammenligning med nogle realtidsoperativsystemer

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

Noter

  1. Wind River fremmer multicore-lederskab med introduktion af det nyeste VxWorks realtidsoperativsystem . Hentet 5. april 2009. Arkiveret fra originalen 28. januar 2012.  (Engelsk)
  2. Intel slår tilbage på ARM, køber indlejret OS-producent Wind River Arkiveret 7. juni 2009 på Wayback Machine  - Ars Technica. (Engelsk)
  3. Intel Corporation annoncerede i dag den succesfulde gennemførelse af deres opkøb af Wind River Systems Inc. Arkiveret fra originalen den 18. november 2011.  (Engelsk)
  4. 1 2 3 Artikel "Real-time operativsystemer" I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko  (utilgængeligt link) s. 2.1. VxWorks
  5. 1 2 Artikel "VxWorks: Real-time operativsystem og real-time softwareudvikling værktøjssæt", A. V. Demyanov Arkiveret 11. oktober 2006 på Wayback Machine s. Yderligere netværksfunktioner: WindNet- program, s. Understøttelse af POSIX-standarder
  6. VxWorks Facilities: An Overview  (link utilgængeligt) . Virtuel hukommelse (inklusive VxVMI Option)
  7. Artikel: "Real-time operativsystemer" I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko  (utilgængeligt link) s. 5. Oversigtstabeller over karakteristika for RTOS-egenskaber Tabel. 2  (downlink siden 11-07-2015 [2672 dage])
  8. Ofte stillede spørgsmål om VxWorks/Tornado II . Hentet 10. januar 2009. Arkiveret fra originalen 7. februar 2010.
  9. VxWorks 6.6 SMP, Symmetric Multiprocessing Technology for Multicore Arkiveret fra originalen den 12. februar 2009.
  10. pdf: Wind River Workbench (link utilgængeligt) . Dato for adgang: 10. januar 2009. Arkiveret fra originalen 16. oktober 2007. 
  11. Oversigtstabeller over RTOS-egenskabskarakteristika Arkiveret 6. maj 2009.
  12. VxWorks Notes - Qt-dokumentation (downlink) . Hentet 17. september 2015. Arkiveret fra originalen 28. september 2015. 
  13. Målplatforme - Qt-dokumentation . Hentet 17. september 2015. Arkiveret fra originalen 8. oktober 2015.
  14. Artikel: "LynxOS - et realtidsoperativsystem i POSIX-standarden", Zolotarev S.V., Kalyadin A. Yu. (utilgængeligt link) . Hentet 13. januar 2009. Arkiveret fra originalen 5. januar 2009. 
  15. nyhedsartikel  (utilgængeligt link)
  16. artikel: "Et kig på verden af ​​realtidsoperativsystemer i 2006 af S.V. Zolotarev"  (utilgængeligt link) s. "Monolitisk eller mikrokerne?"

Litteratur

Links