V10/doc/glossary

.de H
.LP
.in 1n
.ti 0
.HI \\$1 \\$2 \\$3 \\$4 \\$5 \\$6
..
.de HI
.B
\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
.R
..
.de C
.I
.if \\n(.$=1 \\$1
.if \\n(.$=2 \\$1 \\$2
.if \\n(.$=3 \\$1 \\$2 \\$3
.if \\n(.$=4 \\$1 \\$2 \\$3 \\$4
.if \\n(.$=5 \\$1 \\$2 \\$3 \\$4 \\$5
.if \\n(.$=6 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6
.R
..
.rs
.SP .5i
.TL
GLOSSARY
.SP 2
.LP
This glossary covers major terms that have special meaning for the
UNIX system.
It excludes ordinary terms of art such as
`ASCII', `compiler', `address space', or `byte'.
It also excludes most terms peculiar to a single part of UNIX, e.g.
`diversion' (\fItroff\fR), `enumeration' (C),
or `pattern space' (\fIsed\fR).
.SP 1.3v
.nr PS 9
.nr VS 10
.2C
.H absolute pathname\ 
same as
.C full pathname.
.nr PD 1u
.H access time\ 
the most recent
.C time
at which the contents of a 
.C file
[2] were read or
.C executed
[2]; cf.\&
.C modification time.
.H alarm\ 
a
.C signal
scheduled by the clock.
.H a.out\ 
the default name of a freshly compiled
.C object file,
pronounced `A-dot-out';
historically 
.CW a.out
signified assembler output.
.H archive\ 
1.\&
a collection of data gathered from several
.C files
into one file.
2.\&
especially, such a collection gathered by
.I ar (1)
for use as a
.C library.
.H argument\ 
1.\&
a
string made available to a
.C process
upon
.C executing
a
.C file.
2.\&
a string in a
.C command,
which the
.C shell
[1] will pass to the command program
as an argument [1].
.H ASCII file\ 
same as
.C text file.
.H automatic\ 
persistent only during the invocation of a procedure, said of
data belonging to a
.C process;
automatic data occupies the
.C stack segment;
cf.\&
.C static.
.H background\ 
running independently of a
terminal, said of a
.C process;
converse of
.C foreground.
.H basename\ 
1.\&
the last component of a
.C pathname;
the basename of
.CW /bin/proc
is
.CW proc .
2.\&
occasionally a basename [1] with conventional
suffixes removed; see
.I basename (1).
.H blit\ 
vernacular name for a prototype
Teletype 5620 terminal; cf.\&
.C jerq.
.H block\ 
1. \&
the basic unit of
.C buffering
[1]
in a
.C file system
[3], 1024 or 4096 bytes in this system.
2. \&
a unit in which memory usage is reported, usually 1024 bytes,
but 512 bytes in imported code such as
.I cpio (1).
.H block device\ 
a
.C device
that may contain a
.C file system
[3],
typically a permanent storage device such as a tape or
disk drive; the unit of data transfer is one
.C block;
cf.\&
.C character device.
.H boot\ 
to start the operating system, so called because the
.C kernel
must bootstrap itself from secondary store into an empty machine.
No
.C login
[3]
or
.C process
persists across a boot.
.H boot block\ 
the first block of a
.C file system
[1],
which is reserved for a 
.C booting 
program.
.H break\ 
1.\&
an out-of-band signal on an asynchronous data line arising from
the `break' or `interrupt' key on a terminal;
before
.C logging in
a break causes a change in baud rate;
thereafter it is interpreted as an
.C interrupt.
2.\&
a control statement in C or
.I sh (1).
3.\&
the
.C program break.
4.\&
in
.I troff (1),
a point in running text where a new line must begin.
.H BSD\ 
see
.C UNIX.
.H bss segment\ 
see
.C segment.
.H buffer\ 
1.\&
a staging area for input-output where arbitrary-length
transactions are collected into convenient units for system operations.
2.\&
to use buffers.
.H buffer pool\ 
a region of 
.C kernel
memory available for holding
.C blocks;
non-\c
.C raw
input-output for
.C block devices
and
.C file systems
[3]
goes through the buffer pool to make
read and write operations
independent of device format.
.H cbreak\ 
a mode of terminal input in which every character not a
.C special character
becomes available to a
.I read (2)
operation as soon as it is typed, instead of being
.C buffered
up to a
.C newline
or
.C EOT character.
.H change time\ 
the most recent
.C time
at which the contents of a
.C file
[2] or its
.C inode
properties (e.g.
.C owner
and
.I mode )
were altered;
cf.\&
.C modification time.
.H character\ 
1.\&
a unit of store, usually 8 bits;
a byte.
2.\&
a token of the
ASCII
code, with octal value in the range 0 to 0177.
.H character device\ 
a
.C device,
such as a terminal or the
.C null device,
that cannot contain a
.C file system
[3];
cf.\&
.C block device.
.H child process\ 
see
.C fork.
.H client\ 
a
.C process
that uses a service by 
.C opening 
the interface to a
.C server.
.H close\ 
to make an
.C open file
unavailable for input or output; converse of
.C open.
.H command\ 
1.\&
an instruction to the
.C shell
[1], usually to run a
.C program
[1] as a
.C child process.
2.\&
by extension, any
.C executable file,
especially a
.C utility program.
.H command file\ 
same as
.C shell script.
.H connection line discipline\ 
a
.C line discipline
used on
.C mounted streams
whereby each 
.C opening
of the stream provides a new
.C pipe
to the stream's
.C server; 
see
.I connld (4).
.H connection service\ 
a collection of
.C mounted streams,
conventionally in
.C directory
.CW /cs ,
that encapsulate generic setup protocols to reach
.C servers;
see
.I ipc (3).
.H control character\ 
an
ASCII
character with octal code 0-037 or 0177, which does not
print but may otherwise affect the behavior of a terminal;
cf.\&
.C special character.
.H control stream, control terminal\ 
a
.C stream
[2] associated with a
.C process
from which the process may receive
.C interrupt,
.C quit,
and
.C hangup
signals; cf.\&
.C process group.
The control stream is conventionally 
.CW /dev/tty ,
.C file descriptor
3.\&
.H cooked\ 
not
.C raw
[1],
said of an input
.C stream 
[2] in which 
.C special characters
are active.
.H cookie\ 
a peculiar goody, token, saying, or remembrance returned by or
presented to a 
.C program
[3], cf.\&
.C file descriptor,
.C process number.
.H core file\ 
a
.C core image
of a terminated
.C process
saved for debugging; a core file is created under the name
.CW core
in the
.C current directory
of the process.
.H core image\ 
the data of a running or terminated
.C process;
the data may reside physically in main store, in the
.C swap area,
or in a
.C core file,
and logically in a
.C process file.
.H create\ 
to
.C open
a file for writing, bringing it into existence as a
.C plain file
if necessary, and discarding any data it may have
contained previously; cf.\&
.C unlink.
.H current directory, working directory\ 
the directory from which
.C relative pathnames
begin; a current directory is associated with each
.C process.
.H daemon\ 
a
.C background
process, often perpetual, that performs a system-wide public function, e.g.
.I calendar (1)
and
.I cron (8);
the affected spelling is an ancient legacy; cf.\&
.C server.
.H Datakit\ 
AT&T trademark for
a data network based on virtual circuit switching.
.H data segment\ 
see
.C segment.
.H date\ 
same as
.C time.
.H device\ 
1.\&
a
.C file
[2]
that is not a
.C plain file
or a
.C directory,
examples are tape drive, terminal, a span of 
.C blocks
on a disk drive, or the
.C null device;
a
.C special file.
2.\&
a physical input-output unit.
.H device number\ 
a system-dependent code used in
.C inodes
to distinguish
.C devices
[1].
A device number has two parts:
.HI major device
for the type of the device and
.HI minor device
for an individual device of a type.
.H directory\ 
a
.C file
[2] that comprises a catalog of
.C filenames
[2];
the organizing principle of the
.C file system
[2],
a directory
consists of
.C entries
which specify further
files [2], including directories,
and constitutes a node of the
.C directory tree.
.H directory entry, entry\ 
1.\&
an association of a name with an
.C inode number
appearing as an element of a
.C directory.
2.\&
the name part of such an association.
.H directory hierarchy, directory tree, file hierarchy\ 
the tree of all
.C directories, 
in which each is reachable from the
.C root
[2]
via a
.C path
of
.C subdirectories.
.H driver\ 
a set of
.C kernel
subroutines that handle input/output for a given
.C major device
type.
.H echo\ 
to transmit characters received from a terminal back to it;
the technique of echoing to a
.C full duplex
terminal provides acknowledgement of typed input.
.H effective userid\ 
see
.C set userid.
.H end of file\ 
the condition of the
.C read pointer
being past the last character of an
.C open file.
End of file is signified by a read operation
returning zero bytes, or by an EOF return
from functions of the
.C stdio
package; it may be simulated from a terminal by
typing EOT (control-D) after a
.C newline.
.H entry\ 
see
.C directory entry.
.H environment\ 
1.\&
a set of strings, distinct from the
.C arguments,
made available to a
.C process
when it
.C executes
[1] a
.C file;
the environment is usually inherited across
.I exec (2)
operations.
2.\&
a specific environment [1] maintained by the
.C shell
[1].
3.\&
a nebulously identified way of doing things, as in
`interactive environment': deprecated usage, not always expunged
from these manuals.
.H EOF\ 
1.\&
same as
.C end of file.
2.\&
a conventional value returned at end of file by
.C stdio
functions.
.H EOT, EOT character\ 
1.\&
the
ASCII
`end of transmission' character, control-D, octal code 04.
2.\&
a character that ends (and is excluded from) data
obtained by
.I read (2)
from a terminal; EOT at the beginning of a line causes the
.C end of file
condition.
.H epoch\ 
see
.C time.
.H erase character\ 
a
.C special character
[2] which, when received from a terminal, is deleted
together with the character immediately preceding it on the line;
usually defaulted to
.CW #
or backspace, the erase character may be changed by
.I stty (1);
cf.\&
.C kill character.
.H escape character\ 
1.\&
The ASCII character ESC, octal 033.
2.\&
a
.C special character
that may cause the following character
to have other than its usual meaning;
the default escape character in terminal input is 
.CW \e .
.H executable file, object program\ 
1.\&
an
.C  object file 
that is ready to be copied into the
address space
of a
.C process
to run as the code of that process.
2.\&
a file that has
execute
.C permission,
either an
.C executable file
[1] or a
.C shell script.
.H execute, exec\ 
1.\&
to replace the
.C text segment
and
.C data segments
of a
.C process
with a given
.C program
[1]; see
.I exec (2).
2.\&
informally, to run a
.C program.
.H exit\ 
to terminate a
.C process;
exit is voluntary, in contrast to
.C kill.
.H exit status, return code\ 
an integer value denoting the outcome of a
.C process,
including an indication of the cause of termination.
.H export\ 
1.\&
to include in the 
.C environment
[1] of a
.C process
when it is
.C executed
[1],
said of a string.
.H external\ 
known beyond the scope of a single compilation,
said of names of data and functions in a program.
.H file\ 
1.\&
in general, a potential source of input or destination for output.
2.\&
most specifically, an
.C inode
and/or associated contents, i.e. a
.C plain file,
a
.C special file,
or a
.C directory.
3.\&
a
.C directory entry
[1];
several directory entries may name the same file [2].
4.\&
most loosely, a
.C plain file.
.H file descriptor\ 
a conventional integer quantity, or
.C cookie,
that designates an
.C open file;
cf.\&
.C stream
[1].
.H file descriptor file\ 
a
.C special file
that serves as a name for an
.C open file
[1]; see
.I fd (4).
.H file hierarchy\ 
same as
.C directory hierarchy.
.H filename\ 
1.\&
a
.C pathname.
2.\&
same as
.C basename.
.H file pointer\ 
the number of the next byte that would normally
be read or written in a
.C file
[2]; also called
.C read pointer,
.C write pointer,
or 
.C seek pointer.
.H file system\ 
1.\&
a detachable part of the
.C directory hierarchy.
2.\&
the collection of all 
.C files
[2] accessible to a computer,
organized into a
directory hierarchy.
3.\&
in particular a
.C block device
in which
.C files
[2] are organized according to an
.C i-list
and accessed by
.C paths
through 
.C directories.
.H file system switch\ 
a
.C kernel
table that directs the interpretation of
operations in
.C file systems
[1] and 
.C special file systems.
.H file times\ 
.C access time,
.C change time,
and
.C modification time.
.H filter\ 
a
.C program
[1]
that reads from the
.C standard input
and writes on the
.C standard output,
so called because it can be used as a data-transformer in a
.C pipeline.
.H flag\ 
same as
.C option.
.H flush\ 
to empty a
.C buffer,
for example to throw away unwanted input-output upon
.C interrupt
or to release output from the clutches of
.C stdio.
.H foreground\ 
running under direct control of a terminal, said of a
.C process;
converse of
.C background.
.H fork\ 
1.\&
to split one
.C process
into two, the
.HI parent process
and
.HI child process,
with separate, but initially identical,
.C text, data,
and
.C stack
.C segments.
2.\&
informally, same as
.C spawn.
.H free list\ 
in a
.C file system
[1],
the list of
.C blocks
that are not occupied by data.
.H full duplex\ 
1.\&
capable of carrying information simultaneously in both directions,
said of a communication channel.
2.\&
transmitting what is typed while printing what is received,
said of a terminal, or of terminal communication;
cf.\&
.C half duplex
and
.C echo.
.H gid\ 
see
.C groupid.
.H global\ 
same as
.C external.
.H group\ 
1.\&
a set of
.C permissions
alternative to
.C owner
permissions for access to a
.C file.
2.\&
a set of
.C userids
that may assume the privileges of a group [1].
3.\&
the
.C groupid
of a 
.C file.
.H group file\ 
the file
.CW /etc/group ,
which tells which
.C groupids
are available to each
.C login name.
.H groupid, gid\ 
an integer value associated with
.C processes
and
.C files
[2] used in determining
.C permissions.
.H half duplex\ 
1.\&
capable of carrying information in both directions, but not simultaneously,
said of a communication channel.
2.\&
transmitting (usually typing what is transmitted) and receiving,
but not simultaneously, said of a terminal; cf.\&
.C full duplex.
.H hang\ 
1.\&
to 
.C execute
a
.C program
[1] so that it stops immediately, usually for debugging; cf.\&
.I hang (1).
2.\&
to wait for something that won't happen; said of a process.
.H hangup\ 
a
.C signal
indicating that a user's terminal
has been disconnected.
.H hard link\ 
1.\&
a 
.C directory entry
[1] that does not designate a
.C symbolic link.
2.\&
a
.C link
[2] that is not a
.C symbolic link.
.H header file\ 
same as
.C include file;
the name of a header file customarily ends with 
.CW \&.h
(dot-h).
.H here file\ 
in a
.C shell script,
literally given input data for a
.C command;
here files are introduced by 
.CW << .
.H hole\ 
a gap in a 
.C plain file
caused by
.C seeking
while writing; 
.I read (2)
takes data in holes to be zero;
a
.C block 
in a hole occupies no space in its
.C file system
[1].
.H home directory\ 
1.\&
the
.C current directory
established for each user upon
.C logging in.
2.\&
the variable 
.CW HOME
in the
.C environment
[2], used in particular as the default destination for the 
.C shell
[1]
.CW cd
command.
.H host process\ 
a
.C process
working in collaboration with a
.C terminal process.
.H HZ\ 
alternating-current line frequency,
60 in North America, 50 in most other places.
.H i-list\ 
the index to a
.C file system
[1]
listing all the
.C inodes
of the file system; cf.\&
.C inode number.
.H image\ 
same as
.C core image.
.H include file, header file\ 
a
.C file
[4],
usually containing shared data declarations,
that is to be copied into source programs as they are compiled.
.H inode\ 
an element of a
.C file system
[1];
an inode specifies all properties of a particular
.C file
[2] and locates the file's contents, if any.
.H inode number, i-number\ 
the position of an
.C inode
in the
.C i-list
of a
.C file system
[1].
.H Internet\ 
an informal association of data networks using
protocols developed mainly under the auspices of
DARPA.
.H interrupt\ 
1.\&
a
.C signal
that normally terminates a
.C process,
caused by a
.C break
[1]
or an
.C interrupt character;
cf.\&
.C quit.
2.\&
loosely, any
.C signal.
.H interrupt character\ 
a character (normally
ASCII
DEL) that, when typed on a
.C control terminal,
causes an
.C interrupt.
.H io control, ioctl\ 
1.\&
a
.C system call
that changes the behavior of an
.C open file,
for example in interpreting
.C  control characters.
2.\&
a function performed by 
.I ioctl (2).
.H jerq\ 
vernacular name for a Teletype 5620 terminal.
.H K\ 
1024; 1024 bytes: a `4K file system' has 4096-byte
.C blocks.
.H kernel\ 
the UNIX system proper;
resident code that implements the
.C system calls.
.H kernel space, kernel address space\ 
data and code that are addressable only by the
.C kernel.
.H kill\ 
1.\&
a particular
.C signal
guaranteed to terminate a
.C process.
2.\&
by extension, to send any
.C signal
to a
.C process.
3.\&
the
.C kill character.
.H kill character\ 
a
.C special character,
which, when received from a terminal, is deleted together with
all preceding characters on the line;
defaulted to
.CW @ ,
the kill character may be changed by
.I stty (1);
cf.\&
.C erase character.
.H layer\ 
a virtual terminal appearing on a screen and also capable
of running
.C terminal processes.
The
.C processes
associated with each layer constitute
a separate
.C process group.
.H library\ 
an
.C archive
[2] of
.C object files
from which the
.C link editor
may select functions and data as needed.
.H line\ 
in a
.C text file,
a sequence of bytes terminated by a
.C newline.
.H line discipline\ 
a module to handle protocol or data
conversion for a
.C stream
[2].
A line discipline, unlike a
.C filter,
is part of the 
.C kernel.
.H link\ 
1.\&
to add
an entry for an existing
.C file
[2] to a directory;
converse of
.C unlink.
2.\&
particularly, any but one putatively primary directory entry for
a given
.C inode,
either linked [1] or a
.C symbolic link.
.H link count\ 
the number of
.C directory entries
[1] that pertain to an
.C inode;
a
.C file
[2] ceases to exist
when its link count becomes zero
and it is not 
.C open.
.H link editor, loader\ 
the utility
.I ld (1),
which combines separately compiled
.C object files
into a single
object file.
.H listen\ 
to issue a read on a
.C stream,
waiting for data, usually a service request, from some other
.C process
or
.C remote
source.
.H loader\ 
same as
.C link editor.
.H log in\ 
to identify one's self as a user and start a computing session.
.H login\ 
1.\&
the 
.C program
that controls logging in.
2.\&
the act of
.C logging in.
3.\&
by extension, the computing session that follows a login
[2].
.H login name\ 
the name by which a person is identified when
.C logging in;
cf.\&
.C userid.
.H magic number\ 
a
.C cookie
that distinguishes various flavors of
.C object file;
see
.I a.out (5).
.H major device\ 
see
.C device number.
.H makefile, mkfile\ 
a list of dependencies among files and recipes for updating 
them, usually by recompilation,
used by
.I make (1)
or
.I mk (1)
to maintain self-consistent software;
`mkfile' rhymes with `book file'.
.H manager\ 
same as
.C server.
.H memory image\ 
same as
.C core image.
.H message line discipline\ 
a
.C line discipline
used on
.C pipes
wherein a record of each
.C system call
on one end of the pipe is received as a message
at the other end; see
.I mesgld (4).
.H minor device\ 
see
.C device number.
.H mode, file mode\ 
the
.C permissions
of a
.C file;
colloquially referred to by a 3-digit octal number, e.g. `a 755 file';
see
.I chmod (1).
.H modification time\ 
the most recent
.C time
at which the contents of a
.C file
[2] were altered;
cf.\&
.C access time,
.C change time.
.H mount\ 
to associate with a
.C directory entry
[2] a 
.C stream
[2] or the
.C root
[1]
of a
.C file system
[1],
making respectively a virtual file
or an extended
.C file system
[2].
Mounting assigns to the
.C inode
of a directory entry a temporary meaning,
which ceases with the associated
.C server
[1],
with explicit unmounting,
or with
.C booting.
.H mounted stream\ 
a 
.C directory entry
[2] on which an open
.C stream
[2]
has been
.C mounted.
.H named pipe\ 
same as
.C mounted stream.
.H namelist\ 
same as
.C symbol table.
.H network file system\ 
a mechanism for cross-\c
.C mounting
the
.C file systems
[2] of different computers; see
.I netfs (8).
.H newline\ 
the combined function of carriage return and line feed,
represented by the
ASCII
character LF, octal value 012;
separates
.C lines
in a
.C text file;
newline is evoked by the `return' key on most terminals.
.H nice\ 
to place a 
.C process
in
.C nice mode
[2].
.H nice mode\ 
1.\&
the scheduling priority of a
.C process;
see
.I nice (2).
2.\&
in particular, a low priority.
.H null device\ 
a
.C device 
[1] that always yields
.C end of file
on reading and discards all data on writing.
.H null pointer\ 
in C, a pointer object with value 0.
.H object file\ 
a
.C file
[2] that contains machine language code and data;
object files are produced from source programs by compilers
and from other object files and
.C libraries
by the
.C link editor;
an object file that is ready to run is an
.C executable file
[1].
.H open\ 
to make a
.C file
[2] available for writing or reading, with the
.C file pointer
positioned at byte 0;
converse of
.C close;
cf.\&
.C create.
.H open file\ 
1.\&
the destination for input or output obtained by
.C opening
a
.C file
[2] or creating a
.C pipe;
a
.C file descriptor;
open files are shared across
.C forks
and persist across
.C executes 
[2].
2.\&
loosely, a 
.C file
[2]
that has been opened.
.H option\ 
an
.C argument
that affects the way a
.C command
works; option names customarily begin with 
.CW - .
.H ordinary file\ 
same as
.C plain file.
.H other\ 
1.\&
the category of
.C permissions
regulating access to a 
.C file
[2] by processes with
.C userid
different from the
.C owner
and
.C groupid
different from the
.C group
of the file.
2.\&
the customary name of the default 
.C group
[2] assigned upon 
.C login
[2].
.H owner\ 
a
.C userid
associated with a 
.C file
[2], usually
that of the
.C process
that created it;
the owner has distinctive
.C permissions
for a file.
.H page\ 
a hardware-dependent unit of virtual memory management,
defined in
.CW /usr/include/sys/types.h ;
cf.\&
.C block.
.H parent directory\ 
the
.C directory
next nearer the
.C  root 
than a given directory;
the inverse of a
.C subdirectory.
A
.C directory entry
[2]
.CW ..
always refers to the parent directory.
.H parent process\ 
see
.C fork.
.H password\ 
a secret word used to confirm a user's right to
.C log in
under a particular
.C userid;
passwords are encrypted by a one-way algorithm and kept in the
.C password file.
.H password file\ 
a record of all
.C login names
with the
.C password,
.C userid,
.C groupid,
.C home directory,
and
.C shell
[2] for each, used to control access to the system.
.H path, pathname\ 
a chain of names designating a
.C file;
a
.HI relative pathname
leads from the
.C current directory,
for example, a path to
.C directory
.CW A ,
thence to directory 
.CW B ,
thence to 
.C file
[2]
.CW C
is denoted 
.CW A/B/C ;
a
.HI full pathname
begins at the
.C root
[2],
indicated by an initial 
.CW / ,
as in
.CW /A/B/C .
.H permission\ 
a right to access a
.C file
[2] in a particular way: read, write, execute (or look up in, if a directory);
permissions are granted separately to
.C owner,
.C group,
and
.C others.
.HI permission bit\ 
a permission, so called because each permission is encoded into
one bit in an
.C inode.
.H pid\ 
see
.C process id.
.H pipe\ 
a nameless
.C stream
[2] connection between
.C processes,
whereby data written on an
.C open file
in one process may be read in another; cf.\&
.C named pipe.
.H pipeline\ 
a sequence of
.C programs
[1]
connected by
.C pipes.
.H plain file, ordinary file\ 
a
.C file
[2] that is neither a
.C special file
nor a
.C directory;
plain files are the customary repository of data.
.H priority\ 
see
.C nice mode
[1].
.H process\ 
a connected sequence of computation;
a process is characterized by a
.C core image
with instruction location counter,
.C current directory,
a set of
.C open files,
.C control stream,
.C userid,
and
.C groupid.
.H process directory\ 
a
.C special file system,
.CW /proc ,
in which all
.C process files
appear.
.H process file\ 
a
.C core image
of a
.C process,
accessible as a
.C file
[3].
.H process group\ 
a set of processes that share a
.C control stream
and among which
.C signals
may be broadcast;
process groups are created upon
.C logging in,
creating a window, or
issuing certain
.C io controls;
see
.I stream (4).
.H process number, process id, pid\ 
an integer that identifies a
.C process.
.H profile\ 
1.\&
an optional
.C shell script,
.CW \&.profile ,
used by the
.C shell
[1] upon
.C logging in
to establish the
.C environment
[3]
and other working conditions customary to a particular user.
2.\&
to collect a histogram of values of the instruction location counter of a
.C process;
see
.I monitor (3).
.H program\ 
1.\&
an
.C executable file.
2.\&
a
.C process.
3.\&
all the usual meanings.
.H program break\ 
the first address beyond the
.C static
data accessible to a
.C process;
the program break may be
adjusted by
.I brk (2).
.H quit\ 
a
.C signal
that normally terminates a
.C process,
caused by a
.HI quit character
(normally control-\e);
quit differs from
.C interrupt
in that quit creates a
.C core file
for the terminated process.
.H random library\ 
a
.C library
that contains an index to 
.C external
names;
a library is made into a random library by
.C ranlib
see
.I ar (1).
Nonrandom libraries must be carefully ordered for the
.C link editor
to cope with cross references among the subroutines.
.H raw\ 
1.\&
a mode of terminal input in which every character typed is passed
to a reading
.C process
and
.C special characters
lose their special character;
converse of
.C cooked.
2.\&
said of input-output to a
.C raw device.
.H raw device\ 
a
.C device
[1],
read and write operations to which are not 
.C buffered,
and are synchronized to natural records of the physical device.
A raw device is usually a
.C character device
that addresses the same physical device as some
.C block device.
.H read ahead\ 
to fill input
.C buffers
in the
.C kernel
in advance of
.I read (2)
operations.
.H read pointer\ 
same as
.C file pointer.
.H real userid\ 
see
.C set userid.
.H reboot\ 
same as
.C boot.
.H regular expression\ 
1.\&
an expression denoting a set of strings in a notation due to Kleene.
2.\&
especially,
a restricted and modified form of regular expression used for pattern-matching in 
.I ed (1)
and elsewhere.
.H relative pathname\ 
see
.C pathname.
.H relocation bits, relocation information\ 
information in an
.C object file
that tells the
.C link editor
how to adjust addresses when combining it with other
.C object files;
`bits' is a fossilized misnomer.
.H return code\ 
same as
.C exit status.
.H root\ 
1.\&
a distinguished directory that constitutes the origin of the
.C directory hierarchy
in a 
.C file system
[1].
2.\&
specifically, the origin for the 
.C file system
[2], with the conventional
.C pathname
.CW / .
3.\&
the conventional
.C login name
for the
.C super-user.
.H schedule\ 
to assign resources \- main store and CPU time \- to
.C processes.
.HI scheduler\ 
a permanent
.C process,
with
.C process number
1, and associated
.C kernel
facilities that do scheduling.
.H search path\ 
a list of
.C pathnames
of
.C directories
that determines the meaning of a
.C command
[2] name.
In one form of
.C exec,
a
.C relative pathname
is prefixed with members of
the search path in turn until
a pathname of an
.C executable file
[2] results.
.H seek\ 
to set the
.C file pointer
to a specified place in an
.C open file.
.H seek pointer\ 
same as
.C file pointer.
.H segment\ 
a contiguous range of the
address space
of a
.C process
with consistent store access capabilities; the four segments are
(i) the
.HI text segment,
occupied by executable code,
(ii) the
.HI data segment,
occupied by
.C static
data that is
explicitly initialized,
(iii) the
.HI bss segment,
occupied by static data that is
implicitly initialized to zero values
(the name comes from a 1950's assembler), and
(iv) the
.HI stack segment,
occupied by
.C automatic
data, see
.C stack;
sometimes (ii), (iii), and (iv) are collectively called data segments.
.H server\ 
1.\&
a 
.C process,
usually permanent, that serves
.C clients
through a
.C mounted
interface, either a
.C stream
or a
.C special file system.
2.\&
a program, often a server
[1],
accessed via a distinctive
network address to provide some
remote computing service.
.H set userid\ 
a special
.C permission
for an
.C executable file
[1] that causes a
.C process
executing it
to have the access rights of the
.C owner
of the file;
the owner's
.C userid
becomes the
.HI effective userid
of the process, distinguished from the
.HI real userid
under which the process began.
.HI set userid bit\ 
the associated
.C permission bit.
.H shared text\ 
a
.C text segment,
one copy of which may be used simultaneously by more than one
.C process.
.H shell\ 
1.\&
the program
.I sh (1),
which causes other programs
to be executed on
.C command
[2];
the shell is usually started on a user's behalf upon
.C logging in.
2.\&
by analogy, any program started upon logging in.
.H shell script, command file\ 
a
.C file
[2] of
.C commands
taken as input to the
.C shell
[1].
.H signal\ 
an exceptional occurrence that causes a
.C process
to terminate or divert from the normal flow of control; cf.\&
.C interrupt,
.C kill.
.H sleep\ 
to cease activity for a specified time, or until a
.C signal
occurs, said of a
.C process.
.H soft link\ 
same as
.C symbolic link.
.H spawn\ 
to cause a
.C program
to be run in a 
.C child process;
cf.\&
.C fork, execute.
.H special character\ 
a character, which, when typed
at a terminal, modifies the input or affects the behavior of
.C processes
for which that terminal is the
.C control terminal;
examples are the
.C interrupt character,
.C erase character,
and
.C EOT character.
.H special file\ 
an
.C inode
that designates a
.C device,
further categorized as either
(i) a
.HI block special file
describing a
.C block device,
or (ii) a
.HI character special file
describing a
.C character device.
.H special file system\ 
1.\&
a virtual
.C directory,
in which
.C `entries'
are constructed as needed.
Examples are
.CW /n , 
the
.C network file system,
and
.CW /proc ,
the
.C process directory.
.H spool\ 
to collect and serialize output from multiple
.C processes
competing
for a single output service.
.HI spooler\ 
a
.C daemon
that spools.
.HI spool area\ 
a
.C directory
in which a
spooler collects work.
.H stack, stack segment\ 
a
.C segment
of the address space into which
.C automatic
data and subroutine linkage information is allocated in
last-in-first-out fashion;
the stack occupies the largest data addresses and grows downward
towards
.C static
data.
.H standard input, standard output, standard error\ 
.C open files,
customarily available when a
.C process
begins, with
.C file descriptors
0, 1, 2 and
.C stdio
names
.CW stdin ,
.CW stdout ,
.CW stderr .
Where possible, utilities by default read from the
standard input, write on the standard output, and place
error comments on the standard error file.
.H standard input-output\ 
see
.C stdio.
.H start/stop protocol, XON-XOFF protocol\ 
a communication flow-control method in which a received
.C special character,
the
.HI stop character,
causes output to be suspended, and a received
.HI start character
causes output to be resumed.
The default start and stop characters are ASCII DC1 (octal 022, control-Q)
and DC3 (octal 024, control S) respectively.
.H static\ 
persistent throughout a process,
said of data;
static data occupies the
.C data segment
and the
.C bss segment;
cf.\&
.C automatic.
.H status\ 
see
.C exit status.
.H stdio, standard input-output\ 
a collection of functions for formatted and character-by-character
input-output at a higher level than the basic
.I read (2),
.I write,
and
.I open (2)
operations.
.H stream\ 
1.\&
an
.C open file
with
.C buffering
superimposed by the
.C stdio
package.
2.\&
a bidirectional input-output connection between a
.C process
and a
.C character device
or another process.
.H strip\ 
remove the
.C symbol table
and
.C relocation bits
from an
.C executable file
[1].
.H subdirectory\ 
a
.C directory
that appears as an
.C entry
[1] in another.
.H subshell\ 
another copy of the
.C shell
[1], with its own
.C environment
and 
.C open files,
run as a 
.C child process
of the shell;
.C shell scripts
and commands subject to 
.CW for
and
.CW while
or
enclosed in parentheses 
.CW ()
are normally run by subshells.
.H super-block\ 
the second
.C block
in a
.C file system
[1],
which describes the allocation of space in the file system; cf.\&
.C boot block.
.H super-user\ 
.C userid
0, which can access any
.C file
[2] regardless of
.C permissions
and can perform privileged
.C system calls,
e.g. to set the clock.
.H swap\ 
to move the
.C core image
of an executing program between main and secondary store to
make room for other
.C processes.
.H swap area\ 
the part of secondary store to which
.C core images
are
.C swapped;
the swap area is disjoint from 
.C file systems
[1].
.H symbolic link\ 
an
.C inode
that contains the
.C pathname
of another.
References to the symbolic link become references to
the named inode.
.H symbol table\ 
information in an
.C object file
about the names
of data and functions in that file;
the symbol table and
.C relocation bits
are used by the
.C link editor
and by debuggers.
.H system call\ 
a basic operation performed by the
.C kernel;
see
.I intro (2).
.H system time\ 
the accumulated time spent by a
.C process
in
.C kernel
code; cf.\&
.C user time.
.H tandem\ 
a mode of the
.C terminal line discipline
in which the computer uses
.C start/stop protocol
to regulate data flow from another terminal or other computer.
.H terminal line discipline, teletype line discipline\ 
a
.C line discipline
that implements input-output features such as
.C erase character
and
.C raw mode;
see
.I ttyld (4).
.H terminal process\ 
a program downloaded into a 
.C layer,
often in collaboration with a
.C host process.
Running in a different environment, a
terminal process is not a UNIX
.C process.
.H text\ 
see
.C text file,
.C segment.
.H text file, ASCII file\ 
a
.C file,
the bytes of which are understood to be in
ASCII
code.
.H text segment\ 
see
.C segment.
.H time\ 
the number of seconds since the
.HI epoch\fR,
00:00:00 Greenwich Mean Time, January 1, 1970.
.H u-area\ 
a collection of data about, but not in the address space of, a
.C process;
the u-area is kept with the
.C core image
of the process.
.H uid\ 
see
.C userid.
.H umask\ 
a list of
.C permissions
that will be denied for files
.C created
by a
.C process,
so called because the list is expressed as a
.C mode
bit mask.
.H UNIX\ 
the name of a family of systems software,
not an acronym for anything;
a registered trademark of AT&T, the word should be used
as an adjective, e.g. `UNIX system' or `UNIX software'.
Major genera are the
research versions issued as numbered `editions', the
Berkeley software distributions (BSD), and the commercial
System V.
.H unlink\ 
to remove an
.C entry
[1] from a
.C directory;
converse to
.C link
and
.C create.
.H upas\ 
1.\&
a fabulous Javanese tree that poisoned everything
for miles around.
2.\&
a routing and delivery system for electronic mail.
.H URP\ 
universal receiver protocol used by
.C Datakit.
.H usenet\ 
an informal, nationwide computer network based on
.I uucp (1),
over which
`netnews'
is distributed; see
.I readnews (7).
.H user code\ 
code that runs in a 
.C process,
as distinct from
.C kernel
code.
.H userid, uid\ 
an integer value, usually associated with a
.C login name;
the userid of a
.C process
becomes the
.C owner
of files
.C created
by the process; it is inherited
across
.C fork.
.H user space, user address space\ 
the address space of a 
.C process, 
as distinct from
.C kernel space.
The address spaces of different processes are
mutually disjoint.
.H user time\ 
the accumulated time spent by a
.C process
in
.C user code;
cf.\&
.C system time.
.H utility, utility program\ 
a standard, generally useful, permanently available
.C program;
utilities normally inhabit directories
.CW /bin
and
.CW /usr/bin .
.H wait\ 
to suspend running until the termination of another
.C process;
only a
.C parent process
can wait for one of its
.C child processes.
.H window\ 
1.\&
same as
.C layer.
2.\&
a sublayer in
.C terminal processes
such as
.I pi (9)
or
.I sam (9).
.H working directory\ 
same as
.C current directory.
.H write behind\ 
to 
.C buffer
data for writing to a
.C device
[2] at a convenient time without holding up the computation
of a writing 
.C process.
.H write pointer\ 
same as
.C file pointer.
.H XON-XOFF protocol\ 
same as
.C start/stop protocol.
.H zombie\ 
a terminated
.C process
with a running 
.C parent process
that has not 
.C waited
for it.