1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- .TH INTRO 3
- .SH NAME
- intro \- introduction to the Plan 9 devices
- .SH DESCRIPTION
- A Plan 9
- .I device
- implements a file tree for client processes.
- A file name beginning with a pound sign, such as
- .LR #c ,
- names the root of a file tree implemented by
- a particular
- .IR "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
- .IP
- .EX
- bind("#c", "/dev", MREPL)
- .EE
- .LP
- an
- .IR ls (1)
- of
- .B /dev
- will list the files provided by the
- .I console
- device.
- .PP
- A kernel device driver is a
- .I 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
- .RI ( Nop ,
- .IR Session ,
- .IR Flush ,
- and
- .IR Error )
- have no subroutine equivalents.
- .PP
- When a system call is passed a file name beginning with
- .L "#"
- it looks at the next character, and if that is a valid
- .I device character
- it performs an
- .IR 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
- .I aname
- to the attach. For example,
- .IP
- .EX
- #I2
- .EE
- .PP
- identifies the number 2 IP protocol stack
- (see
- .IR ip (3)).
- .PP
- Each kernel device has a conventional place at which to be bound
- to the name space.
- The
- .I SYNOPSIS
- sections of the following pages includes a
- .I bind
- command to put the device in the conventional place.
- Most of these binds are done automatically by
- .IR init (8)
- using
- .B newns
- (see
- .IR auth (2))
- on the file
- .B /lib/namespace
- (see
- .IR namespace (6)).
- When typed to
- .IR rc (1),
- the
- .I bind
- commands will need quotes to protect the
- .B #
- characters.
- .SH SEE ALSO
- .IR intro (5),
- .IR intro (2)
|