Inferno OS Wiki
Advertisement

НАЗВАНИЕ

bind, mount, unmount - вносят изменения в пространство имен

ВВОД

bind [option ...] source target

mount [option ...] source target [spec]

unmount [source] target

ОПИСАНИЕ

Команды bind и mount вносят изменения в пространство имен текущего процесса и других процессов, находящихся с ним в одной группе имен (см. sys-pctl(2)). Для обеих команд, target является именем существующего файла или каталога текущего файлового пространства имен. Переменные source и target должны быть одного типа: либо каталоги, либо файлы.


Для команды bind , source также является именем существующего файла или каталога текущего пространства имен. В случае успешного выполнения команды bind, target становится алиасом (см. Note alias) для объекта source ; if the modification doesn't hide it, source will also still refer to its original file. The evaluation of source (см. sys-intro(2)) happens at the time of the bind , not when the binding is later used. Значение source (см. sys-intro(2)) определяется исключительно в момент исполнения команды, далее везде используется установленное значение.


Для команды mount, source может быть командой оболочки, адресом в сети или каталогом. Если переменная source заключена в фигурные скобки ( { ... } ), то ее содержимое рассматривается как команда оболочки sh(1) и в target монтируется стандартное пространство имен (авторизация в данном случае не требуется). Если source содержит знак ( ! ) или же каталога с таким именем не существует, подразумевается, что речь идет об сетевом адресе файл-сервера, который будет примонтирован к target. В этом случае значение должно соответствовать требованиям, предъявляемым системной функцией sys-dial(2), иначе, в поле source должно быть указано имя файла, который устанавливает соединение с файл-сервером, методами понятными протоколу Styx (см. intro(5)). Если при вызове команды mount, кроме всего прочего, указано значение spec, то оно используется внутри attach(5)-сигнала и позволяет указать конкретную точку доступа в файловом пространстве сервера.


Результаты вызова команд bind и mount можно отменить с помощью команды unmount . Если для нее заданы поля source и target, то она отменяет результат вызова команды bind или mount с теми же аргументами. Если задан только один аргумент target, то отмонтируется все, что к этому объекту привязано или примонтировано.


По умолчанию, командой bind или mount файл target замещается новым файлом source. Henceforth, an evaluation of the pathname target will be translated to the new file. Если речь идет о каталогах (для команды mount это подразумевается по умолчанию), то в результате target становится `объединенным каталогом`. Объединенный каталог включает в себя исходное содержимое каталогов source и target. Если каталоги содержат одинаковое имя файла, доступно будет то, которое выше в иерархии (см. описание Sys->BEFORE в sys-bind(2)) в результате привязки. В случае, если каталоги содержат подкаталоги с одинаковым именем - аналогично, с тем лишь отличием, что в объединенном каталоге будет подкаталог, который выше по иерархии, плюс содержимое подкаталога, который оказался ниже по иерархии. Поэтому, чтобы поместить содержимое двух одинаковых подкаталоговв один, необходимо с ними предварительно проделать такую же операцию.


Следует помнить, что символ `#` в имени какого-либо из устройств ядра должен быть указан правильно, иначе sh(1) будет считать его началом комментария. Параметры команд, определяющие тип изменений в пространстве имен:

-b - для каталогов: добавить каталог source в начало объединенного каталога, указанного в target.
-a - для каталогов: добавить каталог source в конец объединенного каталога, указанного в target.
-c - используется в дополнение к первым двум параметрам, разрешить создание новых имен в объединенном каталоге. Так, если в объединенном каталоге создается новый файл, то онстановится первым элементом. Если каталог защищен отзаписи, то создать новое имя не получится.
-A - исключительно с командой mount: не запрашивать авторизацию на сервере; в противном случае соединение авторизуется посредством security-auth(2).
-C alg - исключительно с командой mount: назначает алгоритм alg , который to be used following authentication for digesting or encryption. Поддерживаемые алгоритмы см. в описании ssl(3). По умолчанию алгоритм не указан, поскольку после авторизации методы ssl(3) не используются. //поправьте, если что не так
-k kfile - исключительно с командой mount: указывает keyfile, который будет использован для авторизации. По умолчанию это /usr/user/keyring/default (см. keyring-auth(2)).
-9 - исключительно с командой mount и только на серверах с операционной системой Plan 9. Source - файл-сервер под Plan 9; использует Plan 9's factotum в качестве протокола авторизации. (Следует помнить, что любой файловый сервис ОСPlan 9, который достоверно не требует авторизации, может быть легко смонтирован на любом хосте под Inferno с использованием параметра `-A` в команде mount) The existing Plan 9 file servers do not encrypt connections, so the `-C` and `-k` options are ignored.
-o - исключительно с командой mount: the file server serves the original version of the Styx protocol, and mount inserts a process that translates to the current version.

ИСХОДНЫЙ КОД

/appl/cmd/bind.b

/appl/cmd/mount.b

/appl/cmd/unmount.b

Смотри также

sh(1), keyring-auth(2), security-auth(2), sys-intro(2), sys-bind(2), sys-dial(2), intro(3), getauthinfo(8)

Advertisement