VxWorks

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

УВАГА! ЗМІСТ ЦІЄЇ ВІКІ СТАТТІ МОЖЕ МІСТИТИ ГРАМАТИЧНІ (НЕ ЗМІСТОВІ!) ПОМИЛКИ. ЯКЩО ТАКІ Є, ТО ВОНИ БУДУТЬ ВИПРАВЛЕНІ НАЙБЛИЖЧИМ ЧАСОМ

Апарат Mars Exploration Rover A, на якому встановлено VxWorks

Розробник - Wind River Systems

Сімейство ОС - UNIX- подібна

Остання версія - 6.9 - лютий 2011 р.

Тип ядра - Микроядро

Ліцензія - EULA

стан - Актуальне

VxWorks - операційна система реального часу , що розробляється компанією Wind River Systems ( США ) , орієнтована на використання у вбудованих комп'ютерах, що працюють в системах жорсткого реального часу. VxWorks є системою з крос- засобами розробки прикладного програмного забезпечення. Інакше кажучи , розробка відбувається на інструментальному комп'ютері , званому host , для подальшого застосування його на цільовій машині - target .

Як і більшість інших ОС реального часу , VxWorks включає в себе многозадачное ядро з витісняючим планувальником і швидким відгуком на переривання , засоби взаємодії між процесами і синхронізації , а також файлову систему і мережеву підсистему ( стек протоколів TCP / IP). У комплект поставки входять засоби для крос- компіляції , моніторингу продуктивності ( WindView ) , віддаленої символьної налагодження , а також емуляції різних процесорів. Додатково поставляється значну кількість різних стеків протоколів , графічних підсистем та ін як від самої Wind River Systems , так і від третіх фірм . Безліч підтримуваних VxWorks вбудовуваних платформ є одним з найбільших серед операційних систем реального часу.

4 червня 2009 компанія Intel оголосила про плани придбати Wind River Systems і VxWorks . 17 липня 2009 поглинання компанії було завершено

Історія

Назва « VxWorks » , як вважається , вийшло з гри слів з ​​назвою ОС VRTX , створеної компанією Ready Systems (зараз цей продукт належить Mentor Graphics ) . На початку 1980 -х VRTX була досить новим і сирим продуктом , вона працювала не надто добре. VRTX мала розмір всього 4 КБ , і її не можна було використовувати як повноцінну операційну систему. Компанія Wind River придбала права на розповсюдження розширеній версії VRTX під назвою VxWorks . Доробки і розширення , внесені компанією WindRiver , дозволили створити систему , яка працювала (наприклад , VXWorks мала файлову систему і інтегроване середовище розробки ) . Таким чином, назва VxWorks може означати англ. VRTX now Works ( « VRTX тепер працює» ) або англ. VRTX that Works ( « VRTX , яка працює »).

Коли стало ясно , що Ready Systems може розірвати контракт на розповсюдження VRTX , в Wind River було розроблено власне ядро ​​операційної системи , яке замінило VRTX . Базова функціональність нового ядра VxWorks була такою ж , як у VRTX .

VxWorks має архітектуру клієнт- сервер і , як і більшість ОС жорсткого реального часу , побудована за технологією мікроядра . На самому нижньому непреривавшуюся рівні ядра ( WIND Microkernel ) виконуються тільки базові функції планування завдань і управління комунікацією / синхронізацією між завданнями. Всі інші функції ОСРВ більш високого рівня - управління пам'яттю , мережеві засоби і т. д. - реалізуються через прості функції нижнього рівня. За рахунок такої ієрархічної організації досягається швидкодію і детермінованість ядра системи , також це дозволяє легко будувати необхідну конфігурацію операційної системи.

VxWorks можна скомпонувати як для систем з жорсткими апаратними обмеженнями , так і для систем з розвиненою функціональністю. Окремі модулі системи самі можуть бути масштабованими . При складанні системи можна відключати певні функції системи , непотрібні в даний момент , також можна прибирати специфічні ядерні об'єкти синхронізації , якщо в них немає необхідності.

Але , незважаючи на те , що система є конфігурується , не можна сказати , що в ній реалізований компонентний підхід , т. к. всі модулі побудовані над базовим ядром і не можуть бути використані в інших середовищах. Ядро VxWorks має такі властивості:

  • кількість завдань обмежується тільки пам'яттю ;
  • має 256 рівнів пріоритетів завдань ;
  • планування завдань організовано двома способами: витіснення за пріоритетами і циклічне ;
  • взаємодію задач відбувається через черги повідомлень , семафори , події і канали ( для взаємодії між процесами ) , сокети і віддалені виклики процедур ( для мережевої взаємодії ), поділ пам'яті (використовується для розділення даних) і сигнали (для керування винятковими ситуаціями ) ;
  • забезпечується кілька видів семафорів для управління критичними системними ресурсами - двійкові , обчислювальні та взаємовиключні з пріоритетним спадкуванням ;

можливо детерміноване перемикання контексту.

У VxWorks забезпечуються і механізми планування , засновані на POSIX , і власні механізми планування ( wind scheduling ) . Обидва варіанти мають витісняючим і циклічним плануванням . Різниця полягає в тому , що алгоритми POSIX - планування застосовуються попроцессной , а wind scheduling застосовується на рівні всієї системи.

Усі завдання системи та програми в VxWorks використовують один адресний простір , що може призвести до порушення стабільності роботи системи в разі несправності якої програми . Вирішення цієї проблеми досягається установкою окремо наданого компонента VxVMI , який дає можливість кожному процесу використовувати власне віртуальний простір .

Для досягнення швидкої обробки зовнішніх переривань , програми обробки переривань ( ISRs - interrupt service routines ) в VxWorks працюють в спеціальному контексті поза контекстів потоків , що дає перевагу в часі , який зазвичай витрачається на перемикання контекстів . С- функція , яку користувач приєднує до вектора переривання , насправді не є фактичною ISR . Переривання не можуть безпосередньо звертатися до С- функціям . Замість цього в таблиці векторів переривань , яка викликається апаратно , запам'ятовується адресу ISR . ISR виконує початкову обробку (підготовку стека і збереження регістрів ) , а потім викликається С- функція , яка була приєднана користувачем.

ОС

VxWorks володіє наступними мережевими засобами:

  • TCP / zero - copy
  • TCP / UDP / ICMP / IP (IPv4 та IPv6) / ARP ,
  • SLIP / CSLIP / PPP ,
  • Sockets ,
  • telnet / rlogin / rcp / rsh ,
  • ftp / tftp / bootp ,
  • NFS ( клієнт і сервер).

У мережеві засоби VxWorks входять також функції, необхідні при розробці пристроїв , що підключаються до Internet :

  • IP multicasting рівня 0,1 або 2 ;
  • long fat pipe ;
  • CIDR ( Classless Inter - Domain Routing ) ;
  • DHCP ( Dynamic Host Configuration Protocol ) в конфігураціях сервер , клієнт і Relay агент ;
  • DNS client ( Domain Naming System ) ;
  • SNTP ( Simple Network Time Protocol ) .
  • VxWorks підтримує наступні протоколи маршрутизації :
  • RIPv1/v2 ( Routing Information Protocol )
  • OSPF ( Open Shortest Path First ) версії 2 .

У стандартну поставку VxWorks входить протокол RIP , протокол OSPF поставляється як додатковий продукт.

VxWorks підтримує протокол SNMP ( Simple Network Management Protocol ) як версії v1 , так і версії v2c . Компілятор MIB ( Management Information Base ) підтримує об'єкти MIB - II та розширення. Стандартним інтерфейсом для підключення переносите мережевих протоколів до операційних систем є інтерфейс STREAMS . Під VxWorks можна інсталювати будь-який протокол , який має STREAMS - реалізацію : як стандартний ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...) , так і спеціалізований . ОС VxWorks підтримує STREAMS версії UNIX System V.4 .

У 1994 році Wind River Systems анонсувала програму WindNet , по якій ряд фірм- виробників програмних засобів в області комунікацій інтегрували свої програмні продукти з VxWorks , тим самим забезпечивши підтримку ( це неповний перелік):

  • мережевих протоколів: Х.25 , ISDN , ATM , SS7 , Frame Relay і OSI ;
  • CASE -засобів розробки розподілених систем на базі стандартів ROOM (Real - Time Object Oriented Modelling ) і CORBA ( Common Object Request Broker Architecture ) ;
  • менеджмент мереж за технологіями MBD ( Management By Delegation ) і CMIP / GDMO ( Common Management Information Protocol / Guidelines for Definition of Managed Objects ) .

У VxWorks підтримуються наступні файлові системи:

  • MS- DOS- Compatible File System : DosFS
  • Raw File System : RawFs
  • Target Server File System : TSFS
  • Network File System : NFS
  • ISO 9660 ( CDROM File System )
  • Tape File System : TapeFs
  • CIFS / SMB
  • TrueFFS

Мультипроцесорна система реального часу , з точки зору програмного забезпечення , буває двох видів: асиметрична ASMP (англ. Asymmetrical MultiProcessing ) і симетрична SMP (англ. Symmetrical MultiProcessing ) . При асиметричному мультіпроцессінге ASMP кожен мікропроцесор , а в разі многоядерного мікропроцесора - кожне процесорний ядро виконує свій власний екземпляр ОС , а за розподіл процесів ( потоків , задач) по процесорах відповідає розробник прикладного ПЗ. У такому випадку многопроцессорная система складна в програмуванні , але володіє передбачуваністю ( детермінованість ) характеристик реального часу.

При симетричному мультіпроцессінге SMP прикладний програміст бачить многопроцессорную систему як віртуальну однопроцесорних , що значно спрощує розробку ПЗ , але немає 100 % гарантії передбачуваності виконання через те що навантаження між процесорами розподіляється не вручну , а автоматично.

До появи на ринку вбудованих мікропроцесорів багатоядерних пристроїв потреба в симетричному мультіпроцессінге практично була відсутня. Складність розробки ПО для слабосвязанних багатопроцесорних систем була невелика, і простоту програмування ставили на друге місце після передбачуваності поведінки системи реального часу. Тому у версіях VxWorks 5.x і 6.x аж до версії 6.5 підтримувався тільки асиметричний мультіпроцессінг , реалізований у вигляді бібліотеки VxMP ( поставляється як додатковий продукт) , що забезпечує комунікацію між процесорами через об'єкти в розділяється пам'яті. У міру появи вбудованих багатоядерних мікропроцесорів з сильно пов'язаними процесорними ядрами на кристалі на перше місце висунулася простота розробки ПЗ , що призвело до необхідності підтримування вбудовуваними ОС реального часу симетричного мультіпроцессінга .

З версії 6.6 , що вийшла в листопаді 2007 року , VxWorks почала підтримувати симетричний мультіпроцессінг SMP [ 9 ] . Підтримка SMP -систем включена в інтегровану середовище розробки Wind River Workbench for VxWorks і Workbench for On - Chip- Debugging . Підтримка SMP -систем в VxWorks поставляється як додаткова компонента. Підтримуються наступні багатоядерні мікропроцесори :

  • ARM11 MPCore ( ARMv6 )
  • Broadcom MIPS BCM1480
  • Cavium OCTEON CN38xx
  • Freescale MPC8641D
  • Intel Dual - Core Xeon LV
  • Intel Core Duo T2400
  • Raza XLR 732

Використання

Апарат Phoenix Mars Lander, на якому встановлено VxWorks
  • Phoenix Mars Lander - апарат НАСА , призначений для вивчення Марса.
  • Зонди Spirit , Opportunity і Curiosity, а також апарат Mars Reconnaissance Orbiter використовують VxWorks на платформі POWER. Система використовується і в інших космічних місіях , наприклад Deep Impact .
  • Планується використання в новітніх авіалайнерах Boeing 787 і Boeing 747-8 .
  • Комунікаційне обладнання багатьох компаній (наприклад , Nortel , 3COM , Alcatel та ін.)
  • Linksys WRT54G ( ver.5 , 6 , ...) , NetGear WGR614 ( ver. 5,6,7 )
  • Деякі PostScript - принтери .
  • Медичне обладнання компанії Siemens AG (зокрема , магнітно- резонансні томографи ) .
  • Системи зберігання ETERNUS DX компанії Fujitsu
  • Системи зберігання E-серії (колишні LSI Engenio ) від NetApp
  • Останні системи інтерфейсів BMW iDrive
  • Система управління робототехнічними комплексами компанії KUKA .
  • Система керування роботами компанії ABB
  • Безліч інших застосувань у вбудованих системах з високими вимогами до надійності і часу відгуку .
  • Підтримувані цільові архітектури ( targets ) си
  • Motorola 680х0 і CPU32 , PowerPC
  • Intel 386/486/Pentium , Intel 960 ,
  • Sparc , Mips R3000/4000 ,
  • AMD 29K , Motorola 88110

Конкуруючі операційні системи:

  • TRON
  • Integrity
  • QNX
  • LynxOS