bind, mount, unmount - change name space
bind [ option ... ] new old
mount [ option ... ] servename old [ spec ]
unmount [ new ] old
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 exist-
ing 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 direc-
tory (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 permits creation.
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.
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
bind(2), open(2), srv(3), srv(4)