Немного о QNX
ОСРВ QNX это не клон или дистрибутив Linux или ответвление какой-то другой UNIX-подобной системы. QNX самостоятельная UNIX-подобная операционная система реального времени, основанная на микроядре и передаче сообщений. Современные версии QNX имеют поддержку стандартов POSIX (и сертифицированны по ним). Первая версия QNX вышла в далёком 1981 году. С тех пор утекло достаточно много времени и поколения QNX сменяли друг друга: QNX2, QNX4 и, наконец, QNX 6 (или QNX Neutrino). Старичок QNX2 и сейчас ещё используется, хотя его расцвет пришёлся на 80-е годы прошлого столетия. Надёжная и более современная ОСРВ QNX4 могла конкурировать на десктопе с Windows в середине 90-х (на скриншоте ниже экран русифицированной версии QNX4):

В конце 90-х стала развиваться новая ветка QNX — QNX6 или QNX Neutrino. Это современная версия ОСРВ, которая вышла в самом начале 2000-х и привнесла много нового в QNX: поддержку отличных от x86 аппаратных архитектур (MIPS, PowerPC, ARM, SH4), поддержку многопроцессорности, поддержку разделяемых библиотек и т.д. Были переработаны подсистемы ОСРВ, например, графическая система Photon и сетевая подсистема. К слову, теперь существует возможность достаточно простого портирования сетевых драйверов NetBSD в QNX6.
О QNX как таковом можно написать очень и очень много хороших и тёплых слов, чему способствует модульная структура, высокая надёжность, простота разработки под эту ОС, отличное встроенное справочное руководство, и многое-многое другое. Но наверное не стоит так сразу перехваливать?
Пожалуй, сейчас самая интересная версия QNX для ознакомления это QNX6. Все новые проекты преимущественно строятся именно на QNX6, а сама система поддерживает много современных и популярных технологий. Помимо этого, для QNX4 не существует пробных или некоммерческих лицензий и сама система уже не развивается, а только поддерживается производителем (выпускаются обновления драйверов и исправления ошибок). Дальше я буду писать именно о QNX6, если прямо не указано иное.
Области применения QNX
QNX это в первую очередь операционная система для построения встраиваемых систем. Но одной из основных особенностей QNX является модульность и, как следствие, масштабируемость. Благодаря этому QNX может применяться и в миниатюрных контроллерах, и в настольных компьютерах. А прозрачная сеть QNX позволяет строить производительные сетевые кластеры.
Обычно ОСРВ QNX применяется там, где требуется высокая надёжность системы: медицинская техника, военная техника и вооружение, нефтегазовая и металлургическая промышленность и т.д. В конце прошлого десятилетия QNX стал развиваться в сторону поддержки мультимедиа технологий, что способствовало появлению проекта QNX Car, а также планшетного ПК BlackBerry PlayBook.
Состав QNX6
У некоторых новых пользователей QNX (наверное не таких продвинутых, как участники Хабрахабр) может вызвать недоумение состав и компоненты QNX6. Постараюсь предотвратить путаницу, которая может возникнуть в дальнейшем. За те десять лет, что QNX6 доступен пользователям, применялись различные варианты поставки QNX. Сейчас используется упрощённая и наиболее удачная (на мой взгляд) схема поставки, и QNX 6.5.0 состоит из следующих двух основных компонентов:
- QNX Neutrino — включает в себя микроядро (даже набор микроядер), драйверы, утилиты, графическую среду и т.д. для поддерживаемых аппаратных платформ (x86, MIPS, PowerPC, ARM, SH4).
- QNX SDP (Software Development Platform) — включает в себя среду разработки Momentics IDE на базе Eclipse, компиляторы, заголовочные файлы и библиотеки для разработки, а также QNX Neutrino.
На всякий случай, уточню, что операционной системой является QNX Neutrino, а QNX SDP это средства кроссплатформенной разработки для QNX Neutrino.
ПО для QNX Neutrino
В дистрибутив QNX6 входят помимо микроядра и драйверов ряд консольных утилит, как специфичных для QNX, так и общих для всех UNIX-подобных систем. Помимо этого присутствует графическая подсистема на базе Photon 2.0. Это самостоятельная графическая среда, которая не совместима ни с Windows, ни с X-Window. Однако, существует системный сервис XPhoton, который позволяет запускать графические приложения использующие X-протокол.
Для QNX6 доступны и другие графические среды, которые основаны на технологиях Adobe Flash Lite 3 (доступен отдельно) или Qt/Embedded (на данный момент в Foundry27 доступна версия 4.7.1).
Помимо всего прочего QNX поддерживает систему управления пакетами pkgsrc, в которой доступно большое количество ПО с открытым исходным кодом как в виде собранных бинарных пакетов, так и в виде скриптов для сборки.
QNX6 поддерживает спецификации POSIX, а значит не должно составить большого труда собрать в QNX грамотно написанный код на языке C. Что, кстати, я делал неоднократно.
Типы лицензий QNX6
QNX это коммерческая операционная система и для установки понадобится лицензия. Существуют различные виды лицензий QNX6:
- Коммерческая лицензия предполагает покупку ОСРВ QNX6 у дистрибьютора. Это необходимо делать в случае коммерческой разработки устройств или ПО на базе QNX.
- Академическая лицензия предоставляется вузам для обучения студентов и работы преподавателей.
- Пробная лицензия (на 30 дней) позволяет ознакомиться с полнофункциональной версией QNX и средой разработки, чтобы оценить целесообразность приобретения ОСРВ.
- Некоммерческая лицензия позволяет работать с QNX и вести некоммерческую разработку.
Регистрация аккаунта myQNX
Для доступа ко многим разделам сайта qnx.com и сообществу Foundry27 требуется регистрация. Регистрация простая и не занимает много времени. Для регистрации надо зайти на сайт www.qnx.com и перейти по ссылке Login, расположенной в верхнем правом углу. После этого следует выбрать пункт New member? после чего откроется форма регистрации в нижней части экрана. Теперь осталось указать e-mail, ввести и подтвердить пароль и нажать кнопку Create Account. Для окончания регистрации понадобится заполнить небольшую анкету и получить код подтверждения по электронной почте, который необходимо указать в форме на следующей странице. На этом регистрация заканчивается, теперь можно скачать дистрибутив QNX.
Регистрация некоммерческой лицензии
Переходим на страницу Non-commercial developers. На первом шаге предлагают скачать QNX SDP под ту инструментальную платформу, в которой планируется вести разработку. Сейчас этот шаг можно пропустить и сразу перейти к шагу два (ниже). Надо отметить, что Вы согласны с лицензионным соглашением (если Вы действительно согласны), проверить, что указанные данные верны, и нажать кнопку Submit. После этого лицензия будет выслана на указанный адрес электронной почты.
Если письмо с лицензионным ключом будет утеряно, то его всегда можно будет посмотреть в профиле на qnx.com.
Заключение
Сначала я хотел написать заметку об установке QNX, но так увлёкся введением, что понял — если я напишу ещё и про установку, то мало кто захочет дочитать всё это до конца. В связи с этим, наверное, мне стоит извиниться, что в заметке так мало интересных технических деталей. С другой стороны, наверное, я подготовлю отдельную заметку по установке QNX и не только на x86 ПК. А может быть и не только по установке. А если вдруг кто-то попросить описать какую-то технологию QNX или тему связанную с QNX, то я постараюсь пойти навстречу.
Темы следующих топиков по QNX
В ходе обсуждения были предложены следующие темы для будущих топиков по QNX:
Сеть в QNX: Qnet.Обзор механизмов межпроцессного взаимодействия в QNX.Архитектура QNX. Микроядро.- Средства разработки для QNX.
Опубликованные топики по QNX
Ниже идёт список материалов, которые уже опубликованы:

