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 10/29/25)