314 lines
7.2 KiB
Plaintext
314 lines
7.2 KiB
Plaintext
.TH CONS 3
|
|
.SH NAME
|
|
cons \- console, clocks, process/process group ids, user, null, reboot, etc.
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B bind #c /dev
|
|
|
|
.B /dev/bintime
|
|
.B /dev/config
|
|
.B /dev/cons
|
|
.B /dev/cputime
|
|
.B /dev/drivers
|
|
.B /dev/hostdomain
|
|
.B /dev/hostowner
|
|
.B /dev/kmesg
|
|
.B /dev/kprint
|
|
.B /dev/mordor
|
|
.B /dev/null
|
|
.B /dev/osversion
|
|
.B /dev/pid
|
|
.B /dev/ppid
|
|
.B /dev/random
|
|
.B /dev/reboot
|
|
.B /dev/sysname
|
|
.B /dev/sysstat
|
|
.B /dev/time
|
|
.B /dev/user
|
|
.B /dev/zero
|
|
.fi
|
|
.SH DESCRIPTION
|
|
The console device serves a one-level directory
|
|
giving access to the console screen and
|
|
miscellaneous information.
|
|
.PP
|
|
A
|
|
.I write
|
|
(see
|
|
.IR read (2))
|
|
to
|
|
.B cons
|
|
causes the characters to be printed on the console screen. Console
|
|
input is handled by a different program (see
|
|
.IR kbdfs (8)).
|
|
.PP
|
|
The
|
|
.B osversion
|
|
file contains a textual representation of the operating system's version and parameters.
|
|
At the moment, it contains one field: the 9P protocol version, currently
|
|
.BR 2000 .
|
|
.PP
|
|
The
|
|
.B config
|
|
file contains a copy of the kernel configuration file used to build the kernel.
|
|
.PP
|
|
The
|
|
.B kmesg
|
|
file holds the last 16 kilobytes of output written to the console
|
|
by the kernel's print statements or by processes writing to
|
|
.BR /dev/cons .
|
|
It is useful for retrieving boot messages once the boot
|
|
process is over.
|
|
.PP
|
|
The
|
|
.B kprint
|
|
file may be read to receive a copy of the data written
|
|
to the console by the kernel's print statements or by processes
|
|
writing to
|
|
.BR /dev/cons .
|
|
Only data written after the file is opened is available.
|
|
If the machine's console is a serial line, the data is sent both to the
|
|
console and to
|
|
.BR kprint ;
|
|
if its console is a graphics screen, the data is sent either to the
|
|
display or to
|
|
.BR kprint ,
|
|
but not both.
|
|
(It is advisable not to open
|
|
.B kprint
|
|
on terminals until you have started
|
|
.IR rio (1).)
|
|
.PP
|
|
The
|
|
.B null
|
|
file throws away anything written to it
|
|
and always returns zero when read.
|
|
.PP
|
|
The
|
|
.B zero
|
|
file is a read-only file that produces an infinite stream of zero-valued bytes when read.
|
|
.PP
|
|
The
|
|
.B drivers
|
|
file contains, one per line, a listing of available kernel drivers, in the format
|
|
.IP
|
|
.EX
|
|
#c cons
|
|
.EE
|
|
.PP
|
|
Each process name group (see
|
|
.IR fork (2))
|
|
maintains a mask of allowed drivers.
|
|
A process can modify that mask through writes to the
|
|
.B drivers
|
|
file. Messages are in the format of:
|
|
.IP
|
|
.EX
|
|
chdev \f2op\fP \f2devmask\fP
|
|
.EE
|
|
.PP
|
|
.I Devmask
|
|
is a string of driver characters.
|
|
.I Op
|
|
specifies how
|
|
.I devmask
|
|
is interpreted.
|
|
.I Op
|
|
is one of:
|
|
.TP
|
|
.B &
|
|
Permit access to just the drivers specified in
|
|
.IR devmask .
|
|
.TP
|
|
.B &~
|
|
Permit access to all but the drivers specified in
|
|
.IR devmask .
|
|
.TP
|
|
.B ~
|
|
Remove access to all devices.
|
|
.I Devmask
|
|
is ignored.
|
|
.PP
|
|
Access may only be removed. No
|
|
.I op
|
|
permits a process to regain access to a driver
|
|
once it has been removed.
|
|
Removing access to
|
|
.IR mnt (3)
|
|
additionally prevents new mounts into the current namespace.
|
|
The following removes access to all drivers except
|
|
.IR draw (3),
|
|
.IR cons (3),
|
|
and
|
|
.IR fs (3):
|
|
.IP
|
|
.EX
|
|
chdev & ick
|
|
.EE
|
|
.PP
|
|
The
|
|
.B hostdomain
|
|
file contains the name of the authentication domain that
|
|
this host belongs to; see
|
|
.IR authsrv (6).
|
|
Only the user named in
|
|
.B /dev/hostowner
|
|
may write this.
|
|
.PP
|
|
The
|
|
.B hostowner
|
|
file contains the name of the user that owns the console device files.
|
|
The hostowner also has group permissions for any local devices.
|
|
.PP
|
|
Reads from
|
|
.B random
|
|
return a stream of random bytes produced by the kernels cryptographic
|
|
random number generator. The rate at which data can be read depends on
|
|
the implementation and can vary from hundreds of megabytes to just
|
|
a few hundred bits a second. Therefore,
|
|
.B random
|
|
should be treated as a seed to
|
|
pseudo-random number generators which can produce a faster
|
|
rate stream.
|
|
.PP
|
|
Writing the string
|
|
.B reboot
|
|
to
|
|
.B reboot
|
|
causes the system to shutdown and, if
|
|
possible, restart.
|
|
Writing the string
|
|
.B reboot
|
|
.I kernelpath
|
|
loads the named kernel image and restarts,
|
|
preserving the kernel configuration in
|
|
.BR #ec ,
|
|
except that the
|
|
.B bootfile
|
|
variable is set to
|
|
.IR kernelpath .
|
|
Writing the string
|
|
.B rdb
|
|
activates the remote kernel debugger (see
|
|
.IR rdbfs (4)).
|
|
Only the host
|
|
owner has the ability to open this file.
|
|
.PP
|
|
.B Bintime
|
|
is a binary interface that provides
|
|
the same information as
|
|
.B time
|
|
.RI ( q.v. ),
|
|
in binary form,
|
|
and also controls clock frequency and clock trim.
|
|
All integers read or written from
|
|
.B bintime
|
|
are in big endian order.
|
|
Unlike the other files, reads and writes do not affect
|
|
the offset. Therefore, there is no need for a seek
|
|
back to zero between subsequent accesses.
|
|
A read of
|
|
.B bintime
|
|
returns 24 bytes, three 8 byte numbers, representing nanoseconds
|
|
since start of epoch, clock ticks, and clock frequency.
|
|
.PP
|
|
A write to
|
|
.B bintime
|
|
is a message with one of 3 formats:
|
|
.IP "\f5n\fP<8-byte \f2time\fP>" 1.2i
|
|
set the nanoseconds since epoch to the given
|
|
.IR time .
|
|
.IP "\f5d\fP<8-byte \f2delta\fP><4-byte \f2period\fP>" 1.2i
|
|
trim the nanoseconds since epoch by
|
|
.I delta
|
|
over the next
|
|
.I period
|
|
seconds.
|
|
.IP "\f5f\fP<8-byte \f2freq\fP>" 1.2i
|
|
Set the frequency for interpreting clock ticks to be
|
|
.I freq
|
|
ticks per second.
|
|
.PP
|
|
The rest of the files contain (mostly) read-only strings.
|
|
Each string has a fixed length: a
|
|
.IR read (2)
|
|
of more than that gives a result of that fixed length (the result does not
|
|
include a terminating zero byte);
|
|
a
|
|
.I read
|
|
of less than that length leaves the file offset so the
|
|
rest of the string (but no more) will be read the next time.
|
|
To reread the file without closing it,
|
|
.I seek
|
|
must be used to reset the offset.
|
|
When the file contains numeric data
|
|
each number is formatted in decimal.
|
|
If the binary number fits in 32 bits, it is formatted as an
|
|
11 digit decimal number with
|
|
leading blanks and one trailing blank; totaling 12 bytes.
|
|
Otherwise, it
|
|
is formatted as 21 digit decimal numbers with leading blanks and one
|
|
trailing blank; totaling 22 bytes.
|
|
.PP
|
|
The
|
|
.B cputime
|
|
file holds six 32-bit numbers, containing the time in milliseconds
|
|
that the current process has spent in user mode, system calls,
|
|
real elapsed time, and then the time spent, by exited children and their descendants,
|
|
in user mode, system calls, and real elapsed time.
|
|
.PP
|
|
The
|
|
.B time
|
|
file holds one 32-bit number representing the seconds since start of epoch
|
|
and three 64-bit numbers, representing nanoseconds since
|
|
start of epoch, clock ticks, and clock frequency.
|
|
.PP
|
|
A write of a decimal number to
|
|
.B time
|
|
will set the seconds since epoch.
|
|
.PP
|
|
The
|
|
.B sysname
|
|
file holds the textual name of the machine, e.g.
|
|
.BR kremvax ,
|
|
if known.
|
|
.PP
|
|
The
|
|
.B sysstat
|
|
file holds 10 numbers:
|
|
processor number, context switches, interrupts, system calls, page faults,
|
|
TLB faults, TLB purges, load average, idle time and time spent servicing interrupts.
|
|
The load average is in units of milli-CPUs and is decayed over time;
|
|
idle time and interrupt time are percentage units;
|
|
the others are total counts from boot time.
|
|
If the machine is a multiprocessor,
|
|
.B sysstat
|
|
holds one line per processor.
|
|
Writing anything to
|
|
.B sysstat
|
|
resets all of the counts on all processors.
|
|
.PP
|
|
Reads and writes to
|
|
.IR mordor
|
|
will inevitably cause the front to fall off.
|
|
.PP
|
|
The other files served by the
|
|
.I cons
|
|
device are all single numbers:
|
|
.TP 10
|
|
.B pid
|
|
process number
|
|
.TP
|
|
.B ppid
|
|
parent's process number
|
|
.SH SEE ALSO
|
|
.IR draw (3),
|
|
.IR kbd (3),
|
|
.IR kbdfs (8),
|
|
.IR keyboard (6),
|
|
.IR authsrv (6),
|
|
.IR utf (6),
|
|
.IR swap (8)
|
|
.SH SOURCE
|
|
.B /sys/src/9/port/devcons.c
|