Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Филинков_Денис_ИСТ-73_1.5см.docx
Скачиваний:
20
Добавлен:
25.09.2019
Размер:
1.24 Mб
Скачать

3.8.2 Полная совместимость со стандартом posix.

Семейство стандартов сообщества IEEE под названием POSIX (Portable Operating System Interface — интерфейс переносимых операционных систем) изначально создано для операционных систем Unix и определяет интерфейс прикладного программирования, который часто позволяет выполнять приложения, разработанные для одной POSIX-совместимой ОС, на другой POSIX-совместимой ОС без каких-либо модификаций. Следует иметь в виду, что стандарт POSIX определяет не архитектуру операционной системы, а интерфейс программирования. По этой причине операционная система реального времени способна поддерживать те же интерфейсы прикладного программирования стандарта POSIX, что и ОС Linux, а также различные особенности Linux без использования её недетермированного ядра.

Рисунок 3.3 - API, реализованные на микроядерной архитектуре реального времени.

Операционная система реального времени QNX Neutrino воплощает подход к программированию приложений, независимый от реализации: она обеспечивает POSIX-совместимые API, которые реализованы на микроядерной архитектуре реального времени (рис 3.3) [7].

Микроядро ОСРВ QNX Neutrino содержит только самые основные системные службы. Все службы более высокого уровня, в том числе драйверы и стеки протоколов, работают как дополнительные процессы, которые размещены в пользовательском пространстве. В результате, разработчики могут без труда расширять операционную систему специализированными службами, не прибегая к сложному программированию и отладке кода ядра.

Важной особенностью ОСРВ QNX Neutrino является то, что POSIX реализован в ней как основа, а не как некое дополнение. Фундаментальный компонент QNX Neutrino, микроядро, с самого начала разрабатывался для поддержки возможностей реального времени стандарта POSIX, в том числе потоков. Таким образом, операционная система QNX Neutrino имеет глубокую совместимость со стандартом POSIX, а, следовательно, и с операционной системой Linux [7].

3.8.3 Единая среда.

В ОСРВ QNX Neutrino приложения реального времени и обычные приложения выполняются в одной и той же среде. Приложения реального времени могут использовать API, которые полностью реализуют стандарт POSIX и имеют полный доступ к системным службам — графическим интерфейсам, файловым системам, стекам протоколов и т. д. Кроме того, существующие POSIX- и Linux-приложения работают в операционной системе QNX Neutrino детерминированно. Наконец, поскольку приложения реального времени выполняются в одной среде с обычными приложениями, межпроцессное взаимодействие между ними значительно упрощается [9].

3.8.4 Открытая архитектура для устранения неполадок и модификации операционной системы.

Тем не менее, совместимость операционной системы реального времени с ОС Linux является мнимым преимуществом, если ОСРВ не реализует модель на основе открытого исходного кода — то, ради чего большинство разработчиков использует Linux. Открытость исходных текстов программ позволяет разработчикам анализировать архитектуру операционной системы, чтобы лучше интегрировать в неё собственный код, адаптировать компоненты ОС к специфичным прикладным требованиям, а также значительно ускоряет устранение неполадок в программах, созданных разработчиками, и проблем, связанных с неожиданными результатами выполнения кода операционной системы [7]. Говоря кратко, разработчики становятся в некоторой степени независимыми от поставщика операционной системы и могут работать с ОС самостоятельно (что невозможно при использовании модели «чёрный ящик», которая реализована во многих коммерческих операционных системах), хотя и вынуждены заниматься сопровождением собственной операционной системы.

Операционная система реального времени QNX Neutrino обеспечивает эти преимущества двумя способами: во-первых, с помощью расширяемой микроядерной архитектуры, и, во-вторых, предоставляя исходный код драйверов, библиотек, сетевых служб и BSP-пакетов, в том числе подробно документированных комплектов разработки драйверов (DDK) для различных устройств.

Поскольку QNX Neutrino является микроядерной операционной системой, её можно модифицировать. За исключением нескольких основных служб (таких как планирование, таймеры, обработка прерываний), которые находятся в пространстве ядра, большинство системных служб (драйверы, файловые системы, стеки протоколов и т. д.) являются приложениями, расположенными в пользовательском пространстве за пределами ядра [9]. Таким образом, разработка собственных драйверов и специализированных расширений для операционной системы не требует знания ядра и использования специальных отладчиков ядра. Разрабатывать расширения операционной системы так же просто, как и обычные приложения, поскольку расширения операционной системы являются программами, находящимися в пользовательском пространстве. Эти программы можно отлаживать стандартными инструментами для исходного кода, с которыми знаком каждый разработчик программного обеспечения для ОС Linux.