o визуальное сравнение версий;
o интерактивное слияние изменений в ситуации, когда несколько разработчиков изменяют один и тот же файл.
Используя PhAB™, визуальное средство разработки приложений QNX Photon microGUI®, можно создавать полнофункциональные пользовательские интерфейсы с простотой щелчка мыши. Возможности PhAB™ включают в себя:
o готовые шаблоны PhAB;
o обширная палитра доступных элементов управления (виджетов);
o привязка к виджетам диалоговых окон или вызовов функций (предопределенные, по «горячей» клавише или по низкоуровневым событиям);
o полная поддержка со стороны интегрированной среды QNX Momentics;
o минимизация кода;
o многоязычная поддержка.
Системный профайлер позволяет разрешать конфликты синхронизации, определять ситуации взаимных блокировок, выявлять корни семантических ошибок, находить скрытые неполадки в программном и аппаратном обеспечении и оптимизировать производительность приложения, причём как для однопроцессорных, так и для многопроцессорных целевых систем. Характеристики системы могут быть проанализированы в реальном времени, в моменты возникновения событий. Удобный инструмент поиска позволяет проанализировать детали по каждому событию, включая время возникновения, владельца и тип. Системный профайлер может отображать огромные объёмы информации, включая информацию о вызовах ядра, аппаратных прерываниях, состоянии потоков, обмене сообщениями и событиях планировщика. Сложные комбинации условий могут быть отслежены благодаря развитой системе динамических фильтров, определяемых пользователем. В приложения могут быть встроены средства генерации специализированных сообщений для подсистемы трассировки, оказывающей упреждающее воздействие на процесс записи событий. Профайлер приложений предоставляет информацию об использовании процессорного времени каждым потоком и отображает её одновременно как в виде абсолютных значений, так и в виде процентной доли от общего времени с возможностью сортировки. Профайлер может анализировать динамически загружаемые разделяемые библиотеки, отвечая тем самым на вопрос, где кроется причина снижения производительности в коде приложения или в библиотеке, которую оно вызывает. ОС QNX предоставляет пользователю библиотеку распределения памяти, содержащую реализацию большинства типовых операций над строками и памятью. Эти функции перед выполнением операции проверяют корректность использования указанной области памяти, позволяя выявлять ошибки типа переполнения, выборки из пустого буфера, некорректного использования памяти и повторного освобождения одной и той же области. «Интеллектуальный» механизм отслеживает ошибки работы с памятью. При возникновении ошибки соответствующий фрагмент исходного текста будет помечен предупреждением, при этом можно:
o продолжить выполнение программы;
o завершить программу и сохранить её образ в дамп файле;
o остановить программу и немедленно переключиться в отладчик для локализации проблемы.
Анализатор ОЗУ помогает визуально представлять использование памяти программами и может быстро выявлять переполнения буферов, некорректные освобождения памяти и множество других типовых ошибочных ситуаций. Анализатор ОЗУ предоставляет:
o информацию на уровне процесса, которая позволяет быстро оценить карту памяти программы;
o специализированную статистику распределения памяти для выявления проблем с использованием «кучи». Статистика включает в себя суммарное количество свободных, распределённых и используемых байтов и блоков; динамический журнал использования памяти для оценки динамики ситуации. Комплекты разработки драйверов (DDK) позволяют быстро создавать драйверы для нестандартного оборудования — аудио, графических и сетевых адаптеров, устройств ввода, принтеров, символьных и USB устройств. Комплекты включают в себя исходные тексты, детальную документацию и готовый программный каркас, в котором весь высокоуровневый аппаратно независимый код уже реализован в виде библиотек.
Поскольку в QNX драйверы выполняются как обычные пользовательские процессы, их можно отлаживать и оптимизировать при помощи того же интегрированного инструментария, который QNX Momentics предоставляет для отладки обычных приложений. Нет никакой необходимости в использовании отладчиков на уровне ядра, которые могут застопорить работу всей целевой системы, в результате скрывая ошибки. Микроядерная архитектура QNX позволяет тестировать изменения в коде драйверов без перезагрузки системы и даже без перезапуска сеанса отладки необходимо просто перекомпилировать и перезапустить драйвер. Наличие встроенного эмулятора позволяет тестировать и отлаживать драйверы непосредственно на инструментальном компьютере, не теряя времени на ожидание целевой аппаратуры. QNX Momentics предоставляет полный набор инструментария для начальной загрузки и взаимодействия с целевым оборудованием. В этот инструментарий входят пакеты поддержки (BSP) для широкого спектра процессорных плат, построитель встраиваемых систем, позволяющий быстро формировать и настраивать целевые образы, и уникальный целевой агент, динамически загружающий сервисные модули по мере необходимости. QNX Momentics также включает в себя навигатор целевых систем, который позволяет привязывать проекты к IP адресам или именам хостов, однозначно определяя программно аппаратную конфигурацию целевых систем. Эти конфигурации впоследствии могут использоваться при работе с другими инструментальными средствами. Навигатор целевых систем также обеспечивает интерактивное отображение выполняющихся процессов, позволяя просмотреть следующую информацию о целевой системе: использование ресурсов, атрибуты потоков, файловые дескрипторы и т.д. QNX Momentics предоставляет богатый выбор готовых пакетов поддержки процессорных плат (BSP) на основе процессоров ARM, MIPS, x86, PowerPC, SH-4, StrongARM и XScale. Каждый BSP снабжён детальной документацией и исходными текстами всех бинарных модулей, включая начальный загрузчик, стартовый код и драйверы устройств.
Операционная система реального времени VxWorks и инструментальная среда Tornado фирмы Wind River Systems предназначены для разработки ПО встроенных компьютеров, работающих в системах жесткого реального времени. Операционная система VxWorks является системой с кросс-средствами разработки прикладного программного обеспечения. Разработка ведется на инструментальном компьютере (host) в среде Tornado для последующего исполнения на целевой машине (target) под управлением VxWorks.
VxWorks поддерживает целевые архитектуры (targets):
o Motorola 680x0 и CPU32, PowerPC;
o Intel 386/486/Pentium, Intel 960;
o Spare, Mips R3000/4000;
o AMD 29K, Motorola 88110;
o HP PA-RISC;
o Hitachi SH7600;
o DEC Alpha.
Инструментальные платформы, поддерживаемые для Tornado (hosts):
o Sun SPARCstation (SunOS и Solaris);
o HP 9000/400,700 (HP-UX);
o IBM RS6000 (AIX);
o Silicon Graphics (IRIX);
o DEC Alpha (OSF/1);
o PC (Windows).
Поддерживаемые интерфейсы host-target:
o host-target Ethernet;
o RS232;
o внутрисхемныйэмулятор ICE (In-Circuit Emulator);
o кросс-шина (backplane).
Операционная система VxWorks построена, как и положено ОС жесткого реального времени, по технологии микроядра, т. е. на нижнем непрерываемом уровне ядра выполняются только базовые функции планирования задач и их управления коммуникацией/синхронизацией. Все остальные функции операционной системы более высокого уровня (управление памятью, вводом/выводом, сетевые средства и т. д.) базируются на простых функциях нижнего уровня, что позволяет обеспечить быстродействие и предсказуемость ядра, а также легко построить необходимую конфигурацию операционной системы.
В многозадачном ядре wind применен алгоритм планирования задач, учитывающий приоритеты и включающийся по прерываниям. В качестве основного средства синхронизации задач и взаимоисключающего доступа к общим ресурсам в ядре wind применены семафоры. Имеется несколько видов семафоров, ориентированных на различные прикладные задачи: двоичные, целочисленные, взаимного исключения и POSIX.
Все аппаратно-зависимые части VxWorks вынесены в отдельные модули для того, чтобы разработчик встроенной системы мог сам портировать VxWorks на свою нестандартную целевую машину. Этот комплект конфигурационных и инициализационных модулей называется BSP (Board Support Package) и поставляется для стандартных компьютеров (VME-процессор, PC или Sparcstation) в исходных текстах. Разработчик нестандартной машины может взять за образец BSP наиболее близкий по архитектуре стандартный компьютер и перенести VxWorks на свою машину путем разработки собственного BSP с помощью BSP Porting Kit.
VxWorks была первой операционной системой реального времени, в которой реализован протокол TCP/IP с учетом требований реального времени. С тех пор VxWorks поддерживает все сетевые средства, стандартные для UNIX: TCP/UDP/ICMP/IP/ARP, Sockets, SLIP/CSLIP/PPP, telnet/rlogin/rpc/rsh, ftp/tftp/bootp, NFS (клиент и сервер).
Wind River Systems анонсировала (1994) программу 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).
Обычные отладчики, позволяющие исследовать состояние программ и данных в точках останова, являются статическими средствами отладки. Возможности исследования динамики исполнения программ и изменения данных предоставляют специальные средства отладки в реальном масштабе времени, которые трассируют интересующие пользователя события и накапливают их в буфере для последующего анализа.