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 - апарат НАСА , призначений для вивчення Марса.
- Зонди 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