Разработчик ЗОСРВ «Нейтрино» и ОСРВ QNX
0,0
рейтинг
21 июля 2011 в 20:56

Администрирование → Операционная система реального времени QNX: Знакомство

*nix*
Так сложилось, что моя деятельность связана с операционной системой реального времени (ОСРВ) QNX. Уже несколько лет занимаюсь разработкой как под эту ОС, так и некоторых частей самой системы. Обратил внимание на то, что поиск на хабре выводит немного результатов по запросу QNX, однако, мне кажется, что эта ОСРВ может быть интересна не только специалистам по встраиваемым и высоконадёжным системам, но и более широкой публике. Не секрет, что планшетный компьютер BlackBerry PlayBook производства компании RIM основан на QNX и имеет популярность и у нас.

Немного о QNX


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

QNX 4.25 (КПДА.00002-01). Файловый менеджер.

В конце 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 SDP доступен для Windows и Linux платформ. Официально поддерживаются только несколько дистрибутивов Linux, но на практике требуется не так и много, по большему счёту, только современная Java. Я лично разрабатываю под QNX в инструментальной системе на базе ArchLinux 64-бит.

На всякий случай, уточню, что операционной системой является 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 и вести некоммерческую разработку.
Понятное дело, что некоммерческая лицензия без ограничения срока действия наиболее интересный вариант знакомства с ОСРВ QNX6.

Регистрация аккаунта 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


Ниже идёт список материалов, которые уже опубликованы:
Олег Большаков @ob1
карма
99,2
рейтинг 0,0
Разработчик ЗОСРВ «Нейтрино» и ОСРВ QNX
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (70)

  • +6
    Вы про сеть и межпроцессорную работу напишите!
    Сам смутно все с ВУЗа помню. Но помню, было оч. интересно.
    Может, тогда народ сам начнет гуглить про установку.
    • +1
      Наверное лучше про сеть для начала. Про IPC это сильно на любителя и в документации очень подробно описано. Хотя краткий обзор различных механизмов IPC тоже можно написать.
      • +1
        Да вообще побольше про QNX, я раньше грезил ей безумно, но из-за отсутствия достаточного кол-ва статей и времени, просто начал забывать. Вы не упомянули что пресловутые канадцы, которые написали её на чистом asm'е вроде, используют её в ядерном реакторе, что сразу задирает планку уважения :)

        Просим-просим, еще и побольше про QNX!
        • +1
          А еще она используется в одной из навороченных моделей CISCO. А еще, а еще… :)
          • 0
            В которой?
            • 0
              Cisco CRS.
        • 0
          Ну это из области баек наверное. Скорее всего тут речь идёт ещё о QNX2. На чём написан QNX2 я не могу сказать, скорее всего большая часть на C. Более новые QNX4 и QNX6 написаны на C с небольшими вставками на ассемблере.

          В атомной промышленности QNX применяется, и у нас, и у них, так что эта часть не байка.
  • +4
    Прочитал — действительно заинтересовало.
    Жду информацию про установку! (:
    • +3
      Написать вторую заметку про установку мне кажется вполне логично. А раз есть желающие почитать, то напишу.
    • +10
      Установка на PC и виртуалку элементарна, не вижу повода для статьи. Лучше напишите подробнее про микроядерную архитектуру и средства разработки
  • +9
    Черт, я только разогнался, а тут конец статьи :) Пишите еще, тема очень интересная.
  • +1
    А мне интересно, как компилировать под QNX?
    Под Playbook до сих пор нет нормального SDK, но можно скомпилированную C программу запустить через tmp.
    • +2
      Так, записываю. Напишу и про это.

      Если кратко, то вместе с QNX SDP устанавливается tool-chain, в который входит набор компиляторов GCC (для разных аппаратных платформ), так что компилировать можно прямо ими. Я лично предпочитаю этот вариант, т.к. мне нравится командная строка.

      Ещё есть Momentics IDE (на базе Eclipse). Фирма разработчик QNX также участвует и в проекте Eclipse, так что он для QNX родной. Среда очень удобная и популярная. В Momentics IDE просто есть специальные профили для работы с QNX.
      • +1
        tool-chain есть под OSX?
        • 0
          SDP официально поставляются только под Windows и Linux. Хотя есть информация, что существует бета-версия под Mac. Может быть со временем будет доступна для пользователей.
          • 0
            Тогда остается вопрос, как собрать под QNX su и BusyBox (под PlayBook его нет) :)
            • 0
              На том PlayBook, что был у меня, su был.

              Собрать BusyBox не составит проблем, но будет ли толк при запуске от пользователя? Я не уверен. А доступа от root нет.
              • 0
                Консоль от devuser запускается только и su not exist.
                • +1
                  ob1 иммет ввиду что, чтобы su работал, вам нужно будет сделать chown root su;chmod +s su, а это можно сделать только под рутом
                  • 0
                    Не знаю что такое PlayBook, но можно попробовать вытащить из него накопитель, вставить в ругой комп и установить там владельца и суид-бит на su.
                    и если проблема собрать su для этой платформы, то можно написать небольшую программу с ровно двумя сискалами. Смотрите man 2 setuid и man 2 execve
                    • 0
                      su уже собран и входил в тандартный набор утилит на том PlayBook, который я держал в руках. Suid бит тоже установлен, как и положено. Но пароль рута неизвестен.

                      Собрать свой su из исходников не проблема. Можно его и пропатчить так, чтобы он пароль не спрашивал. Но вот записать новый su на PlayBook будет уже сложнее. Вытащить накопитель можно (а вернее, скопировать образ файловой системы с командами), но этот образ зашифрован. Так что не всё так очевидно.

                      В любом случае, взлом PlayBook немного выходит за рамки темы, которую я написал. С пониманием отнесусь, если этот разговор продолжится в другой теме или на другом форуме.
                      • 0
                        Извиняюсь, думал какой-то очередной net-book. Согласен насчет оффтопа, прекращаю.
  • –5
  • НЛО прилетело и опубликовало эту надпись здесь
    • +3
      Конечно, реальное время это большой козырь, но QNX выбирают не только из-за этого. Очень немаленькую роль играет, например хорошая и подробная документация (на английском, хотя существуют частичные переводы). Плюс к этому удобная и лёгкая разработка, как высокоуровнего ПО, так и драйверов устройств.

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

      Безотказность это следствие использования микроядра. В QNX любой драйвер это рядовой процесс, такой же как и пользовательская программа. Например, при сбое драйвера файловой системы его легко можно перезапустить без перезагрузки всей системы. Конечно, есть и такие средства как сторожевой таймер (watch-dog) и менеджер высокой готовности (HAM).

      Так сложилось, что я сначала познакомился с книжкой Сергея Зыля (по QNX6), а потом прочитал Kolnick'а и Krten'а (это уже по QNX4). На самом деле хороших книг по QNX не так и много. Думаю, что отчасти это связано с тем, что с QNX поставляется обширная и очень качественная документация.
    • +3
      Ну в плане для чего применять. Смотрите, когда необходима высокая эффективность моделирования процессов реального времени, значит и необходима возможность отладки некоторого алгоритма или модели, который или которая в свою очередь взаимодействует с аппаратурой, работающей в режиме реального времени. Сейчас вообще для проектирования и отладки таких моделей стандартом де-факто является среда Matlab Simulink, но это псевдо-реальное время, в зависимости от ресурсов рабочей машины моделирование будет протекать или быстрей или медленнее (грубо сказано).
      Добавлю пример из жизни, на работе собирали стенд для тестирования алгоритмов защиты некоторого устройства, так вот архитектура представляла из себя двухмашинный комплекс. Первый ПК работал под управлением Windows и был предназначен для проектирования моделей алгоритмов защит, второй ПК — под управлением ОС реального времени QNX и был оснащённый платами ЦАП и АЦП, благодаря которым в реальном времени происходил обмен данными с испытуемым устройством.
    • +2
      >Еще интересно есть ли какие-то механизмы в QNX которые позволяют безотказно функционировать всей системе? Тоесть чтобы например в искуственном сердце при возникновении ошибки в прриложении, система все перезапустила, а само микроядро не зависло?

      Процессорное время выделяется в соответствии с приоритетами задач, поэтому задача с более низким приоритетом никогда не сможет застопорить более приоритетные задачи.
      Далее, если есть несколько задач одного и того же приоритета, то процессорное время выделяется им по принципу round robin, т.е. каждая из задач гарантированно получает своё процессорное время.
      Это если вкратце.
      • +1
        Спасибо, что уточнили. Для меня многие вещи в QNX настолько привычны, что мне надо предварительно подготовиться, чтобы самое важное и интересное не забыть.
      • 0
        >> Процессорное время выделяется в соответствии с приоритетами задач, поэтому задача с более низким приоритетом никогда не сможет застопорить более приоритетные задачи.

        Понятно, что у задач есть приоритеты (как и во всех современных ОС) и также понятно, что теоретически это не мешает низкоприоритетным задачам стопорить высокоприоритетные (собственно en.wikipedia.org/wiki/Priority_inversion ). В QNX это решается с помощью наследования приоритета en.wikipedia.org/wiki/Priority_inheritance, опять же как и в других современных ОС. Это не особенность QNX.
        • 0
          >В QNX это решается с помощью наследования приоритета en.wikipedia.org/wiki/Priority_inheritance, опять же как и в других современных ОС. Это не особенность QNX.

          Вот только почему-то в «других современных ОС» пользовательское приложение может легко отожрать весь проц, да так что мышка еле дёргается. Неужели прикладные задачи запускаются с тем же приоритетом, что и системные?

          Что касается равноприоритетных задач — тут всё дело в волшебных пузырьках слове «гарантированно». Система гарантирует, что ни одна задача не отъест больше процессорного времени, чем остальные равные ей по приоритету. Прошёл отпущенный квант времени — освободи помещение и иди в конец очереди. В «других современных ОС» это, очевидно, не так, иначе они бы тоже именовались «RTOS».
          • +1
            >> Вот только почему-то в «других современных ОС» пользовательское приложение может легко отожрать весь проц, да так что мышка еле дёргается. Неужели прикладные задачи запускаются с тем же приоритетом, что и системные?

            Очевидно, нет. Возможность «отожрать проц», как вы понимаете, может быть связана с множеством причин — особенностями планировщика, планировщика ввода-вывода и множеством других. В основном это результат тяжелого компромисса между требованиями к производительностями и требованиями к отзывчивости в ОС «нереального» времени. Идеал вообще — штука труднонаходимая.

            >> то процессорное время выделяется им по принципу round robin, т.е. каждая из задач гарантированно получает своё процессорное время.
            >> Система гарантирует, что ни одна задача не отъест больше процессорного времени, чем остальные равные ей по приоритету

            Само по себе использование алгоритма Round Robin совершенно не делает систему системой реального времени. Это простейший алгоритм, он используется со времен зарождения многозадачности. Для того, чтобы ОС стала ОСРВ нужно гораздо больше. Впрочем, надеюсь, автор осветит это в своих следующих статьях.
            • 0
              Это может показаться странным, но у меня нет возражений ни по одному из пунктов :)

              Разумеется, очень многое упирается в планировщик и другие компоненты ядра, и разумеется, round robin сам по себе ещё ничего не означает (кстати, на нём свет клином не сошёлся, в QNX предусмотрены и другие алгоритмы, он просто используется по умолчанию).
              Затык именно в том, как он реализован и всё в том же ключевом слове «гарантированно».
        • 0
          Наверное, Вы правы, в инверсии приоритетов и наследовании приоритетов ничего необычного нет. Однако, стоит учитывать, что в QNX используется микроядро, а все драйверы это обычные процессы. А значит влияние системных вызовов на задержки минимально.

          Помимо всего прочего, в QNX есть технология Adaptive Partitioning. Можно группировать процессы в блоки, которым задавать процент процессорного использования времени, который они не могут превышать.
          • +1
            Да. а микроядро и Adaptive Partitioning — это уже особенности.
            Надеюсь, в своей серии статей вы не обойдете вниманием момент производительности микроядра (против монолитного/гибридного). Все мы слышали, что микроядро «медленное-медленное-медленное!». Хотелось бы узнать насколько медленное или это вообще предрассудок. Как насчет того, чтобы погонять какой-нибудь общий бенчмарк производительности против linux/*bsd?
            И про Adaptive Partitioning. Какова реальная польза от использования? Есть ли применение за пределами ОСРВ?
            Вот, пожалуйста, такой заказ на следующие статьи)
            • 0
              Подумаю.

              В общем случае, микроядро и передача сообщений будут медленнее, чем монолитное ядро, т.к. переключений контекстов больше. Но в с случае с QNX это не трагедия, т.к. переключения контекстов достаточно шустрые. В любом случае реальное время не даётся просто так, стабильность результатов в обмен на некоторое общее замедление присутствует.

              Ну и кое-какие результаты тестов, конечно есть. Например в Linux могут быть провалы или скачки, а в QNX всё идёт ровненько.
    • +4
      В QNX используется микроядро. Которое состоит из менеджера процессов и шедуллера. Очень «примитивное» ядро. Так вот, программист точно знает в какие моменты времени ядро вытеснит все процессы, переназначит приоритеты и отработает свой код. Так же программист знает сколько точно длится этот период. Время между двумя ближайшими «включениями ядра» называется системным тиком, можно понимать как период работы системы. Системный тик остается постоянным.
      Плюс к этому система написана так, что все операции по возможности атомарны и нет никаких отложенных операций и прочих «хаков». Это позволяет безопасно прерывать исполнение процессов и отдавать процессор более приоритетному процессу.
      Это дает возможность строить системы, которые обладают высокой точностью во времени. Программа не может «опоздать» к исполнению или исполняться дольше чем должна по каким-то не зависящим от нее системным причина. QNX дает возможность четко контролировать время. Отсюда и название.
      • +1
        Когда я начал работать в QNX, я был поражён наличием функции nanospin(), которая гарантирует временную задержку с точностью до наносекунд.
  • +1
    Спасибо за статью! Я пробовал зимой где-то скачать и установить систему но запутался на сайте что там и куда… Скачал потом что-то, а оно просило серийник при инсталяции :(

    В интернете читабельной инфы очень мало

    У меня есть какой-то древний QNX но он инсталируется только с виндовс 98
    а потом при загрузке системы делает бут меню и грузит всю систему из одного большого файла на диске.
    • 0
      Да на сайте, к сожалению, не всё так очевидно. Теперь Вам удалось зарегистрироваться и получить ключ? Информацию в русском Интернете будем добавлять. ;-}

      Судя по всему, у Вас диск из книжки Сергея Зыля с QNX 6.2.1NC. Или даже более старая версия. Тогда QNX6 умел делать файловую систему в большом файле на разделе FAT в Windows. Скорее всего это было сделано с целью популяризации QNX6. Сейчас в этом уже нет необходимости, т.к. QNX (4 и 6 версии) очень хорошо поддерживают VMWare. Кстати, книжка очень даже полезная, а вот диск уже устарел.
  • +1
    QNX интересная ось, голова(CIS) в автомобилях bmw работает именно на ней.
    • +1
      а так же порш, ауди и мерседес. серьёзно. возможно больше, но это то с чем лично я сталкивался
  • +1
    Лет 9 назад (+-) у нас по школе ходил образ загрузочной дискеты с демоверсией qnx. Меня тогда очень удивило, что разрешение экрана можно было поставить поддерживаемое без всяких драйверов.

    В этой демо версии вроде даже браузер свой был.

    У сторонников теории «виндовс маст дай» qnx был одним из козырей в спорах)
    • 0
      Было-было такое.
      Я тогда болел загрузочными дискетами с Linux, но там голая консоль, а тут такое чудо )
      • +2
        Это, кстати, был диск с QNX4. На дискетке помещались ядро, небольшой набор утилит, сервер Photon (графическая система) с драйвером, набор популярных тогда сетевых драйверов и свой собственный браузер Voyager.

        Дискета, кстати, была популярна ещё до совсем недавнего времени.
  • +10
    автор — молодец.
    только нафиг эту установку, это все бубны же.
    расскажите лучше про СОЛЬ системы, как она справляется с реалтаймом и как она работает на слабых системах. и вообще особенности разработки продукта под нее. про курьезы расскажите, которые неизбежно порождает требование реалтайма.
    • +2
      Поддерживаю. Все эти описания процесса установки и менюшек абсолютно не нужны, если не понятно зачем вообще нужна эта ОС.
    • +1
      Согласен. Установку можно самостоятельно осилить, если система действительно интересна и/или нужна. С другой стороны автору непременно попеняют на отсутствие информации по установке.
      Поэтому, уважаемый ob1, если и будете рассказывать об установке, то не тратьте много сил на это. Поберегите их для экскурсов в суть системы :)
      • 0
        Всё-таки про установку надо немного рассказать. Чтобы каждый не разбирался с одним и тем же. Существуют разные способы установки, разные образы дисков. И описать простой и понятный путь, наверное, стоит.

        Хорошо, раз есть такой интерес к применению и назначению QNX, то эту информацию я постараюсь подготовить в первую очередь.
    • 0
      Вот один из занятных случаев, в чём-то курьёзный:

      habrahabr.ru/blogs/nix/124778/
  • +1
    Узнал о QNX только с официального сайта, представляющего Playbook, и загорелся. Было бы прекрасно увидеть Lessons по разработке по типу уроков от университета Стенфорда по iPhone Development, когда-то они очень мне помогли…
    • 0
      Сорри, ссылка из-за слитой кармы не пропечаталась, но ищущий да найдет CS193P iPhone Application Development ;) И очень хочется увидеть обучающие видео-скринкасты, чтобы сделать что-нибудь более сложное, чем ¡Hello, world! =)
      • 0
        Готовых видео уроков по QNX, наверное, нет. По крайней мере я не помню, чтобы они были доступны. По QNX проводятся курсы, например, нашей компанией тоже.

        Одно время мы хотели подготовить такое видео, но пока его нет. Думаю, что рано или поздно оно появится, тогда я об этом тоже напишу.
        • 0
          А курсы платные? Просто я уверен, что энтузиасты могут выложить свои скринкасты, например, на Youtube — такая практика уже давно применяется
          • 0
            Да, курсы платные.

            Не удивлюсь, что с ростом популярности QNX как мультимедиа платформы, появятся и обучающие видеоролики подготовленные заинтересованными пользователями. Кстати, роликов с QNX на Youtube немало. Например:

            www.youtube.com/watch?v=2Kc9bOSEMts
            www.youtube.com/watch?v=yTUweJKAUfk
  • 0
    Спасибо за интересную инфу!
    Хотелось бы узнать, а с графическими и мультимедийными приложениями работает кто-нибудь в этой системе? т.е., на десктоп ставит кто-нибудь с целью «жить» в этой системе?

    Есть ли там bash, perl, gnu?
    • 0
      Графика и мультимедиа самобытная. Когда-то собирали VLC, мы недавно собирали MPlayer. Кстати, звуковая система QSA ответвилась когда-то от ALSA.

      Жить в системе вполне можно, раньше некоторые жили, был в своё время Netscape. Однако, надо понимать, что хоть система вполне адекватно смотрится на десктопе, но QNX хорош как встраиваемая система.

      Родная оболочка — ksh, bash тоже можно поставить. Perl есть в pkgsrc. Родной компилятор — gcc.
  • +1
    Спасибо за интересное описание, надеюсь это только первая статья из серии! Самому очень интересно прочувствовать именно «идеологию» риалтайма и понять, какие механизмы гарантируют то или иное время обработки задач. Сам работаю с «управляемыми» языками, где сборщик мусора может в любой момент остановить все без исключения потоки :)
  • +2
    В РЖД на QNX работают контроллеры, которые собирают информацию с датчиков температур, давления, смещения и тд, установленных на объектах инфраструктуры.
  • +1
    Моё знакомство с QNX началось со скачивания демо-дискетки. Интернета не было. Оценить систему по достоинству тогда не смог. Жаль образ дискеты уже давно не найти на офф. сайте(( Спасибо за статью!
  • +1
    До сих пор лежит дома печатный CD с QNX4, красивая такая :)
    В универе под нее писали на С софт для работы с наземными станциями слежения за спутниками и т.д.
  • +1
    Статья интересная, к сожалению информации действительно мало в интернетах. Особо интересует вопросы сравнения Linux c патчами реального времени и QNX. Я сам отдаленно связан с автоматизацией (телемеханника ТП, РП и тд) и у меня сложилось мнения, что производителям оборудования очень нравиться эта операционка, вот только я так и не понял из-за чего и простого ответа на этот вопрос так и не нашел :(
  • +1
    Какова стоимость лицензии для коммерческой разработки?
    И надо ли покупать коммерческую лицензию заказчику или можно обойтись некоммерческой?
    • 0
      Для разработки надо покупать лицензию на средства разработки, а именно, на QNX SDP.

      Каждая установка QNX Neutrino требует run-time лицензию. Эта цена гораздо ниже цены на средства разработки и зависит от модулей, которые предполагается использовать. Например, без графики (без Photon) стоимость получается ниже.

      Если Вы заказчику будете поставлять какое-то конечное изделие с QNX, то заказчику ничего дополнительно покупать не надо. В этом случае, Вам надо будет приобретать run-time на QNX. Если Вы хотите поставить заказчику свой софт, а тиражировать он будет самостоятельно, то заказчик должен будет приобретать лицензии на run-time модули. Если же заказчик захочет ещё и дорабатывать Ваш код, то ему понадобятся лицензия на средства разработки.

      Цены тут озвучивать, наверное, неправильно. Я Вам в личку сейчас скину ссылку, где Вы можете запросить цены.
    • 0
      Место разработчика стоит примерно 150 000 руб и его приобретение необходимо для закупок лицензий для конечных устройств. Одна лицензия на устройство в минимальной комплектации, только ядро и основные драйвера, без скидок на кол-во — примерно 5 000 руб. Но стоимость очень сильно зависит от кол-ва лицензий, отличия на порядки.
      • 0
        Академическая лицензия требует написания научных трудов и их публикации, т.е. просто так сказать, что типа мы тут денег не зарабатываем не получится.
  • +2
    В ходе обсуждения были предложены следующие темы для будущих топиков по QNX. Этот список я добавил в конец топика:
    • Сеть в QNX: Qnet.
    • Обзор механизмов межпроцессного взаимодействия в QNX.
    • Архитектура QNX. Микроядро.
    • Средства разработки для QNX.
    • Установка. (И хоть многие были против, но я, наверное, подготовлю небольшую заметку.)
    Буду потихоньку готовить и публиковать. Если что-то интересно ещё, то пишите в личку.
  • 0
    Хех меня эта система как то спасла. Был я полным ламером, заглючила у меня винда98я и отказался комп ходить по инету через модем, хоть тресни. А надо было для реферата по психологии срочно надергать с сети материала. На счастье на диске от журнала Hard'n'Soft оказался установочный образ QNX который ставился в виде хитрого раздела аля файл на диске и прописывался в загрузчик. Поставил, бутанулся в него. Графически интерфейс и основной софт (браузер и диалап звонилка) там уже был. Скачал нужный материал, закинул на дискетку, грузанулся в винду, достал распечатал. Бинго! Тогда я не придал этому значения, ну еще одна ОС как ос. Теперь же понимаю, что чертовски круто, что такая нетипичная ОС с пол тычка стартанула у меня из коробки и дала вполне вменяемое рабочее окружение. Линух этому научился лишь спустя несколько лет.
  • 0
    Приветствую автора! Я понимаю, что вопрос мой скорее всего имеет ответ не в двух словах. Дело в том, что есть на руках прошивка и копия её с одного автомобиля. Хотелось бы как-либо добавить в голову FLAC формат. Сам я не программист, и *nix системами дел не имел. Штатный виндузятник. Как обрабатывает мультимедийный плеер в транспорте библиотеки можно понять посвященному человеку, но найти мне лично самому библиотеку для папки \efs-system\lib\dll\mmedia типа *_parser.so ума не приложу, а тем более как научить магнитолу её подхватывать. Правда в конфигах был файл, где задавались форматы, и wav я таки себе разрешил, сняв комментарий со строки, но на следующей версии прошивки этот финт уже не прокатил, хотя штатные мелодии вызова сохранены в том же wav формате. Форум наш qnx мне не помог или не знают, или не до меня или светиться не хотят) В общем на данный момент у меня нет только возможности записи в ifs-root. А хотелось бы всё таки себе по феншую flac сделать, хотя и wav это уже прогресс. Прошу ответить мне, даже при не очень обнадёживающей информации. А вообще за этой ОС будущее конечно. Я аж завидую по хорошему тем, кто с ней на «ты».

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.