Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (1) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bind(2)

open(2)

srv(3)

srv(4)

BIND(1)

NAME

bind, mount, unmount − change name space

SYNOPSIS

­bind [ ­option ...  ] ­new old

­mount [ ­option ...  ] ­servename old [ ­spec ]

­unmount [ ­new ] ­old

DESCRIPTION

­Bind and ­mount modify the file name space of the current process and other processes in the same name space group (see fork(2)). For both calls, ­old is the name of an existing file or directory in the current name space where the modification is to be made. 

For bind, ­new is the name of another (or possibly the same) existing file or directory in the current name space.  After a successful bind, the file name ­old is an alias for the object originally named by new; if the modification doesn’t hide it, ­new will also still refer to its original file.  The evaluation of ­new (see intro(2)) happens at the time of the bind, not when the binding is later used.

The ­servename argument to ­mount is the name of a file that, when opened, yields an existing connection to a file server.  Almost always, ­servename will be a file in ­/srv (see srv(3)). In the discussion below, ­new refers to the file named by the ­new argument to ­bind or the root directory of the service available in ­servename after a mount. Either both ­old and ­new files must be directories, or both must not be directories. 

Options control aspects of the modification to the name space:

(none) Replace the ­old file by the new one.  Henceforth, an evaluation of ­old will be translated to the new file.  If they are directories (for mount, this condition is true by definition), ­old becomes a ­union directory consisting of one directory (the new file). 

­-b Both files must be directories.  Add the new directory to the beginning of the union directory represented by the old file. 

­-a Both files must be directories.  Add the new directory to the end of the union directory represented by the old file. 

­-c This can be used in addition to any of the above to permit creation in a union directory.  When a new file is created in a union directory, it is placed in the first element of the union that has been bound or mounted with the ­-c flag.  If that directory does not have write permission, the create fails. 

­-C (Only in mount.) By default, file contents are always retrieved from the server. With this option, the kernel may instead use a local cache to satisfy read(5) requests for files accessible through this mount point. The currency of cached data for a file is verified at each open(5) of the file from this client machine.

­-q Exit silently if the ­bind or ­mount operation fails. 

­Mount takes an additional option, ­-k keypattern, to constrain the set of factotum(4) keys used for an authenticated mount.

The ­spec argument to ­mount is passed in the attach(5) message to the server, and selects among different file trees served by the server.

The srv(3) service registry device, normally bound to /srv, is a convenient rendezvous point for services that can be mounted.  After bootstrap, the file ­/srv/boot contains the communications port to the file system from which the system was loaded. 

The effects of ­bind and ­mount can be undone with the ­unmount command.  If two arguments are given to unmount, the effect is to undo a ­bind or ­mount with the same arguments.  If only one argument is given, everything bound to or mounted upon ­old is unmounted. 

EXAMPLES

To compile a program with the C library from July 16, 1992:

mount /srv/boot /n/dump dump
bind /n/dump/1992/0716/mips/lib/libc.a /mips/lib/libc.a
mk

SOURCE

­/sys/src/cmd/bind.c
­/sys/src/cmd/mount.c
­/sys/src/cmd/unmount.c

SEE ALSO

bind(2), open(2), srv(3), srv(4)

Plan 9  —  October 09, 2002

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026