1. Знакомство с QNX Neutrino

Отличия QNX Neutrino от других операционных систем

В данном разделе описаны отличия ОСРВ QNX Neutrino от ОС UNIX и Microsoft Windows с точки зрения пользователя, а не разработчика. Более подробные сведения об архитектуре ОСРВ QNX Neutrino и философии, лежащей в ее основе, представлены в документе "Описание применения. Часть 1. Системная архитектура" КПДА.10964-01 31 01.

UNIX

Если вы знакомы с UNIX-подобными операционными системами, вам будет очень легко разобраться в QNX Neutrino. Многие люди даже произносят аббревиатуру QNX на манер UNIX ("кьюникс"). В основе рассматриваемой операционной системы лежит микроядро Neutrino, которое работает в окружении группы процессов (включая, например, командный интерпретатор Korn Shell ksh,см. раздел 4). Каждый процесс имеет свой идентификатор (process ID, PID) и содержит в себе один или несколько потоков.

Примечание. Определить версию релиза ядра вашей системы вы можете с помощью команды uname -a. Подробнее см. в «Описание программы. Часть 1. Справочник по утилитам» КПДА.10964-01 13 01.

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

ОСРВ QNX Neutrino соответствует различным промышленным стандартам, в том числе POSIX (командный интерпретатор и утилиты) и TCP/IP, что облегчает задачу переноса существующего кода и скриптов в QNX Neutrino.

Командная строка в ОСРВ QNX Neutrino выглядит так же, как и в UNIX. Поддерживаются многие привычные утилиты (grep, find, ls, awk), которые можно объединять при помощи неименованных программных каналов (pipe). Также возможно перенаправлять потоки ввода и вывода, проверять коды возврата и т. д. Многие утилиты повторяются в UNIX и ОСРВ QNX Neutrino, однако некоторые утилиты в QNX Neutrino имеют другое имя или синтаксис (табл. 1.1).

Таблица 1.1

UNIX

Neutrino

См. также

adduser

passwd

3. Управление учетными записями пользователей

at

cron

Описание программы (КПДА.10964-01 13)

dmesg

slogger, sloginfo

Описание программы (КПДА.10964-01 13)

fsck

chkfsys, chkdosfs

18. Резервное копирование и восстановление данных

ifconfig eth0

ifconfig en0

13. Сеть TCP/IP

lp

lpr

14. Печать

lpc

lprc

14. Печать

lpq, lpstat

lprq

14. Печать

lprm, cancel

lprrm

14. Печать

man

use

4. Командная строка

pg

less, more

4. Командная строка



Подробное описание каждой команды можно найти в «Описании программы. Часть 1. Справочник по утилитам» КПДА.10964-01 13 01.

Microsoft Windows


ОСРВ QNX Neutrino и ОС Windows имеют разные архитектуры, однако, с точки зрения пользователя, основное различие между ними заключается в способе запуска программ. Многое из того, что пользователь Windows делает посредством графического пользовательского интерфейса (Graphical User Interface, GUI), пользователь QNX Neutrino выполняет с помощью утилит командной строки, конфигурационных файлов и скриптов. Тем не менее, в ОСРВ QNX Neutrino реализована мощная интегрированная среда разработки (Integrated Development Environment, IDE), которая позволяет создавать, тестировать и отлаживать программы и встраиваемые системы.

Приведем еще несколько основных отличий.

textto -l my_file

Для того чтобы конвертировать символы конца строки в формат DOS, введите команду:

textto -l my_file

Ограничения

Хотя ОСРВ QNX Neutrino вполне может служить в качестве настольной ОС, компания QNX Software Systems не поставляет с ней настольные приложения, вроде текстовых редакторов, электронных таблиц или почтовых клиентов. Некоторые приложения такого рода предлагаются третьими сторонами (в том числе их можно найти на веб-сайте сообщества Foundry 27, http://community.qnx.com).

В чем уникальность QNX Neutrino?

ОСРВ QNX Neutrino состоит из микроядра и различных процессов. Каждый процесс, в том числе драйверы устройств, выполняется в своем собственном виртуальном пространстве памяти (рис. 1.1).


Рис. 1.1. Архитектура ОСРВ QNX Neutrino

Преимущество использования виртуальной памяти в том, что один процесс не может повредить адресное пространство другого процесса. (Более подробные сведения можно найти в главе 1 документа "Описание применения. Часть 1. Системная архитектура" КПДА.10964-01 31 01).

Главной особенностью ОСРВ QNX Neutrino является ее микроядерная архитектура, вокруг которой строится инфраструктура администраторов ресурсов (см. далее). Драйверы имеют точно такой же статус, как и другие пользовательские приложения, поэтому их отладку можно выполнять с помощью тех же высокоуровневых инструментов IDE, которые используют исходный текст (source-aware) и точки останова (breakpointing) и которые обычно применяются для отладки пользовательских приложений.

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

Более того, благодаря модульности ОСРВ QNX Neutrino, в реализованную систему можно включать избыточные компоненты в виде простого, но весьма эффективного администратора высокой готовности (High Availability (HA) manager), который, в отличие от более монолитных архитектур, значительно упрощает создание систем высокой степени отказоустойчивости. Конечно, простота, с которой рабочие устройства могут быть отображены в пространство путевых имен POSIX, также является привлекательным преимуществом ОСРВ QNX Neutrino.

С точки зрения разработчиков, системных администраторов, пользователей, ценные качества ОСРВ QNX Neutrino состоят и в том, что она основана на стандарте POSIX, обеспечивает высокую скорость отклика в реальном времени (благодаря возможности ограничения максимального объема нереентерабельного кода) и имеет отказоустойчивое микроядро.

Предупреждение.

Некоторые системы x86 могут функционировать в режиме SMM (System Management Mode, режим управления системой), при котором BIOS устанавливает особый код, выполняющийся при возникновении SMI (System Management Interrupt, прерывание управления системой). Прерывания SMI могут быть сгенерированы материнской платой или периферийным оборудованием и не может маскироваться операционной системой. При входе в режим SMM обычные действия — включая ОС — приостанавливаются, и обработчик SMI выполняется с высоким приоритетом. Избегайте использования систем, в которых SMM не может быть отключен, поскольку этот режим может негативно отразится на характеристиках реального времени QNX Neutrino. Операционная система не может ни повлиять на задержки, вносимые SMM, ни даже определить факт перехода системы в SMM.

Микроядерная архитектура ОСРВ QNX Neutrino позволяет масштабировать программный код в соответствии с требованиями очень компактных встраиваемых систем с минимальными ресурсами, и в то же время ОСРВ QNX Neutrino является достаточно мощной, чтобы работать в качестве настольной ОС. ОСРВ QNX Neutrino поддерживает различные аппаратные платформы, в том числе x86, ARM, MIPS, PPC и SH-4, а также позволяет реализовывать симметричную многопроцессорность (symmetric multiprocessing, SMP) и многопроцессорность с привязкой (bound multiprocessing, BMP) на многоядерных системах с количеством процессоров до 32.

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

Администраторы ресурсов

Администратор
ресурсов (resource manager) — это серверная программа, которая принимает сообщения от других программ и может взаимодействовать с оборудованием. Все драйверы устройств и файловые системы в ОСРВ QNX Neutrino реализуются как администраторы ресурсов.


Администраторы ресурсов служат для обеспечения интерфейса с различными типами устройств. В их число могут входить как физические устройства (например, последовательные порты, параллельные порты, сетевые карты, диски), так и виртуальные (например, /dev/null, сетевая файловая система, псевдотерминалы).

Взаимодействие между администратором ресурса и клиентской программой, использующей данный ресурс, осуществляется посредством гибкого механизма пространства путевых имен (pathname-space mapping). Этот механизм служит для ассо­циирования путевых имен с администратором ресурсов. Для этого администратор ресурсов уведомляет администратор процессов (process manager) о том, что он будет отвечать за обработку запросов к заданной точке монтирования (или ниже нее в случае файловых систем). Таким образом, администратор процессов устанавливает связь между службами (т. е. функциями, предоставляемыми администраторами ресурсов) и именами путей.

Как только администратор ресурсов установил свой префикс путевого имени, он начинает получать сообщения при каждой попытке клиентской программы сделать по этому путевому имени вызов open(), read(), write() и т. д.

Более подробные сведения см. в главе 8 руководства "Описание применения. Часть 1. Системная архитектура" КПДА.10964-01 31 01.