Операционная система QNX 4.Архитектура системы

       

Префиксы Администратора ввода/вывода


При открытии файла, его составное имя сопоставляется с деревом префиксов для того, чтобы направить запрос open() к соответствующему администратору ресурсов ввода/вывода. Например, Администратор устройств (Dev) обычно регистрирует префикс /dev. Если процесс вызывает функцию open(), задавая /dev/xxx, то в результате совпадения начала составного имени с префиксом /dev, запрос open() будет направлен к администратору Dev (владельцу). Дерево префиксов может содержать частично перекрывающиеся области полномочий. В этом случае выбор осуществляется по принципу наибольшего совпадения. Например, предположим, что имеется три зарегистрированных префикса:

/ файловая система на диске (Fsys);
/dev система символьных устройств (Dev);
/dev/hd0 дисковый том (Fsys).



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

Ниже в таблице приведен пример определения соответствующего администратора по принципу наибольшего совпадения.

Составные имена Совпадает Передается к
/dev/con1 /dev Dev
/dev/hd0 /dev/hd0 Fsys
/usr/dtdodge/test / Fsys

Дерево префиксов представляет собой список префиксов, разделенных двоеточиями, как показано ниже

prefix=pid,unit:prefix=pid,unit:prefix=pid,unit

pid - это идентификатор процесса для администратора ресурсов ввода/вывода;
unit - это однознаковый номер, позволяющий выбирать один из нескольких возможных префиксов, которые имеет администратор.

В предыдущем примере, если Fsys - это процесс 3, а Dev - процесс 5, то дерево системных префиксов могло бы выглядеть так

/dev/hd0=3, a:/dev=5, а:/=3,е

Если вам нужно Воспользуйтесь
Отобразить на экране дерево префиксов Утилитой prefix
Получить доступ к дереву префиксов из Си-программы Функцией qnx_prefix_query()



Содержание раздела