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, 9P (see Section 5), but with the mes-
          sages 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)

     Page 1                       Plan 9             (printed 2/27/21)