summaryrefslogtreecommitdiff
path: root/static/plan9-4e/man3/cons.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-26 16:38:00 -0400
commit97d5c458cfa039d857301e1ca7d5af3beb37131d (patch)
treeb460cd850d0537eb71806ba30358840377b27688 /static/plan9-4e/man3/cons.3
parentb89dc2331a50c63f8b33272a5c4c61ab98abdaa3 (diff)
build: Better Build System
Diffstat (limited to 'static/plan9-4e/man3/cons.3')
-rw-r--r--static/plan9-4e/man3/cons.3346
1 files changed, 346 insertions, 0 deletions
diff --git a/static/plan9-4e/man3/cons.3 b/static/plan9-4e/man3/cons.3
new file mode 100644
index 00000000..0d4de988
--- /dev/null
+++ b/static/plan9-4e/man3/cons.3
@@ -0,0 +1,346 @@
+.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/cons
+.B /dev/consctl
+.B /dev/cputime
+.B /dev/drivers
+.B /dev/hostdomain
+.B /dev/hostowner
+.B /dev/kprint
+.B /dev/null
+.B /dev/osversion
+.B /dev/pgrpid
+.B /dev/pid
+.B /dev/ppid
+.B /dev/random
+.B /dev/reboot
+.B /dev/swap
+.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 and
+miscellaneous information.
+.PP
+Reading the
+.B cons
+file returns characters typed on the keyboard.
+Normally, characters are buffered to enable erase and kill processing.
+A control-U,
+.LR ^U ,
+typed at the keyboard
+.I kills
+the current input line (removes all characters
+from the buffer of characters
+not yet read via
+.BR cons ),
+and a backspace
+.I erases
+the previous non-kill, non-erase character from the input buffer.
+Killing and erasing only delete characters back to, but not including,
+the last newline.
+Characters typed at the keyboard actually produce 16-bit runes (see
+.IR utf (6)),
+but the runes are translated into the variable-length
+.SM UTF
+encoding (see
+.IR utf (6))
+before putting them into the buffer.
+A
+.IR read (2)
+of length greater than zero causes the process to wait until a
+newline or a
+.L ^D
+ends the buffer, and then returns as much of the buffer as the argument
+to
+.B read
+allows, but only up to one complete line.
+A terminating
+.L ^D
+is not put into the buffer.
+If part of the line remains, the next
+.B read
+will return bytes from that remainder and not part of any new line
+that has been typed since.
+.PP
+If
+the string
+.B rawon
+has been written to the
+.B consctl
+file and the file is still open,
+.B cons
+is in
+.IR "raw mode" :
+characters are not echoed as they are typed,
+backspace and
+.L ^D
+are not treated specially,
+and characters are available to
+.I read
+as soon as they are typed.
+Ordinary mode is reentered when
+.B rawoff
+is written to
+.B consctl
+or this file is closed.
+.PP
+A
+.I write
+(see
+.IR read (2))
+to
+.B cons
+causes the characters to be printed on the console screen.
+.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 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 bytes 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 the drivers configured in the kernel, in the format
+.IP
+.EX
+#c cons
+.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 numbers. The numbers are
+generated by a low priority kernel process that loops
+incrementing a variable. Each clock tick the variable
+is sampled and, if it has changed sufficiently, the last
+few bits are appended to a buffer. This process is inefficient
+at best producing at most 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 .
+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 8 numbers:
+processor number, context switches, interrupts, system calls, page faults,
+TLB faults, TLB purges, and load average.
+The load average is in units of milli-CPUs and is decayed over time;
+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
+The
+.B swap
+device holds a string of the form
+.IP
+.IB m1 / m2
+.B memory
+.IB s1 / s2
+.B swap
+.PP
+These give, for each of
+internal memory and the swapping area,
+the number of pages used and the total available.
+These numbers are not blank padded.
+To turn on swapping, write to
+.B swap
+the textual file descriptor number of a file or device on which to swap.
+See
+.IR swap (8).
+.PP
+The other files served by the
+.I cons
+device are all single numbers:
+.TP 10
+.B pgrpid
+process group number
+.TP
+.B pid
+process number
+.TP
+.B ppid
+parent's process number
+.SH SEE ALSO
+.IR draw (3),
+.IR keyboard (6),
+.IR authsrv (6),
+.IR utf (6),
+.IR swap (8)
+.SH SOURCE
+.B /sys/src/9/port/devcons.c
+.SH BUGS
+For debugging, two control-T's followed by a letter
+generate console output and manage debugging:
+.L ^T^Td
+toggles whether the console debugger will be run if the system fails.
+.L ^T^TD
+starts the console debugger immediately.
+.L ^T^Tk
+kills the largest process; use with care.
+.L ^T^Tp
+prints data about processes.
+.L ^T^Tq
+prints the run queue for processor 0.
+.L ^T^Ts
+prints the kernel stack.
+.L ^T^Tx
+prints data about kernel memory allocation.
+.PP
+The system can be rebooted by typing
+.LR ^T^Tr .