Операционная система реального времени QNX
QNX - операционная система реального времени, разработанная специально для высокоответственных приложений, бесперебойно функционирующих годами. Надёжность QNX обеспечивается её архитектурой — это настоящая операционная система на основе микроядра. В QNX ядром обрабатываются только базовые примитивы ОС (сигналы, таймеры, планирование. Все остальные компоненты: драйверы, файловые системы, стеки протоколов, прикладные приложения выполняются вне пределов ядра как отдельные процессы, каждый в своём защищённом адресном пространстве. Такой подход автоматически обеспечивает системам на основе QNX «встроенную» отказоустойчивость.
Все компоненты QNX используют для общения друг с другом единый, чётко детерминированный механизм обмен - сообщениями. Он образует между компонентами системы виртуальную «программную шину», позволяющую подключать к ней или, наоборот, отключать любой компонент «на лету». Сообщения могут свободно передаваться между узлами вычислительной сети, предоставляя прозрачный доступ к любому ресурсу, где бы он ни находился.
Использование QNX позволяет:
создавать системы, способные к самовосстановлению — в QNX любой компонент в случае отказа может быть перезапущен динамически, не нарушая работу микроядра и других компонентов. Например, если драйвер попытается обратиться к памяти за пределами своего адресного пространства (что для большинства ОС является фатальной ошибкой), QNX корректно завершит этот драйвер и освободит все занятые им ресурсы;
использовать одну и ту же ОС во всей своей линейке программных продуктов благодаря исключительной модульности QNX любые уже испытанные и проверенные компоненты: драйверы, приложения, дополнительные сервисы ОС могут использоваться повторно в других продуктах. Фактически универсальный набор бинарных модулей может применяться как в однопроцессорном устройстве, так и в ЭМР системе, и в вычислительном кластере;
производить обновление системного программного обеспечения без остановки работы конечного устройства поскольку любой компонент в QNX может быть добавлен или удалён динамически, система может продолжать
Профессиональный пакет
В состав QNX входят
графическая оболочка Photon microGUI — полнофункциональная и в то же время встраиваемая оконная среда с расширяемой подсистемой мультимедиа и поддержкой аппаратно независимого многослойного интерфейса. В её состав также включены масштабируемые шрифты и встроенная поддержка Unicode;
широкий спектр файловых систем, включая образную файловую систему, файловую систему в ОЗУ или ППЗУ Flash, файловые системы QNX, Linux, DOS, CD - ROM, DVD, NFS, CIFS, пакетную файловую систему и файловую систему со сжатием;
ядро с поддержкой SMP — стандартное микроядро можно заменить на SMP совместимое, предоставляющее настоящую поддержку тесно связанного SMP для многопроцессорных плат на основе MIPS, PowerPC и x 86;
администратор систем высокой готовности поддерживает квитанции работоспособности для ранней диагностики отказов и предоставляет интеллектуальные механизмы перезапуска отказавших компонентов; поддержка Java две среды исполнения, оптимизированные для QNX: WebSphere Embedded Environment (стандарт Java Powered ) и WebSphere Custom Environment;
POSIX API поддержка POSIX 1003.1-2003, включая многопоточность, расширения реального времени и множество других опций; стеки TCP / IP — встраиваемый стек, стек NetBSD или расширенный стек NetBSD с поддержкой IPSec и IPv6;
отказоустойчивый сетевой интерфейс в QNX приложениях могут прозрачно взаимодействовать по резервированным сетевым соединениям. Если одно соединение нарушается, ОС автоматически перенаправит сетевой трафик по одному или нескольким альтернативным маршрутам. Поддерживается также балансировка нагрузки между всеми доступными соединениями для увеличения пропускной способности.
Функции реального времени QNX обеспечивает быстрое, предсказуемое время реакции за счёт вытесняющего планирования, сверхмалых задержек обработки прерываний, распределённого наследования приоритетов и многих других реализованных в ней современных механизмов.
В поставку профессионального пакета QNX Momentics входит всё, что необходимо на каждом этапе разработки системы, от встраивания на процессорную плату до системного анализа.
Помимо графической IDE разработчики могут использовать и обычный командностроковый инструментарий, получая абсолютно такие же бинарные модули и контекст.
QNX Momentics обеспечивает разработчикам свободу выбора инструментария разработки, так как его интегрированная среда основана на Eclipse — открытой платформе, поддерживаемой большим и постоянно расширяющимся сообществом компаний производителей. Eclipse также предоставляет расширяемую архитектуру подключаемых модулей, позволяющую QNX Momentics работать с практически любым типом информационного содержания. Например, в состав QNX Momentics входит множество подключаемых модулей для разработки и анализа встраиваемых образов, исходных текстов на C/C++ и прочих объектов, характерных для встраиваемых систем. Поддержка множества языков программирования ( C, C++, встраиваемый C++ или Java ), инструментальных ОС ( Windows, Solaris или QNX ) и целевых процессоров (ARM, MIPS, PowerPC, SH -4, StrongARM, XScale или x86) позволяет существенно сократить время разработки проекта независимо от его масштаба и сложности.
Средства разработки кода QNX Momentics включают в себя:
«мастера» проектов,
редакторы кода,
средства управления исходными текстами,
средства построения проектов.
QNX Momentics поддерживает большое количество широко распространённых библиотек, включая
ANSI C,
POSIX,
Dinkum C++, полная версия,
Dinkum C++, встраиваемая версия с сокращенной STL ,
GNU C++ (только для x86),
сжатие,
сеть,
графика,
виджеты,
XML.
Использование стандартных инструментов включает в себя:
GCC v2.95x, GDB v5.x,
LD v2.10.x, поддерживается эмуляция: i386nto, armnto, elf32bmpinto, elf32ppcnto, shielfnto,
MAKE v3.79x,
JDK 1.3 совместимый Java компилятор (с поддержкой инкрементной компиляции для увеличения производительности больших проектов).
IDE включает в себя встроенную поддержку протокола управления исходными текстами CVS включая поддержку удалённого сервера и доступ к защищенным репозитариям посредством sSh. Также поддерживается система управления исходными текстами ClearCase, поставляемая компанией Rational Software в виде подключаемого модуля для Eclipse.
Возможности:
локальное управление версиями;
распределённое управление версиями;
поддержка журнала изменения файлов (кем и какие изменения внесены);
визуальное сравнение версий;
интерактивное слияние изменений в ситуации, когда несколько разработчиков изменяют один и тот же файл.
Используя PhAB™, визуальное средство разработки приложений QNX Photon microGUI®, можно создавать полнофункциональные пользовательские интерфейсы с простотой щелчка мыши. Возможности PhAB™ включают в себя:
готовые шаблоны PhAB;
обширная палитра доступных элементов управления (виджетов);
привязка к виджетам диалоговых окон или вызовов функций (предопределенные, по «горячей» клавише или по низкоуровневым событиям);
полная поддержка со стороны интегрированной среды QNX Momentics;
минимизация кода;
многоязычная поддержка.
Вверх.
Рабочая станция
Системный профайлер позволяет разрешать конфликты синхронизации, определять ситуации взаимных блокировок, выявлять корни семантических ошибок, находить скрытые неполадки в программном и аппаратном обеспечении и оптимизировать производительность приложения, причём как для однопроцессорных, так и для многопроцессорных целевых систем. Характеристики системы могут быть проанализированы в реальном времени, в моменты возникновения событий. Удобный инструмент поиска позволяет проанализировать детали по каждому событию, включая время возникновения, владельца и тип.
Системный профайлер может отображать огромные объёмы информации, включая информацию о вызовах ядра, аппаратных прерываниях, состоянии потоков, обмене сообщениями и событиях планировщика. Сложные комбинации условий могут быть отслежены благодаря развитой системе динамических фильтров, определяемых пользователем. В приложения могут быть встроены средства генерации специализированных сообщений для подсистемы трассировки, оказывающей упреждающее воздействие на процесс записи событий.
Профайлер приложений предоставляет информацию об использовании процессорного времени каждым потоком и отображает её одновременно как в виде абсолютных значений, так и в виде процентной доли от общего времени с возможностью сортировки. Профайлер может анализировать динамически загружаемые разделяемые библиотеки, отвечая тем самым на вопрос, где кроется причина снижения производительности в коде приложения или в библиотеке, которую оно вызывает.
ОС QNX предоставляет пользователю библиотеку распределения памяти, содержащую реализацию большинства типовых операций над строками и памятью. Эти функции перед выполнением операции проверяют корректность использования указанной области памяти, позволяя выявлять ошибки типа переполнения, выборки из пустого буфера, некорректного использования памяти и повторного освобождения одной и той же области.
«Интеллектуальный» механизм отслеживает ошибки работы с памятью. При возникновении ошибки соответствующий фрагмент исходного текста будет помечен предупреждением, при этом можно:
продолжить выполнение программы;
завершить программу и сохранить её образ в дамп файле;
остановить программу и немедленно переключиться в отладчик для локализации проблемы.
Анализатор ОЗУ помогает визуально представлять использование памяти программами и может быстро выявлять переполнения буферов, некорректные освобождения памяти и множество других типовых ошибочных ситуаций. Анализатор ОЗУ предоставляет:
информацию на уровне процесса, которая позволяет быстро оценить карту памяти программы;
специализированную статистику распределения памяти для выявления проблем с использованием «кучи». Статистика включает в себя суммарное количество свободных, распределённых и используемых байтов и блоков; динамический журнал использования памяти для оценки динамики ситуации. Комплекты разработки драйверов (DDK) позволяют быстро создавать драйверы для нестандартного оборудования — аудио, графических и сетевых адаптеров, устройств ввода, принтеров, символьных и USB устройств. Комплекты включают в себя исходные тексты, детальную документацию и готовый программный каркас, в котором весь высокоуровневый аппаратно независимый код уже реализован в виде библиотек.
Поскольку в QNX драйверы выполняются как обычные пользовательские процессы, их можно отлаживать и оптимизировать при помощи того же интегрированного инструментария, который QNX Momentics предоставляет для отладки обычных приложений. Нет никакой необходимости в использовании отладчиков на уровне ядра, которые могут застопорить работу всей целевой системы, в результате скрывая ошибки. Микроядерная архитектура QNX позволяет тестировать изменения в коде драйверов без перезагрузки системы и даже без перезапуска сеанса отладки необходимо просто перекомпилировать и перезапустить драйвер. Наличие встроенного эмулятора позволяет тестировать и отлаживать драйверы непосредственно на инструментальном компьютере, не теряя времени на ожидание целевой аппаратуры.
QNX Momentics предоставляет полный набор инструментария для начальной загрузки и взаимодействия с целевым оборудованием. В этот инструментарий входят пакеты поддержки (BSP) для широкого спектра процессорных плат, построитель встраиваемых систем, позволяющий быстро формировать и настраивать целевые образы, и уникальный целевой агент, динамически загружающий сервисные модули по мере необходимости.
QNX Momentics также включает в себя навигатор целевых систем, который позволяет привязывать проекты к IP адресам или именам хостов, однозначно определяя программно аппаратную конфигурацию целевых систем. Эти конфигурации впоследствии могут использоваться при работе с другими инструментальными средствами. Навигатор целевых систем также обеспечивает интерактивное отображение выполняющихся процессов, позволяя просмотреть следующую информацию о целевой системе: использование ресурсов, атрибуты потоков, файловые дескрипторы и т.д.
QNX Momentics предоставляет богатый выбор готовых пакетов поддержки процессорных плат (BSP) на основе процессоров ARM, MIPS, x86, PowerPC, SH-4, StrongARM и XScale. Каждый BSP снабжён детальной документацией и исходными текстами всех бинарных модулей, включая начальный загрузчик, стартовый код и драйверы устройств.
Вверх.
Литература
Сайты
|