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

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

В свою очередь, популярная версия QNX Neutrino (выпущена в 2001 году) перенесена на многие платформы и работает практически на любом современном процессоре, используемом во встраиваемых системах. Среди этих платформ – семейства x86, MIPS, PowerPC, а также специализированные семейства процессоров, такие как SH-4, ARM, StrongARM и xScale.
Легендарной QNX можно назвать еще и потому, что на протяжении двадцати лет у этой системы реального времени не было сколько-нибудь значительного конкурента. По мнению специалистов, QNX представляет собой один из самых надежных, оптимизированных и отлаженных фрагментов кода из всех когда- либо созданных.
Создавая ОС
В 1980 году студенты канадского Университета Ватерлоо Гордон Белл и Дэн Додж закончили изучать базовый курс по разработке операционных систем. По сути, еще во время учебы, выполняя задания преподавателей, они написали основу ядра, способного работать в реальном времени. Белл и Додж быстро поняли, что в их продукте существует коммерческая потребность. Закончив учебу, они переехали в город Каната в штате Онтарио (Канада), где основали компанию Quantum Software Systems. В 1982 году была выпущена первая версия QNX, работающая на платформе Intel 8088.

Интересно, что одно из первых практических применений 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

Новые времена, новые нравы
27 октября 2004 года Quantum Software Systems была куплена компанией Harman, очень далекой от информационных технологий вообще и операционных систем реального времени – в частности. В результате компания-разработчик QNX превратилась из поставщика решений для широкого спектра применений в едва ли не рядовое подразделение компании Harman.
Во многом в результате этой сделки после 2004 года интерес в мире к QNX начал угасать. QNX сохранила популярность в основном в России и СНГ (благодаря неимоверным усилиям дистрибьюторов) а также в Германии (по той же причине, а также благодаря агрессивной рекламе).
12 сентября 2007 года компания QNX Software Systems объявила о том, что исходный код ОС QNX Neutrino будет открыт, но для коммерческого использования QNX Neutrino необходимо приобрести лицензию.

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

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 год в рубрике ос