Легендарные IT-проекты: QNX

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

Система повышенной надежности

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

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

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

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

Создавая ОС

В 1980 году студенты канадского Университета Ватерлоо Гордон Белл и Дэн Додж закончили изучать базовый курс по разработке операционных систем. По сути, еще во время учебы, выполняя задания преподавателей, они написали основу ядра, способного работать в реальном времени. Белл и Додж быстро поняли, что в их продукте существует коммерческая потребность. Закончив учебу, они переехали в город Каната в штате Онтарио (Канада), где основали компанию Quantum Software Systems. В 1982 году была выпущена первая версия QNX, работающая на платформе Intel 8088.

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

Интересно, что одно из первых практических применений QNX, получивших широкое распространение, вовсе не относилось к встраиваемым системам. Новая ОС была выбрана для собственного компьютерного проекта Министерства Образования Онтарио (Unisys ICON). В те годы QNX использовалась в основном только для «больших» проектов, так как ядро, имеющее размер 44 Кб, было слишком крупным, чтобы работать на однокристальных чипах того времени.

В середине 80-х годов была выпущена 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 Neutrino

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

Новые времена, новые нравы

27 октября 2004 года Quantum Software Systems была куплена компанией Harman, очень далекой от информационных технологий вообще и операционных систем реального времени – в частности. В результате компания-разработчик QNX превратилась из поставщика решений для широкого спектра применений в едва ли не рядовое подразделение компании Harman.

Во многом в результате этой сделки после 2004 года интерес в мире к QNX начал угасать. QNX сохранила популярность в основном в России и СНГ (благодаря неимоверным усилиям дистрибьюторов) а также в Германии (по той же причине, а также благодаря агрессивной рекламе).

12 сентября 2007 года компания QNX Software Systems объявила о том, что исходный код ОС QNX Neutrino будет открыт, но для коммерческого использования QNX Neutrino необходимо приобрести лицензию.

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

QNX как насущная необходимость

Чтобы понять, насколько важна ОС QNX для современной индустрии, достаточно привести лишь самые заметные примеры ее использования. Наиболее яркий пример применения QNX – работа с кредитными карточками VISA во всех региональных офисах Северной Америки. Другое направление – управление дорожным движением. В городе Оттава-Карлетон (Канада) на базе QNX разработана система управления движением городского транспорта муниципалитета города (RMOC – Regional Municipality of Ottawa-Calerton). Эта система объединяет около 700 светофоров и 3000 придорожных датчиков на протяжении 1100 километров шоссе. Пропускная способность этих шоссе – 5,4 млрд автомобилей в год. Кроме времени и продолжительности переключения сигналов светофоров на каждом перекрестке города система управления должна фиксировать происходящие события, анализировать работоспособность оборудования через придорожные датчики.

Управление ядерным реактором. Одно из отделений канадской компании Atomic Energy of Canada, которая известна как разработчик, производитель и продавец ядерных реакторов, специализируется на разработке ПО для управления и мониторинга. На основе QNX им разработана система управления ядерным реактором – «Распределенная Система Управления с Открытой Архитектурой» (Open Architecture Distributed Control System).

Cisco Systems использует оптимизированную версию микроядра QNX Neutrino в IOS XR. Программный пакет IOS XR предназначен для управления коммутаторами Cisco CRS-1, обеспечивает непрерывный режим работы и поддерживает развитые функции управления терабитными коммутаторами с распределенной архитектурой.

А вот примеры использования в России и странах СНГ. Тут тоже QNX применяется в промышленных системах, которые управляют сложным и ответственным производством с высокими требованиями по времени реакции на аварийные ситуации, надежности и непрерывности управления.

Наиболее известное применение QNX в России – система автоматизированного контроля и управления разводкой Троицкого моста через Неву в Санкт- Петербурге. Эта система эксплуатируется с апреля 2002 года. После реконструкции мост ни разу не выбился из графика разводки.

Система управления северными магистральными нефтепроводами в Ухте. Система включает в себя шесть операторских мест с горячим резервированием, которые выполняют управление одновременно по четырем направлениям магистрального нефтепровода на участке Ярославль-Ухта (протяженность 1500 км). Система «Сириус-QNX», предназначенная для оперативного диспетчерского контроля и управления технологическим процессом перекачки нефти по участкам восьми магистральных нефтепроводов предприятия «Сибнефтепровод». Общая протяженность системы нефтепроводов составляет 3696 км. Система автоматизации станов холодной прокатки на базе QNX внедрена на пятиклетевом стане Магнитогорского металлургического комбината. Системы управления металлургическим производством на базе QNX работают в Норильске, Нижнем Тагиле, Электростали.

Системы управления движением судов в портах (Санкт-Петербург, Мурманск, Владивосток, Мариуполь) и по Керченскому проливу (порт Кавказ). Информационно-управляющая система компрессорного цеха газоперекачивающего предприятия, внедренная на объектах компании «Газпром».

АСУ водооткачки и дымоудаления Гагаринского железнодорожного тоннеля, который является самым длинным в Европе железнодорожным тоннелем в черте города.

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

Система автоматизации диагностирования и контроля, удаленного мониторинга устройств на базе QNX Neutrino внедрена на более чем 177 станциях и 1173 км шести российских железных дорог.

И это, повторюсь, только самые крупные примеры внедрения QNX.

Денис Лавникевич


Компьютерная газета. Статья была опубликована в номере 01 за 2010 год в рубрике ос

©1997-2023 Компьютерная газета