Открыть сервис

QNX

QNX — это коммерческая операционная система реального времени (RTOS), разработанная канадской компанией QNX Software Systems (изначально — Quantum Software Systems). Система предназначена для встраиваемых систем, критически важных приложений, где требуется высокая надёжность, детерминированность и отказоустойчивость. QNX относится к классу микроядерных операционных систем, что отличает её от монолитных ядер (например, Linux или Windows).

История

Создание и ранние годы (1980–1990)

QNX была создана в 1980 году канадскими программистами Гордоном Беллом и Дэном Доджем. Первоначально система называлась QUNIX (от «Quick UNIX»), но из-за возможных претензий со стороны владельцев торговой марки UNIX название было изменено на QNX. Первая версия (QNX 1.0) работала на процессорах Intel 8088 и поддерживала многозадачность в реальном времени. Уже в 1982 году QNX использовалась в промышленных контроллерах и системах управления.

Расширение и коммерциализация (1990–2000)

В 1990-х годах QNX получила известность как операционная система для встраиваемых систем, требующих высокой надёжности. Версия QNX 4 (1992) стала первой, поддерживающей сетевые протоколы TCP/IP и графический интерфейс Photon microGUI. В 2000 году QNX была приобретена компанией Harman International Industries (подразделение по производству аудиосистем для автомобилей). Это привело к активному внедрению QNX в автомобильную электронику.

Период под управлением BlackBerry (2010–2020)

В 2010 году QNX была куплена канадской компанией Research In Motion (RIM, позже переименованной в BlackBerry). RIM использовала QNX в качестве основы для операционной системы BlackBerry Tablet OS (для планшета PlayBook) и последующих версий BlackBerry 10. Однако из-за падения популярности смартфонов BlackBerry, в 2016 году компания объявила о переходе на Android, а QNX продолжила развиваться как встраиваемая ОС для автомобилей и промышленности.

Современное состояние (2020–настоящее время)

В 2023 году QNX Software Systems была выделена из BlackBerry в отдельную дочернюю компанию. Система остаётся одной из ведущих RTOS для автомобильной промышленности, медицинского оборудования и промышленной автоматизации. По состоянию на 2025 год QNX используется в более чем 255 миллионах автомобилей по всему миру.

Архитектура и характеристики

Микроядро

QNX построена на микроядерной архитектуре. Микроядро QNX (размером около 10–15 КБ) выполняет только базовые функции: управление процессами, межпроцессное взаимодействие (IPC), обработку прерываний и планирование задач. Все остальные сервисы (файловые системы, сетевые стеки, драйверы устройств) работают как отдельные процессы в пользовательском пространстве. Это обеспечивает высокую надёжность: сбой в драйвере или сервисе не приводит к краху всей системы, так как процесс может быть перезапущен без перезагрузки ядра.

Межпроцессное взаимодействие (IPC)

QNX использует уникальную модель IPC, основанную на передаче сообщений (message passing). Процессы обмениваются данными через синхронные или асинхронные сообщения, что обеспечивает детерминированное время отклика. Система поддерживает несколько механизмов IPC:

Планировщик задач

QNX поддерживает несколько алгоритмов планирования:

  • FIFO (First In, First Out) — задачи выполняются в порядке поступления.
  • Round Robin — циклическое выполнение с квантом времени.
  • Приоритетное планирование — задачи с более высоким приоритетом вытесняют задачи с низким приоритетом.
  • Adaptive Partitioning — адаптивное разделение процессорного времени между группами задач, гарантирующее минимальную долю ресурсов для критических процессов.

Поддержка оборудования

QNX работает на широком спектре архитектур: x86, ARM, PowerPC, MIPS, RISC-V. Система поддерживает многопроцессорные системы (SMP) и асимметричную многопроцессорность (AMP). Драйверы устройств могут быть написаны на C, C++ или с использованием фреймворка QNX Momentics Tool Suite.

Классификация и виды

По назначению

  • Автомобильная версия — QNX Automotive, оптимизированная для информационно-развлекательных систем (IVI), цифровых приборных панелей и систем ADAS.
  • Промышленная версия — QNX Neutrino, предназначенная для промышленных контроллеров, робототехники и систем управления.
  • Медицинская версия — QNX Medical, сертифицированная по стандартам IEC 62304 (безопасность медицинского ПО).
  • Оборонная версия — QNX Secure, с усиленной защитой от кибератак и сертификацией по стандартам Common Criteria.

По лицензированию

QNX распространяется по коммерческой лицензии. Исходный код не является открытым, хотя некоторые компоненты (например, библиотеки POSIX) доступны в виде исходных текстов по специальным соглашениям. Для разработчиков доступна бесплатная ознакомительная версия QNX Neutrino Evaluation Kit.

Применение

Автомобильная промышленность

QNX является одной из самых распространённых ОС в автомобилях. Она используется в:

  • Информационно-развлекательных системах (IVI) — например, в системах Audi MMI, BMW iDrive, Mercedes-Benz MBUX.
  • Цифровых приборных панелях — QNX обеспечивает отображение данных в реальном времени (скорость, обороты, навигация).
  • Системах помощи водителю (ADAS) — QNX обрабатывает данные с камер, радаров и лидаров.
  • Управлении кузовом — контроль климат-контроля, освещения, электроприводов.

Медицинское оборудование

QNX используется в:

  • Аппаратах МРТ и КТ — для управления сканированием и обработки изображений.
  • Инфузионных насосах — для точного дозирования лекарств.
  • Мониторах пациента — для отображения жизненно важных показателей.

Промышленная автоматизация

QNX применяется в:

  • Промышленных контроллерах — для управления конвейерами, станками и роботами.
  • Системах управления энергоснабжением — на электростанциях и подстанциях.
  • Железнодорожных системах — для управления движением поездов и сигнализацией.

Оборонная и аэрокосмическая отрасли

QNX используется в:

  • Бортовых компьютерах самолётов и вертолётов.
  • Системах управления беспилотниками.
  • Радиолокационных станциях и системах связи.

Преимущества и недостатки

Преимущества

  • Высокая надёжность — микроядро минимизирует риск фатальных сбоев.
  • Детерминированность — гарантированное время отклика на события.
  • Масштабируемость — от однопроцессорных встраиваемых систем до многопроцессорных кластеров.
  • Сертифицируемость — QNX имеет сертификаты безопасности для авиации (DO-178C), автомобилей (ISO 26262), медицины (IEC 62304) и промышленности (IEC 61508).
  • Поддержка POSIX — совместимость с UNIX-подобными приложениями.

Недостатки

  • Коммерческая лицензия — стоимость может быть высокой для небольших проектов.
  • Закрытый исходный код — ограниченная возможность модификации.
  • Меньшая популярность по сравнению с Linux в встраиваемых системах.
  • Зависимость от одного вендора — QNX Software Systems является единственным разработчиком.

Интересные факты

  • QNX использовалась в марсоходе NASA «Кьюриосити» (Curiosity) для управления бортовыми системами.
  • Система работала на космическом аппарате «Розетта» (Rosetta), запущенном Европейским космическим агентством.
  • В 2015 году QNX была признана самой надёжной RTOS по версии журнала Embedded Systems Design.
  • В 2024 году QNX объявила о поддержке архитектуры RISC-V, что расширяет её применение в открытых аппаратных платформах.

Критика

Основные претензии к QNX связаны с её закрытостью и высокой стоимостью. Критики отмечают, что для многих встраиваемых систем альтернативы в виде Linux с патчами реального времени (PREEMPT_RT) или FreeRTOS являются более доступными. Также высказываются опасения по поводу vendor lock-in (привязки к одному поставщику), особенно в автомобильной промышленности, где замена ОС может потребовать переработки всего программного стека.

Источники

  • QNX Software Systems. «QNX Neutrino RTOS Technical Overview» (2019).
  • BlackBerry Limited. «QNX in Automotive: Market Analysis Report» (2022).
  • International Electrotechnical Commission. «IEC 61508 Functional Safety Standard» (2010).
  • Embedded Systems Design. «Top RTOS for Critical Applications» (2015).
  • NASA Jet Propulsion Laboratory. «Mars Science Laboratory: Curiosity Rover Software» (2012).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →