SWD Software Ltd. - официальный дистрибьютор QNX на территории России и стран бывшего СССР Операционная система реального времени QNX
Инструменты для создания надёжных встраиваемых систем и
интеллектуальных устройств любой сложности
QNX Software Systems - разработчик встраиваемой операционной системы QNX
  Стандартная версия

Встраиваемая ОС как основа успеха

Если раньше мысль о том, чтобы программировать однокристальную ЭВМ на языке высокого уровня, да еще и пользуясь сервисами ОС, казалось чистой фантастикой, то нынешняя реальность еще раз подтвердила: фантасты не ошибаются. С развитием технологий интеллект стал проникать везде - в ИТ-словарях даже появилось слово "тостер", и программировать сейчас приходится в буквальном смысле даже тостеры, то есть в том числе устройства самые примитивные и с самым коротким жизненным циклом. И хотя длина жизненного цикла отличается у различных классов устройств, налицо общая тенденция его сокращения. Техника устаревает все быстрее, и производителям постоянно приходится либо выпускать новые устройства, либо модернизировать старые. И чем чаще это приходится делать, тем острее встает проблема эффективности разработки и использования накопленного опыта.

Тот факт, что использование ОС делает труд разработчика на порядок эффективнее, оспаривать не приходится. Причем благодаря нынешнему уровню развития полупроводниковых технологий и технологий встраиваемых ОС, это справедливо и для разработчиков встраиваемых систем. Однако, на ОС, используемые во встраиваемых приложениях, накладывается множество ограничений. Остановимся на них подробнее.

Чтобы выиграть в жесткой конкурентной борьбе, мало обеспечить оптимальное соотношение "цена - качество"; важно, чтобы продукция появилась на рынке вовремя. Между возникновением у клиента новой проблемы и появлением продукции, способной эту проблему решить, всегда существует задержка, вызванная тем, что на разработку продукта требуется время. Производитель, работающий на опережение потребностей клиента и умеющий быстрее своих конкурентов вывести на рынок новый продукт, выигрывает. По статистике, при проектировании современных интеллектуальных устройств основные временные затраты приходятся на разработку программного обеспечения, и это, конечно, накладывает жесткие ограничения на используемые ОС. В частности, чтобы свести время разработки проекта (включая этап обучения, если это необходимо) к минимуму, используемая ОС должна обладать мощным и эффективным инструментарием и предоставлять простую и изящную методологию разработки. Она также должна предоставить разработчику возможность использовать уже готовый код, в том числе созданный для других ОС; это, в свою очередь, требует от ОС наличия универсального стандартизованного API. В дополнение в этому, аппаратные конфигурации встраиваемых систем часто нестандартны, и ОС должна легко адаптироваться к ним. Ускорению процесса разработки также способствует подкрепление ОС профессиональными сервисами, такими как техническая поддержка, обучение, консалтинг и заказные разработки.

Бурный рост российской промышленности позволил перейти от единичных разработок "под конкретную задачу конкретного заказчика" к серийным изделиям, способным конкурировать по качеству и по цене с зарубежными аналогами - причем как в нашей стране, так и на международном рынке. Серийное производство значительно снижает себестоимость продукции, что дает мощное преимущество на рынке с жесткой конкуренцией - возможность вести гибкую ценовую политику. Чтобы снизить себестоимость устройства, используемая в нем ОС, во-первых, должна быть неприхотливой, чтобы исключить аппаратную избыточность, позволяя сэкономить на комплектующих. Во-вторых, она должна гибко масштабироваться, чтобы можно было легко собрать нужную конфигурацию ОС для выбранной аппаратной платформы. И в-третьих, она должна предоставлять приемлемые лицензионные отчисления и гибкое ценообразование.

Однако, быстро разработать продукт и запустить его в серию, сделав доступным по конкурентоспособной цене - это еще не все. Цена продукта представляет собой лишь долю средств, которые покупатель продукта платит за его использование, особенно в случае продукта с длинным жизненным циклом. Любая техника требует обслуживания, ремонта, модернизации и т.п., а это всегда выливается в дополнительные расходы, поэтому корректнее здесь говорить не о цене продукта, а об интегральном критерии, так называемой суммарной стоимости обладания (Total Cost of Ownership - TCO). Соответственно, вместо привычного соотношения "цена - качество" на передний план выходит соотношение "TCO - качество".

Например, встраиваемые системы, применяемые в ответственных приложениях, часто абсолютно автономны и должны работать 24 часа в сутки, 365 дней в году в необслуживаемом режиме, вдали от сервисных центров. Отказ такой системы в лучшем случае влечет за собой дополнительные затраты на ремонт, в худшем - катастрофу, и это в первую очередь требует от применяемой ОС исключительной надежности и живучести. Однако, полная автономность не означает, что системе не будет требоваться профилактика, диагностика, обновление версий ПО и т.п. Традиционно это, как и ремонт, производится персоналом на месте, что привносит дополнительные эксплуатационные расходы, которые тем больше, чем сложнее условия эксплуатации и больше систем требуют обслуживания. Поэтому ОС, применяемая в таких задачах, должна также предоставлять возможность удаленного обслуживания, в том числе удаленной диагностики и удаленного обновления программных модулей.

Если сложить вместе такие свойства ОС как скорость и простоту разработки кода, адаптируемость к оборудованию, неприхотливость, масштабируемость, невысокую цену, надежность, живучесть и возможность удаленного обслуживания и диагностики, то очевидно, что конечная система, построенная на базе такой ОС, будет дешевле как по цене, так и с точки зрения эксплуатационных затрат на длительном промежутке времени.

Необходимость платить лицензионные отчисления за коммерческие встраиваемые ОС часто толкает производителей на использование свободно-распространяемого ПО. Однако, не следует забывать, что такой критерий как ТСО справедлив не только по отношению к покупателю встраиваемой системы, но и к ее разработчику. Бесплатных встраиваемых ОС не бывает. Все существующие свободно-распространяемые ОС изначально являлись ОС общего назначения, и там, где "бесплатна" сама ОС, приведение ее к встраиваемому виду всегда является предметом коммерческой деятельности. Аналогично обстоит ситуация и с услугами - поскольку для приведения ОС общего назначения к встраиваемому виду не существует единой концепции, то каждый производитель таких решений подходит к проблеме по-своему, а значит, впоследствии только он может обеспечить техническую поддержку, обучение и заказные разработки. Все эти услуги, разумеется, являются коммерческими, а поскольку встраиваемость не была заложена в ОС изначально, общая стоимость работ может в конечном итоге значительно превысить затраты на коммерческий продукт, не говоря уже о сроках разработки проекта и затратах на последующее обслуживание и модернизацию.

Прекрасным примером коммерческой встраиваемой ОС является ОС жесткого реального времени QNX канадской компании QNX Software Systems Ltd. Разработанная изначально как встраиваемая ОС, QNX обладает всеми необходимыми свойствами для построения на ее базе высоконадежных и эффективных встраиваемых приложений (см. Таблица 1).

Как свойства вещества определяются его строением, так и все свойства QNX определяются ее архитектурой - архитектурой на основе микроядра. Именно благодаря микроядерной структуре QNX обладает предсказуемостью ОС реального времени, модульностью и надежностью встраиваемой ОС и расширяемостью платформенной ОС.

Многие разработчики выбирают QNX именно как средство сокращения сроков разработки и снижения ТСО, особенно это касается затрат на обслуживание - исключительная надежность QNX сводит их практически к нулю. QNX, как и положено встраиваемой ОС реального времени, компактна и неприхотлива, что позволяет существенно экономить на оборудовании. Полная поддержка стандартов POSIX позволяет легко портировать готовый код из других ОС, что также сокращает сроки разработки. Кстати, это касается не только кода, но и, если так можно выразиться, самих разработчиков: для программистов, работавших в POSIX-среде, при переходе на QNX обучение почти не требуется. Обратная миграция при этом обычно нехарактерна - грузинская пословица "Кто с коня слез, на осла не сядет" применима здесь в полной мере: QNX настолько изящна, что многие программисты почитают разработку кода для нее за удовольствие, которое ни на что не готовы променять. Это относится и к написанию системного кода, то есть протоколов и драйверов - модель драйвера в QNX проста и прозрачна и дополняется множеством хорошо документированных примеров.

Как и положено встраиваемой ОС, QNX является системой модульной, то есть ее конфигурацию для целевого устройства можно набирать "по частям". При этом это преимущество доступно как с технической, так и с коммерческой точки зрения - размер лицензионных отчислений (который у QNX, к слову, очень невелик) определяется тем, какие именно модули выбраны. При этом с увеличением тиража размер лицензионных отчислений существенно падает.

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

Николай Горбунов
SWD Software Ltd.
E-mail: [email protected]

Приложение

Таблица 1. ОС РВ QNX как технология успеха

Проблема Что нужно для ее решения Что предоставляет QNX
Скорость и стоимость разработки проекта Эффективный инструментарий
  • Интегрированный комплект разработчика QNX Momentics.
  • Штатная встраиваемая графическая оболочка.
  • Богатый выбор инструментария "третьих" фирм.
  • Доступность стартовых комплектов.
Прозрачная методология разработки
  • Изящная архитектура.
  • Модульная организация.
  • Распределенное межзадачное взаимодействие.
       
Простота адаптации к оборудованию
  • Открытая унифицированная архитектура драйверов устройств.
  • Комплекты разработки драйверов (DDK) для различных классов устройств.
  • Множество готовых примеров в исходных текстах.
  • Открытость исходных текстов ОС для OEM-партнеров.
Возможность переноса кода из других ОС
  • Полная поддержка POSIX API.
Возможность повторного использования кода из других проектов
  • Модульная структура сервисов с поддержкой модели "клиент/сервер".
Простота встраивания
  • Компактность.
  • Модульность; все компоненты, кроме ядра, опциональны.
Поддержка профессиональными сервисами
  • Официальный дистрибьютор и авторизованный сервисный и учебный центр в России, SWD Software Ltd. (http://www.swd.ru).
  • Возможность получения сервисов напрямую от производителя.
ТСО для конечного пользователя Дешевая аппаратура
  • Неприхотливость к ресурсам.
Дешевые программные компоненты
  • Небольшие лицензионные отчисления.
  • Модульное лицензирование.
Надежность
  • Архитектура на основе микроядра.
  • Все системные модули выполняются вне пределов ядра.
  • Защита памяти с использованием аппаратного MMU процессора.
Живучесть
  • Автоматическое самовосстановление на уровне компонентов.
  • Коэффициент готовности от 99.999% и выше.
Дешевизна в обслуживании, диагностике и модернизации
  • Поддержка удаленного пользовательского интерфейса.
  • Любой модуль можно перезапустить "на лету" без перезагрузки системы.
  • Поддержка защищенных сетевых протоколов.
  • Масштабируемость.
  • Поддержка SMP и RapidIO