Обзор системы
Что такое QNX?

QNX это операционная система :-)
Если сказать точнее, это сетевая, мультизадачная, многопользовательская, многотерминальная и масштабируемая ОС реального времени. С точки зрения пользовательского интерфейса и API, она очень похожа на UNIX. Если Вы пользователь, знакомый с UNIX, то вероятно сможете работать с ней без проблем, так так в ней присутствует практически весь набор стандартных утилит и сохраняется большая часть семантики. X Window конечно тоже есть, как и TCP/IP. Если Вы программист, знакомый с UNIX, то для Вас не составит большого труда перенести Ваши или GNU/Free приложения в QNX. Такие приложения как Apache и Mosaic хорошо демонстрируют степень совместимости API.

Однако, QNX это не версия UNIX. Она была разработана с нуля и построена на совершенно других архитектурных принципах (см. далее). Разработка ведется канадской фирмой QNX Software Systems Limited (далее - QSSL).

Почему она Вам до сих пор неизвестна?

Вполне вероятно, что Вы пользовались этой системой хотя-бы раз, но не подозреваете об этом. Наиболее часто она применяется для создания систем, работающих в реальном масштабе времени. Это управление технологическими процессами (АСУТП), дорожным движением, обработка платежной информации (POS/OLTP), управление оборудованием зданий, системы оперативного реагирования и т.п.

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

К настоящему времени ОС QNX удерживает 22% рынка систем реального времени, что вдвое больше ближайших конкурентов.

Чем QNX отличается от UNIX?

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

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

В целом, QNX это система, предназначенная для разработки Ваших собственных приложений, более чем для использования готовых. Системы реального времени всегда специфичны и разрабатываются обычно системными интеграторами или собствеными силами предприятий. С другой стороны, кое-что все-таки есть. Например, есть выбор СУБД, включающий Sybase SQL Anywhere 5.5, Empress SQL server, Raima Data Manager (dbVista), C-Tree. На WEB-сервере фирмы QSSL можно найти каталог продуктов, разработанных различными фирмами для QNX.

Практически, QNX чаще всего используется в сочетании с другими системами, такими как UNIX и Windows 95/NT, образуя гетерогенные сети, в которых каждая система выполняет ту роль, для которой она лучше предназначена. Для создания таких систем необходимы средства интеграции сетевого уровня, для чего обычно применяется протокол TCP/IP, а также средства интеграции на уровне приложений. Для этой цели существуют продукты, разработанные фирмами Cogent RTS и Iona Technologies, позволяющие выполнять обмен данными между QNX, UNIX и Windows по протоколу DDE и CORBA (надмножество OLE).

Коммерческих приложений пользовательского уровня довольно мало, поскольку QNX это не пользовательская ОС, по крайней мере пока. Например, нет версии Netscape Navigator под QNX/X Window. Впрочем, с появлением графической системы Photon, ситуация стала изменяться. Эта система открыла для QNX новый рынок - встроенных клиентских систем для устройств "карманного" размера (handheld devices).

Для поддержки этого направления разработчики прикладывают много усилий. Фирма QSSL лицензировала WEB-browser Spyglass (на котором также основан MS Internet Explorer) и разрабатывает комплект клиентских приложений для работы с Internet (Internet Suite) , включающий также News, Mail и FTP клиенты и программу установления соединения с ISP. Самое интересное в этом комплекте это то, что он доступен почти полностью с исходным кодом. Разработчики могут использовать этот код для создания модифицированных версий клиентских программ, оптимизированных под конкретные нужды.

Фирма Intel предустанавливает демонстрационную версию системы QNX (лицензия на 30 дней) с графической оболочкой Photon и комплектом Internet Appliance Toolkit (Internet Suite с исходным кодом, документацией и системой разработки) на платформу EXPLR2, предназначенную для разработки и отладки встроенных систем.

Средства разработки

В отличие от большинства систем "типа UNIX", ОС QNX имеет свои собственные средства разработки (Watcom C) вместо обычного компилятора GCC и связанных с ним программ. Компилятор GCC (C, C++, Objective C, Pascal) также был недавно портирован в QNX, но пока нет библиотек и линкера, что вынуждает использовать компоненты Watcom C. Впрочем, Watcom C, ничуть не хуже. Среда разработки включает все стандартные средства Watcom, кроме IDE (пока), которая по неофициальным данным будет доступна после выхода системы Willows под QNX.

Эта система предоставит возможность компиляции приложений написанных с использованием API Win32 под QNX/Photon. При этом обеспечивается поддержка бинарных объектов (DLL от третьих фирм) и непосредственное исполнение бинарных модулей Windows через эмуляцию. Одако, перекомпилированные приложения будут иметь преимущество в скорости (вероятно, они будут работать быстрее чем в Windows) и смогут использовать одновременно API системы QNX для выполнения задач реального времени и обмена сообщениями.

Ведется также разработка системы "кросс-разработки", которая позволит разрабатывать приложения QNX под Windows NT. Недавно появилась также версия KAFFE под QNX, но она пока имеет проблемы.

Будущее системы

Все перечисленные ограничения будут ликвидированы в ОС Neutrino, представляющей собой следующее поколение системы QNX и находящейся в стадии разработки/бета-тестирования. Эта система спроектирована так, чтобы сделать возможной реализацию "Святого Грааля" теории ОС - тотальной масштабируемости. Она сможет работать как на "тостере" с 64Kb памяти (данная версия уже продается), так и на SMP-сервере с гигабайтами памяти (середина 1998 года). При этом "тостерная" версия (Embedded Neutrino) поддерживает семантику POSIX, необходимую для систем реального времени.


©1999 by Nigl
Mail to: [email protected]
Last update 99-356
LIST100 Counter SpyLOG In to the Nigl's nest