VxWorks | это... Что такое VxWorks? (original) (raw)

VxWorks
VxWorks.png Логотип VxWorks в ASCII-графике
Разработчик Wind River Systems
Семейство ОС UNIX-подобная
Последняя версия 6.9 — февраль 2011 г.[1]
Тип ядра Микроядро
Лицензия EULA
Состояние Актуальное
Веб-сайт www.windriver.com

VxWorksоперационная система реального времени (ОСРВ), разрабатываемая компанией Wind River Systems (США) (приобретена компанией Intel 17 июля 2009 г.), ориентированная на использование во встраиваемых компьютерах, работающих в системах жёсткого реального времени. VxWorks является системой с кросс-средствами разработки прикладного программного обеспечения. Иначе говоря, разработка происходит на инструментальном компьютере, называемом host, для последующего применения его на целевой машине — target.

Как и большинство других ОС реального времени, VxWorks включает в себя многозадачное ядро с вытесняющим планировщиком и быстрым откликом на прерывания, средства межпроцессного взаимодействия и синхронизации, а также файловую систему и сетевую подсистему (стек протоколов TCP/IP). В комплект поставки входят средства для кросс-компиляции, мониторинга производительности (WindView), удалённой символьной отладки, а также эмуляции различных процессоров. Дополнительно поставляется значительное количество различных стеков протоколов, графических подсистем и др. как от самой Wind River Systems, так и от третьих фирм. Множество поддерживаемых VxWorks встраиваемых платформ является одним из самых обширных среди операционных систем реального времени.

4 июня 2009 года компания Intel объявила о планах приобрести Wind River Systems и VxWorks.[2] 17 июля 2009 года поглощение компании было завершено [3]

Содержание

История

Название 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 обладает следующими свойствами[4]:

Планирование

В VxWorks обеспечиваются и механизмы планирования, основанные на POSIX[5], и собственные механизмы планирования (wind scheduling). Оба варианта обладают вытесняющим и циклическим планированием. Различие заключается в том, что алгоритмы POSIX-планирования применяются попроцессно, а wind scheduling применяется на уровне всей системы[4].

Все задачи системы и приложения в VxWorks используют одно адресное пространство, что может привести к нарушению стабильности работы системы в случае неисправности какого-либо приложения. Решение этой проблемы достигается установкой отдельно предоставляемого компонента VxVMI[6], который даёт возможность каждому процессу использовать собственное виртуальное пространство.

Прерывания

Для достижения быстрой обработки внешних прерываний, программы обработки прерываний (ISRs — interrupt service routines) в VxWorks работают в специальном контексте вне контекстов потоков, что даёт преимущество во времени, которое обычно тратится на переключение контекстов. С-функция, которую пользователь присоединяет к вектору прерывания, на самом деле не является фактической ISR. Прерывания не могут напрямую обращаться к С-функциям. Вместо этого в таблице векторов прерываний, которая вызывается аппаратно, запоминается адрес ISR. ISR выполняет начальную обработку (подготовку стека и сохранение регистров), а потом вызывается С-функция, которая была присоединена пользователем[4].

Сетевые средства

VxWorks обладает следующими сетевыми средствами[7]:

В сетевые средства VxWorks входят также функции, необходимые при разработке устройств, подключаемых к Internet:

VxWorks поддерживает следующие протоколы маршрутизации:

В стандартную поставку 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.

Дополнительные сетевые возможности: программа WindNet

В 1994 году Wind River Systems была анонсирована программа WindNet, по которой ряд фирм-производителей программных средств в области коммуникаций интегрировали свои программные продукты с VxWorks, тем самым обеспечив поддержку (это неполный перечень)[5]:

Файловая система

В VxWorks поддерживаются следующие файловые системы[8]:

Поддержка симметричного и асимметричного мультипроцессинга

Мультипроцессорная система реального времени, с точки зрения программного обеспечения, бывает двух видов: асимметричная 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[10] и Workbench for On-Chip-Debugging. Поддержка SMP-систем в VxWorks поставляется как дополнительная компонента. Поддерживаются следующие многоядерные микропроцессоры:

Использование

Поддерживаемые целевые архитектуры (targets) Поддерживаемые инструментальные платформы (hosts) Поддерживаемые интерфейсы
Motorola 680х0 и CPU32, PowerPC Intel 386/486/Pentium, Intel 960, Sparc, Mips R3000/4000, AMD 29K, Motorola 88110, HP PA-RISC, Hitachi SH7600, DEC Alpha Sun SPARCstation (SunOS и Solaris), HP 9000/400,700 (HP-UX), IBM RS6000 (AIX), Silicon Graphics (IRIX), DEC Alpha (OSF/1), PC (Windows) host-target Ethernet, RS232, ICE (In-Circuit Emulator), кросс-шина (backplane)

Критика

Минка Николова, интервью InternetNews.com[11]:

Под Linux есть великолепные новые пакеты, которые мы можем при необходимости интегрировать в наши сетевые коммутаторы. Платформа VxWorks стара и в ней сейчас мало что происходит. Пакеты, которые предоставляет VxWorks, на самом деле, не самые новые и не самые лучшие. Всё постепенно движется в сторону Linux.

Оригинальный текст (англ.)

"There are great packages that are available on Linux and a lot of new packages we can integrate into our switches if we decide to do so. VxWorks is old and doesn't have a lot of movement in it. The packages that VxWorks provides really aren't the latest and greatest. But basically everyone is moving toward Linux."

Конкурирующие операционные системы

Краткое сравнение операционных систем реального времени

Оригинальная таблица: Сводные таблицы характеристик свойств ОСРВ

ОСРВ Архитектура Среда разработки POSIX Мах. число задач
VxWorks Клиент-сервер, микроядро Tornado, Workbench POSIX 1003.1, .1b, .1c (включая pThreads) ограничивается только объёмом памяти
QNX Клиент-сервер, микроядро и взаимодействующие процессы QNX Momentics IDE для Windows, Solaris, QNX4, QNX6 (до версии Neutrino 6.3.2 включительно), Linux POSIX 1003.1-2001, с потоками и расширенным. РВ 4095 процессов, в каждом процессе до 32767 потоков
LynxOS[12][13] монолитное ядро[14] Luminosity на базе среды Eclipse POSIX 1003.1a/b/c, 1003.1-2003 ограничено памятью

Примечания

  1. Wind River Advances Multicore Leadership With Introduction of Latest VxWorks Real-Time Operating System. Архивировано из первоисточника 28 января 2012. Проверено 5 апреля 2009. (англ.)
  2. Intel strikes back at ARM, buys embedded OS maker Wind River — Ars Technica. (англ.)
  3. Intel Corporation today announced the successful completion of its acquisition of Wind River Systems Inc. (англ.)
  4. 1 2 3 Статья «Операционные системы реального времени» И. Б. Бурдонов, А. С. Косачев, В. Н. Пономаренко п. 2.1. VxWorks
  5. 1 2 Статья «VxWorks: Операционная система реального времени и комплекс инструментальных средств разработки ПО РВ», А. В. Демьянов п. Дополнительные сетевые возможности: программа WindNet, п. Поддержка стандартов POSIX
  6. VxWorks Facilities: An Overviewп. Virtual Memory (Including VxVMI Option)
  7. Статья: «Операционные системы реального времени» И. Б. Бурдонов, А. С. Косачев, В. Н. Пономаренко п. 5. Сводные таблицы характеристик свойств ОСРВ табл. 2
  8. VxWorks / Tornado II FAQ
  9. VxWorks 6.6 SMP, Symmetric Multiprocessing Technology for Multicore
  10. pdf: Wind River Workbench
  11. Alcatel-Lucent Networking Embraces Linux, NAC
  12. Статья: «LynxOS — операционная система реального времени в стандарте POSIX», Золотарёв С. В., Калядин А. Ю.
  13. новостная статья
  14. статья: «Взгляд на мир операционных систем реального времени в 2006 году С. В. Золотарёв» п. «Монолитное или микроядро?»

Список литературы

Ссылки

Эта статья входит в число хороших статей

Просмотр этого шаблона Операционные системы реального времени
BeOS • ChibiOS/RT • Contiki • DNIX • DSOS • eCosEmboxEROSFreeRTOS • FunkOS • Junos • LynxOSKolibriOSMenuetOS • MERT • Nano-RK • Nucleus • Open AT OS • OS-9 • OSE • PikeOS • pSOS • Prex • QNX • КПДА.00002-01 • RMX • RSX-11RT-11RTEMSRTLinux • scmRTOS • SINTRAN III • Symbian • Talon DSP RTOS • THEOS • ThreadX • TNKernel • TPF • TRON • µC/OS-II • VRTX • VxWorksWindows CE