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

Традиционно в индустрии программного обеспечения используются два вида лицензий – коммерческие и свободные. Для первых характерен жесткий контроль над интеллектуальной собственностью и закрытость применяемых технологий, а вторые предоставляют доступ к исходным кодам программ, возможность их модификации и тиражирования. Самой распространенной свободной лицензией является GPL (General Public License, Открытое лицензионное соглашение), согласно которой распространяется ряд операционных систем. Эта лицензия позволяет разработчикам вести коллективную работу и в полной мере использовать существующие технологические наработки сообщества, но:

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

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

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

Гибридная модель лицензирования позволяет разработчику выбрать наиболее подходящие условия взаимодействия с компанией QNX Software Systems и принять соответствующее лицензионное соглашение:

  • пользователи, которые желают изучить возможности платформы разработки QNX Software Development Platform (SDP), создавать прототипы целевых систем или использовать ее в некоммерческих целях, заключают некоммерческое лицензионное соглашение NCEULA (Non-Commercial End User License Agreement), допускающее беспрепятственное получение дистрибутива QNX SDP для ознакомления и ограниченных действий по разработке ПО;
  • преподаватели и студенты вузов могут использовать технологии QNX в учебных целях на условиях некоммерческого лицензионного соглашения;
  • компании-разработчики, которые намерены использовать программное обеспечение QNX для коммерческой деятельности, связанной с обеспечением аппаратной или программной поддержки продуктов QNX, получают бесплатную партнерскую лицензию PSLA (Partner Software License Agreement);
  • компании, намеренные вести разработку коммерческих приложений с использованием компонентов среды исполнения операционной системы реального времени QNX Neutrino и их модификаций, а также мультимедийного программного обеспечения промежуточного слоя QNX Aviage, должны получить коммерческую лицензию CSLA (Commercial Software License Agreement), ключевое преимущество которой – ответственность QNX Software за свое программное обеспечение, а также возможность получения различных дополнительных услуг.

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

Для вступления в сообщество «Кузница27» необходимо пройти процедуру регистрации на сайте компании QNX Software Systems и принять одно из трех лицензионных соглашений. Независимо от выбранной лицензии, разработчик получает доступ ко всем исходным текстам, опубликованным на сайте сообщества. Сейчас открыты исходные коды микроядра, системных библиотек, основных утилит операционной системы QNX, файловых систем, сетевого стека, технологии адаптивного квотирования (Adaptive Partitioning), прозрачной распределенной обработки (Transparent Distributed Processing, TDP) и симметричной многопроцессорности.

Открытие исходных кодов и создание сообщества разработчиков в рамках новой лицензионной политики компании QNX Software Systems дает новый стимул к развитию QNX-технологий – если лицензия GPL обязывает разработчиков, модифицирующих исходный код открытого продукта, открывать доступ к измененному коду, что наносит ущерб интеллектуальной собственности, то гибридная модель лицензирования не требует от разработчиков открывать модифицированный код, что позволяет им сохранять конкурентные преимущества своих продуктов.

На данный момент в сообществе «Кузница27» зарегистрировано около 25 тыс. участников, в работе находятся 16 проектов по усовершенствованию и расширению возможностей операционной системы QNX, охватывающих широкий круг технологий: микроядро, сетевую и файловую подсистемы, пакеты поддержки плат и драйверы, инструменты разработки, разнообразное прикладное ПО. Значительное внимание уделяется переносу технологий из других ОС, в частности поддержке новейших версий стека TCP/IP из BSD и интеграции операционной системы реального времени QNX Neutrino в кроссплатформный репозиторий программ pkgsrc, содержащий свыше 8 тыс. пакетов программ для 14 операционных систем. Участники сообщества взаимодействуют со специалистами компании QNX Software Systems и получают информационную поддержку: вики по технологиям, форумы, агрегаторы блогов и т.д. В конце 2008 года была выпущена платформа разработки программного обеспечения QNX SDP 6.4.0 – первый продукт QNX, созданный при участии сообщества «Кузница27». Преимуществами нового продукта являются усовершенствованный сетевой стек NetBSD 4, перенесенный из BSD, виртуальная память с изменяемым размером страницы, файловая система с повышенной устойчивостью к сбоям при отключении питания, а также наличие технологических комплектов для разработки графических и сетевых приложений.

Наряду с поддержкой портала «Кузница27» QNX Software информирует сообщество о новых возможностях своих технологий. Специалистам доступны отчеты по тестированию оборудования, работающего под управлением QNX, технические статьи, обзоры рынков и разработок партнеров компании.

Привлекая сообщество к работе над платформой разработки QNX SDP 6.4.0, в QNX контролируют стратегию развития продуктов и отвечают за их соответствие международным стандартам. QNX Neutrino 6.4.0 имеет сертификат POSIX PSE52, гарантирующий переносимость исходного кода и предсказуемость времени отклика, требуемую в строго ограниченных во времени приложениях. Кроме того, выпущена специальная защищенная версия микроядра QNX Neutrino – QNX Neutrino RTOS Secure Kernel, имеющая сертификат EAL4+ по стандарту «Общие критерии» (Common Criteria). Этот сертификат подтверждает возможность ее использования в приложениях с особыми требованиями по защите информации от несанкционированного доступа.

Несмотря на то что любой желающий может легко вступить в сообщество «Кузница27» и получить доступ ко всем его ресурсам, QNX Neutrino не относится к категории свободного ПО. По завершении разработки для коммерческих целей разработчики приобретают лицензии на модули среды исполнения, а некоммерческие разработчики, представители образовательных учреждений и стратегические партнеры QNX не только изучают и изменяют исходный код операционной системы, но и имеют бесплатный доступ к инструментам разработки QNX.

Гибридная модель лицензирования – новый способ взаимовыгодного сотрудничества между коммерческими компаниями и разработчиками систем реального времени. Выпуск новой платформы разработки QNX SDP 6.4.0, а также ее сертификация по стандартам POSIX и Common Criteria свидетельствуют о том, что модель гибридной лицензионной политики доказала свою эффективность на рынке надежных встраиваемых систем.

Александр Кузнецов (training@swd.ru) – преподаватель учебного центра компании SWD Software (Санкт-Петербург).