BIND(1)                                                   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 exist-
          ing 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

     BIND(1)                                                   BIND(1)

                    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 cre-
                    ate 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 three additional options.  The first, -k
          keypattern, constrains the set of factotum(4) keys used for
          an authenticated mount.  The second, -n, causes mount to
          skip authentication entirely.  The third, -N, skips authen-
          tication and specifies none as the username to the file-
          server.

          The spec argument to mount is passed in the attach(5) mes-
          sage 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

     BIND(1)                                                   BIND(1)

          /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)