Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (3) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(5)

intro(2)

INTRO(3)

NAME

intro − introduction to the Plan 9 devices

DESCRIPTION

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

bind("#c", "/dev", 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 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,

#I2

identifies the number 2 IP protocol stack (see ip(3)).

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. 

SEE ALSO

intro(5), intro(2)

Plan 9  —  March 15, 2001

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026