ФЭНДОМ


НАЗВАНИЕ

mnt - устройство монтирования, обеспечивает доступ к Styx-серверам

ВЫЗОВ

#M

ОПИСАНИЕ

Драйвер устройства монтирования используется функцией системного модуля Sys->mount (но не Sys->bind; см. sys-bind(2)), чтобы связать пространство имен какого-либо процесса с сервисом Styx-сервера посредством коммуникационного канала. После монтирования, операции с файлами в данном разделе пространства имен будут автоматически конвертироваться драйвером в корректные сигналы серверу, в ответ на которые Styx (протокол сервера) вернет результаты вызова системных функций (успех или ошика).

Естесственно, монтирование осуществляется после авторизации на сервере, так как само устройство этим не занимается; см. security-intro(2) про авторизацию и механизмы безопасности, реализованные в `ready made' формате в Inferno (впрочем, допустима любая другая схема общения между клиентом и сервером). По сути, вызов системной функции mount формирует запрос серверу в виде attach(5)-сигнала с целью идентификации пользователя для текущего `соединения`. Соединения пользователей монтируются по отдельности; таким образом, драйвер монтирования осуществляет мультиплексирование доступа различных пользователей и их приложений к серверу.

Файл-ориентированные вызовы системных функций конвертируются ядром в сигналы протокола Styx. В самом ядре, Styx представлен в виде обращений к драйверам различных устройств ядра, как описано в intro(10) и dev(10.2). Драйвер устройства монтирования трансформирует такие обращения в удаленные вызовы системных функций, которые отсылает протоколу в виде запросов посредством канала, отвечающего данному `соединению`. Каждый такой запрос записывается в канал сервера, откуда считывается протоколом, и в ответ формируется сигнал, содержащий результаты вызова системных функций.

В результате вызова системных функций sys-read(2) или Sys->write может быть сформировано более одного сигнала, если достигнуто ограничение на максимальный размер файла для данного типа сообщений протокола Styx. Системная функция в этом случае возвращает либо указанное количество байт, которые необходимо передать, либо формирует укороченный сигнал.

Строка вида `#M` не является корректным именем файла, поэтому в таком виде устройство может быть вызвано только ядром.

Смотри также

bind(1), sys-bind(2)

ИСХОДНЫЙ КОД

/emu/port/devmnt.c

/os/port/devmnt.c

ОШИБКИ

В процессе монтирования слишком длинный сигнал может быть разбит на две части.

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики