QNX: знакомимся

В начале нынешнего сентября стало известно, что канадкая компания Research In Motion (RIM) готовит к выпуску свой первый смартфон на платформе QNX - он получил рабочее название BlackBerry Colt. Его выход запланирован на I квартал 2012-го. В дальнейшем же RIM переведет на QNX все свои смартфоны.

Перевод новых смартфонов семейства BlackBerry на ОС QNX - принципиальный момент для RIM. Пока единственным QNX-устройством в линейке компании является планшет PlayBook.

Перевод новых смартфонов семейства BlackBerry на ОС QNX - принципиальный момент для RIM.

Началась "любовь" RIM и QNX 9 апреля 2010 года, когда Research In Motion заключила соглашение о выкупе у компании Harman International подразделения, занимающегося разработкой QNX. В тот же день было объявлено, что доступ к исходным кодам QNX для широкой общественности с этого момента ограничен.

27 сентября 2010-го на конференции BlackBerry DEVCON-2010 был представлен планшетник BlackBerry PlayBook c BlackBerry Tablet OS на основе QNX Neutrino. Его продажи стартовали в апреле 2011-го.


Неожиданная QNX

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

Эта операционная система - ровесница MS-DOS, а по распространенности QNX значительно превосходит вездесущую Windows.

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

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

Уникальность свойств QNX обусловлена использованием микроядерной архитектуры, мало изменившейся с момента своего появления в 1982 году. Построение системы для конкретного приложения основано на модульном принципе - отбираются только те функции, которые требуются в данном конкретном случае. Небольшой и тщательно отлаженный код микроядра весьма устойчив к сбоям. В результате даже если какой-то аппаратный драйвер совершает программную ошибку, его сбой не "рушит" систему - микроядро просто выгружает ошибочный код, работающий в защищенном режиме. Не случайно же обычное время работы компьютерных систем под управлением QNX без перезагрузки - несколько лет.

Впрочем, встраиваемыми и промышленными системами "карьера" QNX вовсе не ограничивается. Популярная версия QNX Neutrino (появилась в 2001 году) перенесена на многие платформы и работает практически на любом современном процессоре. Среди используемых платформ - семейства x86, MIPS, PowerPC, SH-4, ARM, StrongARM и xScale.

Многие специалисты считают, что ОС QNX - это один из самых надежных, оптимизированных и отлаженных фрагментов кода из всех когда- либо созданных.


История QNX

В 1980 году студенты канадского Университета Ватерлоо Гордон Белл и Дэн Додж закончили изучать базовый курс по разработке операционных систем. По сути, еще во время учебы, выполняя задания преподавателей, они написали основу ядра, способного работать в реальном времени.

И если в то время в СССР "героем дня" был олимпийский мишка, то в Северной Америке - уже персональный компьютер (точнее, тогда еще - "микрокомпьютер"). В 1981-м появилась MS-DOS, а Белл и Додж поняли: в их продукте существует коммерческая потребность. Закончив учебу, они переехали в город Каната (штат Онтарио, Канада), основав там компанию Quantum Software Systems. В 1982 году вышла первая версия QNX, работающая на платформе Intel 8088.

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

QNX стала довольно быстро набирать популярность, так что в середине 1980-х была выпущена QNX2. Система заработала очень высокую репутацию за стабильность и получила широкое распространение в области управления промышленными агрегатами. QNX2 и сейчас иногда применяется во многих ответственных системах.

В середине 1990-х основатели Quantum поняли, что на рынке быстро завоевывает популярность POSIX, и решили переписать ядро, чтобы оно было более совместимым на низком уровне. Так появилась QNX4. Она была доступна со встраиваемой графической подсистемой Photon microGUI и портированной под QNX версией X Window System. Перенесение программ в QNX4 из ОС семейства Unix стало намного проще; также были убраны многие из "причуд" более ранних версий. В начале 90-х компания была переименована в QNX Software Systems.

В конце 1990-х было решено создать операционную систему, в максимально возможной степени совместимую с GNU/Linux. Но при этом ставилось условие обязательно сохранить микроядерную архитектуру. Результатом этих разработок стала QNX Neutrino, увидевшая свет в 2001 году. Одновременно с ней вышла среда разработки приложений под эту систему - QNX Momentics.

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


QNX Neutrino (QNX6)

Эта версия QNX считается самой удачной. Она намного компактнее своей предшественницы, поставляется вместе с Momentics, средой разработки программного обеспечения (IDE), основанной на Eclipse IDE, различными утилитами GNU и ПО, ориентированным на интернет: браузерами Voyager и Mozilla и собственным web-сервером. В отличие от предшествующих версий, работавших только в PC-совместимых архитектурах, QNX6 легко адаптируется к процессорным платформам практически любой конфигурации. Кроме того, особое внимание было уделено проработке архитектуры с тем, чтобы ее можно было эффективно масштабировать: как "вверх" (добавляя новые сервисы и расширяя функциональность), так и "вниз" (урезая функциональность в случае ограниченности ресурсов). Фактически, QNX6 можно установить там, где бы QNX4 не поместилась. Также в QNX6 все драйверы были приведены к единой модели, а все интерфейсы стали открытыми.


Время Harman

27 октября 2004 года Quantum Software Systems была куплена компанией Harman, которая прежде имела мало общего с IT. Как результат, разработчик QNX стал рядовым подразделением Harman.

Наступили "тёмные времена" - интерес к QNX в мире начал падать. Все больше встроенных систем оснащалось различными версиями Linux. По этой причине 12 сентября 2007-го исходный код QNX Neutrino был открыт, хотя для коммерческого использования QNX Neutrino всё равно требовалось приобрести лицензию.

12 сентября 2007-го исходный код QNX Neutrino был открыт, хотя для коммерческого использования QNX Neutrino всё равно требовалось приобрести лицензию.

Однако развитие QNX не остановилось. Разработчики старались приблизить систему к пользователю приложений, сделать среду QNX популярной и коммерчески состоятельной на новых рынках бытовой техники. Для этого реализовали немного аскетичный, но вполне приятный и самодостаточный интерфейс пользователя - Photon MicroGUI. В нем присутствуют все основные примитивы графической оконной системы: окна, кнопки, меню и т.д. Более того, в Photon MicroGUI разработчики изначально заложили современные идеи: полную поддержку Unicode, интерфейс с использованием плагинов и скинов, встроенный интерфейс с Java. Появление этой оболочки привело к новому росту популярности QNX.


QNX в деле

QNX применяется в промышленных системах, которые управляют сложным и ответственным производством с высокими требованиями по времени реакции на аварийные ситуации, надежности и непрерывности управления. Те же требования предопределили использование QNX в финансовых системах, управлении ядерными реакторами и космическими кораблями. Вот самые заметные примеры ее использования:

  • Работа с кредитными карточками VISA во всех региональных офисах Северной Америки.
  • Управление дорожным движением. В городе Оттава-Карлетон (Канада) на базе QNX разработана система управления движением городского транспорта муниципалитета города. Она объединяет около 700 светофоров и 3000 придорожных датчиков на протяжении 1100 километров шоссе. Пропускная способность этих шоссе - 5,4 млрд автомобилей в год. Кроме времени и продолжительности переключения сигналов светофоров на каждом перекрестке города, система управления должна фиксировать происходящие события, анализировать работоспособность оборудования через придорожные датчики.
  • Управление ядерным реактором. Канадская компания Atomic Energy of Canada, разработчик и производитель ядерных реакторов, на основе QNX разработала систему управления ядерным реактором Open Architecture Distributed Control System.
  • Cisco Systems использует оптимизированную версию микроядра QNX Neutrino в программном пакете IOS XR, который предназначен для управления коммутаторами Cisco CRS-1, обеспечивает непрерывный режим работы и поддерживает развитые функции управления терабитными коммутаторами с распределенной архитектурой.
  • В России QNX применяется в системе автоматизированного контроля и управления разводкой мостов через Неву в Санкт-Петербурге, в системе управления северными магистральными нефтепроводами в Ухте протяженностью 3696 км, в системе автоматизации станов холодной прокатки Магнитогорского металлургического комбината, а также на аналогичных заводах в Норильске, Нижнем Тагиле, Электростали.
  • Под управлением QNX работают системы управления движением судов в портах (Санкт-Петербург, Мурманск, Владивосток, Мариуполь) и по Керченскому проливу (порт Кавказ). Информационно-управляющая система компрессорных цехов газоперекачивающих предприятий "Газпрома" также основана на QNX. Как и противоаварийная автоматика различных уровней в Таймырской и Норильской энергосистемах, системах западной и центральной части ОЭС Сибири.
  • QNX Neutrino внедрена в системах автоматического контроля и удаленного мониторинга на более чем 177 станциях и 1173 км шести российских железных дорог.
  • Даже легендарная орбитальная станция "Мир" управлялась модифицированной версией QNX. И это лишь небольшая часть примеров.

Виктор ДЕМИДОВ

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя eu6pc

Отличная статья!

Аватар пользователя batt

прямо не верится, что ОС QNX так давно существует. Достойная система, интересная статья. Спасибо!