VxWorks | |
---|---|
Úvodní obrazovka VxWorks v grafice ASCII | |
Vývojář | Wind River Systems |
rodina OS | jako UNIX |
První vydání | 1987 |
Nejnovější verze | 7 ( březen 2014 [ 1 ] ) |
Podporované platformy | x86 |
Typ jádra | mikrokernel |
Licence | Podmínky použití |
Stát | Aktuální |
Webová stránka | VxWorks RTOS |
Mediální soubory na Wikimedia Commons |
VxWorks je operační systém pracující v reálném čase vyvinutý společností Wind River Systems ( USA ), který je navržen pro použití ve vestavěných počítačích běžících v systémech tvrdého reálného času . VxWorks je systém s různými nástroji pro vývoj aplikačního softwaru. Jinými slovy, vývoj probíhá na instrumentálním počítači zvaném host, pro následné použití na cílovém stroji – targetu.
Stejně jako většina ostatních operačních systémů pracujících v reálném čase obsahuje VxWorks jádro pro více úloh s preemptivním plánovačem a rychlou odezvou na přerušení , meziprocesovou komunikaci a synchronizační zařízení , stejně jako systém souborů a síťový subsystém ( zásobník protokolů TCP/IP ) . Balíček obsahuje nástroje pro křížovou kompilaci , sledování výkonu ( WindView ), vzdálené symbolické ladění a emulaci různých procesorů . Kromě toho je značný počet různých zásobníků protokolů, grafických subsystémů atd. dodáván jak od samotné Wind River Systems, tak od třetích stran. Sada vestavěných platforem podporovaných VxWorks je jednou z nejrozsáhlejších mezi operačními systémy pracujícími v reálném čase.
4. června 2009 Intel oznámil plány na akvizici Wind River Systems a VxWorks. [2] Dne 17. července 2009 bylo dokončeno převzetí společnosti [3] .
Jméno „VxWorks“ je považováno za slovní hříčku názvu VRTX OS , vytvořeného společností Ready Systems (nyní ve vlastnictví Mentor Graphics ). Na začátku osmdesátých let byl VRTX poměrně nový a syrový a nefungoval příliš dobře. VRTX měl velikost pouze 4 KB a nebylo možné jej použít jako kompletní operační systém. Wind River získala práva na distribuci vylepšené verze VRTX s názvem VxWorks. Vylepšení a rozšíření provedená WindRiverem umožnila vytvořit systém, který fungoval (například VXWorks měl souborový systém a integrované vývojové prostředí ). Název VxWorks tedy může znamenat angličtinu. VRTX now Works („VRTX is now working“) nebo anglicky. VRTX that Works ("VRTX that Works").
Když bylo jasné, že Ready Systems může ukončit smlouvu o distribuci VRTX, Wind River vyvinul vlastní jádro operačního systému, které VRTX nahradí. Základní funkčnost nového jádra VxWorks byla stejná jako u VRTX.
VxWorks má architekturu klient-server a jako většina operačních systémů v reálném čase je vytvořen pomocí technologie mikrojádra . Na nejnižší úrovni nepřerušitelného jádra (WIND Microkernel) se provádějí pouze základní funkce plánování úloh a řízení komunikace/ synchronizace mezi úlohami. Všechny ostatní funkce RTOS vyšší úrovně – správa paměti, síťování a tak dále – jsou implementovány prostřednictvím jednoduchých funkcí nižší úrovně. Díky takovéto hierarchické organizaci je dosaženo rychlosti a determinismu jádra systému, což také usnadňuje sestavení potřebné konfigurace operačního systému.
VxWorks lze konfigurovat pro systémy s vážnými hardwarovými omezeními i pro systémy s pokročilými funkcemi. Jednotlivé moduly systému mohou být samy o sobě škálovatelné. Při sestavování systému můžete deaktivovat určité systémové funkce, které momentálně nejsou potřeba, můžete také odstranit konkrétní objekty synchronizace jádra, pokud nejsou potřeba.
Ale navzdory skutečnosti, že systém je konfigurovatelný, nelze říci, že implementuje komponentní přístup, protože všechny moduly jsou postaveny na základním jádru a nelze je použít v jiných prostředích.
Jádro VxWorks má následující vlastnosti [4] :
VxWorks poskytuje jak mechanismy plánování založené na POSIX [5] , tak nativní mechanismy plánování větru. Obě možnosti mají preemptivní a cyklické plánování. Rozdíl je v tom, že plánovací algoritmy POSIX jsou aplikovány na každý proces, zatímco plánování větru je aplikováno v celém systému [4] .
Všechny systémové úlohy a aplikace ve VxWorks používají stejný adresní prostor, což může vést k nestabilitě systému, pokud některá aplikace selže. Řešení tohoto problému je dosaženo instalací samostatně dodávané komponenty VxVMI [6] , která umožňuje každému procesu využívat vlastní virtuální prostor.
Aby bylo dosaženo rychlého zpracování externích přerušení , spouštějí se rutiny služby přerušení ( ISR ) ve VxWorks ve speciálním kontextu mimo kontexty vláken, což využívá čas, který se obvykle stráví přepínáním kontextu. Funkce C, kterou uživatel připojí k vektoru přerušení, není ve skutečnosti skutečným ISR. Přerušení nemohou přímo přistupovat k funkcím C. Místo toho je adresa ISR uložena v tabulce vektorů přerušení, která je volána hardwarem. ISR provede počáteční zpracování (příprava zásobníku a uložení registrů) a poté zavolá funkci C, která byla připojena uživatelem [4] .
VxWorks má následující síťová zařízení [7] :
Síťové nástroje VxWorks také zahrnují funkce, které jsou nezbytné při vývoji zařízení připojených k internetu:
VxWorks podporuje následující směrovací protokoly:
VxWorks je standardně dodáván s RIP, OSPF je k dispozici jako volitelný produkt.
VxWorks podporuje SNMP (Simple Network Management Protocol) v1 a v2c. Kompilátor MIB (Management Information Base) podporuje objekty a rozšíření MIB-II.
Standardním rozhraním pro připojení přenosných síťových protokolů k operačním systémům je rozhraní STREAMS. V rámci VxWorks můžete nainstalovat jakýkoli protokol, který má implementaci STREAMS: standardní ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...) i specializovaný. VxWorks OS podporuje STREAMS UNIX System V.4.
V roce 1994 Wind River Systems oznámila program WindNet, v jehož rámci řada společností zabývajících se komunikačním softwarem integrovala své softwarové produkty s VxWorks, čímž poskytla podporu pro (toto není vyčerpávající seznam) [5] :
VxWorks podporuje následující systémy souborů [8] :
Multiprocesorový systém pracující v reálném čase může být ze softwarového hlediska dvou typů: asymetrický ASMP ( anglicky Asymetrical MultiProcessing ) a symetrický SMP ( anglicky Symmetrical MultiProcessing ). U asymetrického multiprocesingu ASMP každý mikroprocesor a v případě vícejádrového mikroprocesoru každé jádro procesoru vykonává svou vlastní instanci OS a vývojář aplikačního softwaru je zodpovědný za distribuci procesů (vlákna, úlohy) mezi procesory. V tomto případě je víceprocesorový systém obtížně programovatelný, ale má předvídatelné (deterministické) charakteristiky v reálném čase.
S SMP symetrickým multiprocesingem vidí aplikační programátor multiprocesorový systém jako virtuální jednoprocesorový systém, což značně zjednodušuje vývoj softwaru, ale není zde 100% záruka předvídatelnosti provedení vzhledem k tomu, že zátěž mezi procesory není distribuována ručně, ale automaticky.
Před příchodem vícejádrových vestavěných mikroprocesorů nebyla potřeba symetrického multiprocesingu. Složitost vývoje softwaru pro volně vázané multiprocesorové systémy byla nízká a snadnost programování byla zařazena na druhé místo za předvídatelnost chování systému v reálném čase. Proto byl ve VxWorks verze 5.xa 6.x až do verze 6.5 podporován pouze asymetrický multiprocessing, implementovaný jako knihovna VxMP (dostupná jako volitelný produkt), která zajišťuje komunikaci mezi procesory prostřednictvím objektů ve sdílené paměti. S příchodem vestavěných vícejádrových mikroprocesorů s vysoce vázanými procesorovými jádry na čipu se do popředí dostala snadnost vývoje softwaru, což vedlo k potřebě vestavěných operačních systémů pracujících v reálném čase pro podporu symetrického multiprocesingu.
Od verze 6.6, vydané v listopadu 2007 , VxWorks začal podporovat SMP [9] symetrický multiprocessing . Podpora systémů SMP je součástí Wind River Workbench for VxWorks [10] a Workbench for On-Chip-Debugging IDE . Podpora systémů SMP ve VxWorks je k dispozici jako volitelná funkce. Podporovány jsou následující vícejádrové mikroprocesory:
Podporované cílové architektury (cíle) | Podporované platformy nástrojů (hostitelé) | Podporovaná rozhraní |
---|---|---|
|
|
VxWorks byl srovnáván s jinými operačními systémy pracujícími v reálném čase [11] .
RTOS | Architektura | Vývojové prostředí | POSIX | Max. počet úkolů |
---|---|---|---|---|
VxWorks | Klient-server, mikrokernel | Tornado, Workbench, Qt Creator Commercial [12] | POSIX 1003.1, .1b, .1c (včetně pThreads) | omezena pouze pamětí |
QNX | Klient-server, mikrokernel a interakční procesy | QNX Momentics IDE, Qt Creator (komunitní a komerční) od verze 3.0 [13] , Solaris, QNX4, QNX6 (až po Neutrino 6.3.2 včetně) | POSIX 1003.1-2001, s vlákny a rozšířený. RV | 4095 procesů, každý proces až 32767 vláken |
LynxOS [14] [15] | monolitické jádro [16] | Svítivost založená na prostředí Eclipse | POSIX 1003.1a/b/c, 1003.1-2003 | omezená pamětí |
Operační systémy v reálném čase | |
---|---|
| |
OTEVŘENO | |
Proprietární |
|
historický |
|
|