intro – introduction to the Plan 9 devices|
A Plan 9 device implements a file tree for client processes. A
file name beginning with a pound sign, such as #c, names the root
of a file tree implemented by a particular kernel device driver
identified by the character after the pound sign. Such names are
usually bound to conventional locations in the name space.
For example, after|
A kernel device driver is a server in the sense of the Plan 9 File Protocol, 9P (see Section 5), but with the messages implemented by local rather than remote procedure calls. Also, several of the messages (Nop, Session, 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 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
or end of string, those characters are passed as parameter aname
to the attach. For example,
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 bind command to put the device in the conventional
place. Most of these binds are done automatically by init(8) using
newns (see auth(2)) on the file /lib/namespace (see
namespace(6)). When typed to rc(1), the bind commands will need
quotes to protect the # characters.