summaryrefslogtreecommitdiff
path: root/man/3/0intro
diff options
context:
space:
mode:
Diffstat (limited to 'man/3/0intro')
-rw-r--r--man/3/0intro69
1 files changed, 69 insertions, 0 deletions
diff --git a/man/3/0intro b/man/3/0intro
new file mode 100644
index 00000000..e379f9af
--- /dev/null
+++ b/man/3/0intro
@@ -0,0 +1,69 @@
+.TH INTRO 3
+.SH NAME
+intro \- introduction to the Inferno devices
+.SH DESCRIPTION
+An Inferno
+.I 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
+.IR "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
+.IP
+.EX
+sys->bind("#c", "/dev", sys->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 Inferno File Protocol, Styx (see Section 5),
+but with the messages implemented by local
+rather than remote procedure calls.
+Also, several of the messages
+.RI ( Nop ,
+.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.
+.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 shell
+.I bind
+command to put the device in the conventional place.
+Most of these binds are done automatically by the system when it initializes;
+see
+.IR init (8).
+.SH SEE ALSO
+.IR intro (5),
+.IR intro (2)