INTRO(3)                                                 INTRO(3)

     NAME
          intro - introduction to the Inferno devices

     DESCRIPTION
          An Inferno device implements a file tree for client pro-
          cesses.  A file name beginning with a hash (number) symbol,
          such as `#c', names the root of a file tree implemented by a
          particular kernel device driver identified by the character
          after the hash.  Such names are usually bound to conven-
          tional locations in the name space.  For example, after

               sys->bind("#c", "/dev", sys->MREPL)

          an ls(1) of /dev will list the files provided by the console
          device.

          A kernel device driver is a server in the sense of the
          Inferno File Protocol, Styx (see Section 5), but with the
          messages implemented by local rather than remote procedure
          calls.  Also, several of the messages (Nop, Flush, and
          Error) have no subroutine equivalents.

          When a system call is passed a file name beginning with `#'
          it looks at the next character, and if that is a valid
          device character it performs an attach(5) on the correspond-
          ing device to get a channel representing the root of that
          device's file tree.  If there are any characters after the
          device character but before the next `/' or end of string,
          those characters are passed as parameter aname to the
          attach.

          Each kernel device has a conventional place at which to be
          bound to the name space.  The SYNOPSIS sections of the fol-
          lowing pages includes a shell bind command to put the device
          in the conventional place.  Most of these binds are done
          automatically by the system when it initializes; see
          init(8).

     SEE ALSO
          intro(5), intro(2)