Цифровой журнал «Компьютерра» № 45 (Журнал «Компьютерра») - страница 12

Ядро QNX — это небольшая (около 8Кб в QNX4 и от 20 до 32 Кб в QNX6) программа на ассемблере, которая занимается, в основно, планированием процессов и обеспечением взаимодействия между ними. Всё остальное делают сами запущенные процессы, притом здесь нет никакой принципиальной разницы между обычной пользовательской программой и, скажем, дисковой подсистемой. Любой процесс может быть запущен и остановлен в произвольный момент времени, причём если не нужно, например, работать с сетью — нет никакой необходимости запускать сетевую подсистему.

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

Другой важный момент — то самое пресловутое «реальное время». Операционные системы реального времени часто путают с «быстрыми» системами. На самом деле, это не одно и то же — выражение «реальный масштаб времени» означает, что программа должна выдать результат в строго отведенный ей временной промежуток. Опоздание здесь так же неуместно, как и спешка.

"Реальное время" не особенно критично, когда речь идёт о компьютерах пользователей, но производство — совсем другое дело. Cогласитесь, отставание совершенно неприемлемо, когда речь идёт о промышленном роботе, стоящем на конвейере. Он должен закрутить гайку именно в момент Х — ни раньше, ни позже. А уж если говорить об управлении атомными реакторами...

Любая cистема реального времени должна быть быстрой (иначе она не успеет обработать данные из нескольких источников, да еще без буферизации). Но она должна обеспечить не просто быструю, а гарантированную реакцию. Конечно, специалистам подобное пояснение покажется чересчур дилетантским, но для общего понимания ситуации его вполне достаточно. Можно еще говорить об истинной многозадачности, блокировках, квантовании времени и прочих интересных вещах, но это определенно выходит за рамки популяризаторской статьи.

Напоследок стоит отметить, что QNX — это встраиваемая ОС. Если QNX4 еще разворачивали с помощью программы установки на некоторых устройствах, то для QNX Neutrino это абсолютно ненормальная ситуация. Сценарий здесь таков: есть установленная под Windows или Linux среда разработки Momentics, в ней делают целевую систему (прошивку), которую и заливают на устройство. Конечно, программа установки здесь есть, с ее помощью можно поставить QNX Neutrino (и Momentics для QNX) на x86-совместимую машину. Но в реальной работе ее не используют — только для тестов и обучения.