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 . Підтримка 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