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 .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. For example,
.EX #I2identifies 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.