Inferno OS Wiki
мНет описания правки
мНет описания правки
 
(не показано 6 промежуточных версий этого же участника)
Строка 13: Строка 13:
 
'''ОПИСАНИЕ'''
 
'''ОПИСАНИЕ'''
   
Команды '''bind ''' и '''mount '''вносят изменения в пространство имен текущего процесса и других процессов, находящихся с ним в одной группе имен (см. [[sys-pctl(2)]]). Для обеих команд, ''target'' является именем существующего файла или каталога текущего файлового пространства имен.
+
Команды '''bind '''и '''mount '''вносят изменения в пространство имен текущего процесса и других процессов, находящихся с ним в одной группе имен (см. [[sys-pctl(2)]]). Для обеих команд, ''target'' является именем существующего файла или каталога текущего файлового пространства имен. Переменные ''source ''и ''target ''должны быть одного типа: либо каталоги, либо файлы.
   
Для команды '''bind''' , ''source'' также является именем существующего файла или каталога текущего пространства имен. В случае успешного выполнения команды bind, ''target'' становится алиасом(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 ''и ''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)]] and its standard input is mounted (авторизации в данном случае не требуется). Если ''source'' содержит знак ( ! ) или же файла(каталога) с таким именем не существует, подразумевается, что речь идет об сетевом адресе файл-сервера. В этом случае значение должно соответствовать требованиям, предъявляемым системной функцией [[sys-dial(2)]]. Иначе, ''source'' должна содержать имя файла, который устанавливает соединение с файл-сервером, something serving the Styx protocol described in [[intro(5)]]. Если при вызове команды mount, кроме всего прочего, указано значение ''spec'', то оно используется при установлении соединения в [[attach(5)]]-сигнале и позволяет выбрать конкретную точку доступа в файловом(каталоговом) пространстве сервера.
 
  +
  +
  +
 
Для команды '''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 можно отменить с помощью команды '''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'' становится `объединенным каталогом`, consisting of one directory (the source directory). Объединенный каталог включает в себя исходное содержимое каталогов source и target. If the same name appears in both directories, the name used is the one in the directory that is bound before the other. In particular, if the directories have subdirectories of the same name, only the contents of the subdirectory in the top directory will be seen. If the subdirectory contents are themselves to be united, that must be done first in a separate bind or mount .
 
   
Note that the `#` character in the name of a kernel device must be quoted when used in a bind or unmount command, or the shell will take it as the start of a comment.
 
   
  +
По умолчанию, командой 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.
+
: '''-b''' - для каталогов: добавить каталог source в начало объединенного каталога, указанного в target.
   
: '''-a''' - для каталогов: добавляет каталог source в конец объединенного каталога, указанного вtarget.
+
: '''-a''' - для каталогов: добавить каталог source в конец объединенного каталога, указанного в target.
   
: '''-c''' - используется в дополнение к первым двум параметрам, разрешая создание новых имен в объединенном каталоге. Так, если в объединенном каталоге создается новый файл, то он помещается в первый же элемент каталога, привязанного или монтированного с параметром `-c`. Если в таком каталоге запрещена запись, то создать новое имя не получится.
+
: '''-c''' - используется в дополнение к первым двум параметрам, разрешить создание новых имен в объединенном каталоге. Так, если в объединенном каталоге создается новый файл, то онстановится первым элементом. Если каталог защищен отзаписи, то создать новое имя не получится.
   
: '''-A''' - исключительно с командой mount: не запрашивает авторизацию соединения на сервере before proceeding with mount, в противном случае соединение авторизуется [[security-auth(2)]].
+
: '''-A''' - исключительно с командой mount: не запрашивать авторизацию на сервере; в противном случае соединение авторизуется посредством [[security-auth(2)]].
   
: '''-C '''''alg'''' ''- ''''''исключительно с командой mount: назначает алгоритм alg , который to be used following authentication for digesting or encryption. Поддерживаемые алгоритмы описаны в [[ssl(3)]]. По умолчанию алгоритм не указан, поскольку после авторизации методы [[ssl(3)]] не используются. //поправьте, если что не так..'''
+
: '''-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)]]).
 
: '''-k '''''kfile ''- исключительно с командой mount: указывает keyfile, который будет использован для авторизации. По умолчанию это /usr/user/keyring/default (см. [[keyring-auth(2)]]).
   
: '''-9''' - исключительно с командой mount и только на серверах с операционной системой Plan 9. ''Source ''- файл-сервер подPlan 9; use Plan 9's factotum as authentication agent to authenticate the mount. (Note that a Plan 9 file service that is known not to authenticate can be mounted from any Inferno host, by using the -A option to suppress Inferno authentication.) The existing Plan 9 file servers do not encrypt connections, so the -C and -k options are ignored.
+
: '''-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.
 
: '''-o''' - исключительно с командой mount: the file server serves the original version of the Styx protocol, and mount inserts a process that translates to the current version.

Текущая версия от 11:41, 18 августа 2010

НАЗВАНИЕ

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)