xref: /inferno-os/man/3/0intro (revision aaab9bcca9a6fd14bd8496059b80b984906db6bc)
INTRO 3
NAME
intro - introduction to the Inferno devices
DESCRIPTION
An Inferno device implements a file tree for client processes. A file name beginning with a hash (number) symbol, such as .LR #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 conventional locations in the name space. For example, after
.EX 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 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 .L "#" it looks at the next character, and if that is a valid device character it performs an attach (5) on the corresponding 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 .L "/" 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 following 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)