.de IR
\fI\\$1\fR\\$2\\fR\\fR
..
.TL
Changes in the VAX system in the Fourth
Berkeley Distribution, November, 1980
.AU
Bill Joy
.AB
This document describes briefly the changes in the Berkeley system
for the VAX between the distribution of January 1980 (known as 3BSD)
and this, the fourth distribution, of November 1980.
It attempts to be summarize, without going into great detail, the
changes which have been made, and is intended to be used by someone
who is familiar with the system to quickly re-acclimate themselves to
the new system.
.AE
.SH
.ce
.LG
Major changes
.SM
.sp
.PP
.IP \s+1\(bu\s0 4
There is a new format for \fB.o\fR files and also a new archive format.
Old \fB.o\fR files must be discarded and the programs compiled from the
source again.  Old archives can be converted to the new format with
.IR arcv (8),
but if they contain old \fB.o\fR files they have to be completely
recreated.  New libraries for the loader \fBmust\fR have a table
of contents, see
.IR ranlib (1).
.IP \s+1\(bu\s0
The C compiler and associated programs now take arbitrary length names,
not chopping them off at length 7 or 8.  Other changes in C are described under
.B cc
below.
.IP \s+1\(bu\s0
There is a new version of the C shell, which supports ``job control'' and
which uses a new tty driver.  See
.IR newcsh (1)
and
.IR newtty (1)
for details.
Programming considerations for the new system mechanisms involved are
described in
.IR jobs (3).
Users of the older
.B csh
can use
.B oldcsh
until they have time to learn the new features.
.IP \s+1\(bu\s0
The standard output (in the standard i/o library) is now line buffered
by default when the output is a terminal.  So that essentially all
programs may work without change in the presence of this
extra buffering, a partial output line is flushed whenever the library
goes to the system to read from the standard input.
.IP \s+1\(bu\s0
A number of performance enhancements have been made.
Under normal timesharing loads, the system time has been decreased about
10%.  The changes to the standard i/o library and improvements to the
character handling routines to terminals have reduced greatly the cost
of terminal i/o.  The new version of the loader and the addition of table
of contents to loader archives have speeded up loading of large programs
by about a factor of 3.  Improvements to the system data structures have
decreased the time required for most system calls, increasing the amount
of time available to user programs.
.IP \s+1\(bu\s0
A bug has been fixed in the C optimizer which caused incorrect code to
be generated for the random number generator.  A consequence of this is
that the
.B rand
function in this version of the system produces different sequences.
Fallout from this is the fact that the secret-mail facility encryption scheme
is subtly changed by this bug fix.  All users should re-enroll in secretmail
using
.B enroll;
messages sent before re-enrolling can be read using
.B /usr/old/bin/xget.
.bp
.SH
.LG
.ce
Section 1
.SM
.sp
.PP
This is a brief summary of the changes which have been made in
section 1 of the manual.
In general, a number of system maintenance
commands have been moved to section 8 of the manual as they are of little
interest to the average user.  In addition, to reduce the bulk of the manual,
a number of very-closely related commands have been merged together onto
a single manual page; thus \fBccat\fR, \fBcompact\fR and \fBuncompact\fR,
which had three separate pages in the last edition of the manual, now have
only one, and the line printer commands \fBlpr\fB, \fBlpq\fR and \fBlprm\fR
have been placed on a single page.
.de BP
.IP \fB\\$1\\fR 11n
..
.BP ac
Now appears in section 8.
.BP adb
Now correctly initializes the maps when debugging the system.
Control characters are now printed using the \fB^x\fR convention when the
\fBC\fR output format is used.  The increment for dot in the \fBp\fR
format is now (correctly) 4.  A previously undocumented command is
\fB$?\fR, giving the output of \fB$r\fR, preceded by the process
id and signal stopping the process.  The bug which cause the running
process to always stop at location 2 when first run has been fixed.
.BP analyze
Now appears in section 8.
.BP ar
Now creates a new archive format, in which the critical information
is stored in ASCII, and thus portable between the VAX, PDP\-11, and
other machines.  See
.IR old (8)
for information on dealing with the old format.
The program
.IR arcv (8)
converts old (binary format) archives to new format, in place.
Beware, however: the format of \fB\.o\fR files has changed, so archives
of object files must be recompiled (see \fBcc\fR below).
.BP ar11
Is now in
.B /usr/old/bin
see
.IR old (8).
.BP arff
Is now
.IR arff (8).
.BP as
A new option \fB\-R\fR causes the assembler to make data segments
read-only and shared; this replaces the cumbersome ``:rofix'' script
used in the previous distribution.  For very large assemblies there
is an option \fB\-J\fR which causes the assembler to use four-byte
jumps to avoid ``Branch too far diagnostics.''  Local labels have been
added to the assembler defined by ``\fIn\fR:'' and referenced as ``\fIn\fRf''
or ``\fIn\fRb''; see the assembler manual in volume 2c for details.
All tables in the assembler have been made extensible so that there should
be no problems with assembling enormous files.  The assembler has also
been sped up by 25-40%.
.BP at
A number of security problems with the
.I at
command have been fixed.
.BP biff
Is a new command which can enable immediate notification when
mail arrives; if you give the command ``biff y'' then the first few
lines of each piece of mail sent to you is printed on your terminal.
This is a (different flavor) replacement for the MAIL variable of
.B sh
or the mail variable of
.B csh.
.BP cat
New options \fB\-n\fR numbers lines;
\fB\-s\fR crushes out multiple blank lines, replacing \fBssp\fR;
\fB\-v\fR prints control characters in the \fB^x\fR format.
The commands
.IR num (1)
and
.IR see (1)
now just invoke
.I cat.
.BP cc
A newer version of the C compiler supports more strongly typed structures.
Field names need not appear in only one structure; rather
the compiler insists on correct typing of pointers accessing
structures in contexts where this would cause ambiguity, and producing
a warning in other cases when the pointer does not have the correct type
to access the field name.
.IP
A new type
\fBvoid\fR may be used in a declaration or a cast to indicate that there
is no result, or that a value is to be discarded.
.IP
The compiler has been changed to accept arbitrary-length names.
For maximum portability it is better to limit names to 8 characters,
7 characters for externals, but this is no longer required.  The longer
names bring a new \fB\.o\fR format, incorporating a string table, and
consequently a large number of programs are changed.  The critical ones
exist in ``old'' versions to ease conversion pains.
.IP
A number of bugs in the compiler have been fixed.  To avoid remaining bugs
in the code generator, the declaration of \fBregister char\fR and
\fBregister short\fR variables are currently being compiled as though
the word \fBregister\fR were not present.
(This does \fBnot\fR affect pointer variables.)
This blindness is allowed in the semantics
of the language, and is not as bad as it might seem at first.  It
is sufficiently difficult to maintain the semantics of C in operating
on such quantities that the code is often better when they are not placed
in registers.  This applies to \fBunsigned char\fR and \fBunsigned short\fR
variables also.
.BP cd
The
.I cd
command, in
.IR csh
is now affected by a
.I cdpath
variable which works similarly to the command search
.I path
variable; see
.IR csh (1).
.BP checknr
A new command which checks macro bracketing structure in
.I nroff
or
.I troff
input.
.BP chgrp
Has been moved to section 8.
.BP chown
Has been moved to section 8.
.BP cifplot
Produces raster plots from CIF for integrated circuit designers.
.BP clri
Has been moved to section 8.
.BP colrm
Has had several bugs fixed.
.BP cp
It, along with
.I mv
now take
.B \-i
flags which cause them to ask before overwriting an existing file; thus
.B cp
can be usefully
\fIalias\fR\|ed
to ``cp \fB\-i\fR'' when using
.IR csh (1)
to provide a safer environment.
.BP csh
Has had a number of changes; most importantly, the shell now
supports ``job control'', allowing arbitration of a terminal
between several active groups of processes.  See
.IR newcsh (1)
for a short description of new
.I csh
features.
Users of
.I csh
automatically use the new teletype driver summarized in
.IR newtty (4).
(An old version of
.B csh,
corresponding to that of the Third Distribution remains available as
.B oldcsh
to ease conversion to the new shell.)
.BP ctags
Now recognizes FORTRAN and Pascal routine definitions.
.BP cu
Is now functional on VADIC dial-out hardware with the necessary
software to record outgoing calls; see
.IR rv (4).
.BP cxref
Is now the
.B \-x
option to
.B ctags.
.BP date
The internal date representation (maintained in the hardware)
has been changed to be more compatible with the standard
DEC system VMS, although VMS still poses problems (see \s-2BUGS\s0 in
.IR date (1)).
.BP dcheck
Is now in section 8.
.BP dd
Options have been added to do blocking and unblocking of tapes
without converting to and from EBCDIC.
.BP ddate
Is obsoleted by the new
.B dump
program, which lives in section 8.
.BP df
The output format is greatly improved.  It is now also possible
to say ``df directory'' to get \fIdf\fR to report the free space
available on the file system containing \fIdirectory\fR.
.BP diction
Is a new program which finds bad or wordy diction.
.BP diff
Has new options to give lines of context and to create a merged conditional
file with ``#ifdef'' controls in it.  The command
.I diffdir
has been subsumed into
.I diff
and an option has been added to perform recursive directory differences.
.BP diffdir
Is now part of
.I diff.
.BP dmesg
Is now in section 8.
.BP dump
Is now in section 8.
.BP dumpdir
Is now in section 8.
.BP echo
The echo builtin to
.B csh
now is the same as the standard version 7
echo.  The special character sequences ``\ec'' and ``\en'' no longer
have their special meaning; instead the
.B \-n
option is accepted.
.BP ef\&l
Is a new FORTRAN preprocessor, providing C-like features.
.BP error
Is a new program which consumes error message output from
language and other processors, analyzes them and (optionally)
places appropriate diagnostics back into source files near the point of error.
.BP ex
A number of bug fixes and a few new features are available.
See the incremental change report in volume 2c or read the file
.I /usr/news/ex.
.BP expand
Now has a companion
.I unexpand
command, reversing its effect.
.BP f\&lcopy
Is now in section 8.
.BP from
Now takes a
.B \-s
option, printing only headers from the sender who is the next argument.
.BP gets
Is obsolete; use ``$<'' of
.IR csh (1)
or
.I read
of
.IR sh (1)
instead.
.BP grep
The
.B \-i
option now works with
.I fgrep;
several subtle bugs have been fixed in
its algorithm.
.BP iostat
Now has a single output format which includes character i/o rates,
seeks and transfers per second on each disk.
.BP kill
Is now built-in to
.IR csh
and take job names ``%...'' as arguments.  This eliminates
much of the need to know process id's when using
.I kill.
It also takes symbolic as well as numeric signal names; do
``kill \-l'' (lower case letter l as in lark) to see a list.
.BP ld
Has been speeded up substantially; several new options have
been added providing incremental loading (\fB\-A\fR), primitive load maps
(\fB\-M\fR) and symbol def/use tracing (\fB\-y\fR).
The loader now supports archives with
table of contents, and expects all archives it encounters to have
them (or it complains); see
.IR ranlib (1).
.BP lisp
The lisp interpreter has begun to support new ``string'' and
``hunk'' data types.  A user must now type vertical bars to delimit
atoms with embedded white space, as double quotes (") now delimit
strings.
The interpreter has benefitted from in-line expansion of 
frequently called small routines, and will interpret
list structure 20% more quickly than before.
A perusal of the index to the lisp manual
in Volume 2c will show more new functions which Franz has in common with
\s-2MACLISP\s0.
.BP liszt
The quality of the code produced by
.I liszt
is substantially better than the previous version;
.I liszt
also now provides macros for UCI lisp compatibility as well
as Maclisp compatibility, and a facility for constructing a cross-reference
with
.IR lxref (1).
.BP ln
Now subsumes
.I lnall
when given multiple arguments.
.BP ls
Has new options \fB\-R\fR for a directory-recursive version, \fB\-F\fR
to highlight directories and executable files, and now indicates
.IR mpx (2)
files in long format outputs with first output character \fBm\fR.
.BP lxref
Is a new lisp cross referencing program.
.BP mail
All mail is now forwarded through the facilities of
.IR delivermail (8)
using the mail aliases data bases in the file
.I /usr/lib/aliases
whose format is described in
.IR aliases (5).
Gateways to UUCP, ARPA and Berknet machines are provided, with
normal naming conventions, i.e.: ``name@site'' for the ARPANET,
``machine!name'' for UUCP, and ``machine:name'' for the Berknet.
Personal distribution lists created and placed in the file
.I \&.mailrc
are now expanded in sent mail so that the recipient can reply
to members of personal aliases.  Systemwide aliases contained in the
``aliases'' file are applied to
.I all
incoming mail; this allows correct functioning when reply is made to
a mailing list, which was not expanded to its constituents when the
mail was first sent.
.BP make
Now understands about Pascal files, running
.IR pc
using the options
PCFLAGS.
A number of limitations have been removed to allow very large
programs to be controlled.
.BP makewhatis
.br
Has been replaced by
.IR catman (8).
.BP man
Now interfaces with a preformatted version of the manual; this allows
the manual to be presented much more quickly.  The preformatted manual
is maintained automatically; when pages are changed and then requested
they are reformatted.  The
.IR catman (8)
command can be used to reformat all manual pages whose preformatted
sections are out of date.
.BP mkfs
Is now in section 8.
.BP mknod
Is now in section 8.
.BP more
Has been improved, providing more commands and has also been changed to be
more (sic) similar to
.IR ex (1).
A new interface
.I page
is like
.I more,
but clears the screen before presenting each pageful.
.BP mount
Is now in section 8.
.BP msgs
Now provides options for saving messages in files and responding to messages.
There is also an option (\fB\-p\fR) to arrange that long messages be piped
through
.IR more (1).
.BP ncheck
Is now in section 8.
.BP newaliases
Rebuilds the random access version of the mail forwarding database.
After you edit the file
/usr/lib/aliases which contains
the forwarding information, you must run
.B newaliases.
.BP nm
No longer prints symbols destined for
.IR sdb (1)
by default.  Instead, when the
.B \-a
option is given, they are printed symbolically
(rather than in octal as before.)
.BP pc
Is a new Pascal compiler, which allows separate compilation and mixing
of Pascal code with routines written in C and FORTRAN.  It is
possible to use
.IR sdb (1)
with Pascal routines, and all standard language features, including
procedure and function parameters are implemented.
.BP pi
Has had some options changed so that 
they are similar to
\fIpc\fR\|'s options
(since the latter is constrained by the demands of compatibility with
.IR cc (1)
and
.IR ld (1)).
.BP pr
Now has an option \fB\-f\fR to use form-feeds in the output rather
than multiple blank lines to eject pages.
This can be used for greater top-of-form alignment reliability on
unreliable printers or to reduce bulk of the output.
.BP prof
Now suppresses routines which were never called and which accumulated no
time.  An option to sort the output by number of calls has been provided.
.I Prof
can also combine the statistics from a number of saved monitor data
files in a single output report, producing a new summary data file.
.BP ps
The formats for
.B ps
have been improved to include more information about job state in all
output formats, and cpu and memory consumption by jobs
(in the \fBu\fR and \fBv\fR output formats.)
.BP pwd
Is superseded for
.IR csh (1)
users by
.I dirs,
which is built-in and significantly faster.
.BP ranlib
Is used to create loader table-of-contents for loader archives.
The loader insists that such table-of-contents exist or it complains,
as loading is very slow without these indices.
.BP renice
Is now in section 8.
.BP restor
Is now in section 8.
.BP sdb
Now knows about Pascal as well as C and FORTRAN 77.
.BP spice
Is no longer part of this distribution, and must be obtained separately.
.BP stty
Now has options to control the features of the new tty driver,
summarized in
.IR newtty (4)
and fully described in
.IR tty (4).
In particular, it is often desirable, when using the new driver with
.IR csh (1)
to place the command
``stty crt'' in the
.I \&.login
file to cause control characters to echo legibly and intelligent
erasing of characters from the screen to take place except at very
low speed.
.BP style
Is a new command, which analzes the style in which a paper is written.
.BP sync
Is now in section 8.
.BP tail
Now has a
.B \-f
option which follows a file as it grows, replacing
.B tra,
and a
.B \-r
option, which prints out the last part of a file backwards, line by line.
.BP tar
Now normally saves and (optionally) restores modes of directories.
It also uses the raw tape drive by default, so the file option
is not normally needed.
.BP tp
Has been fixed to work with the tape drive as it should.
.BP tra
Has been deleted; use ``tail \-f'' instead.
.BP tset
Has a more general scheme for mapping non-hardwired terminals to types.
The command used in startup files to set the terminal type can now be
simpler; see
.IR tset (1)
for details.
.BP ul
Subsumes the old ``iul'' command as the option \fB\-i\fR.
.BP units
Currency tables have been updated.
.BP uuencode
Along with
.I uudecode
provide the ability to mail binary files through
.I uucp
or other mail facilities.
.BP vmstat
The format has been changed to include statistics on the rate of system
calls, context switches and device interrupts.  The format also includes
information about page-cache hits (pages of programs which recently exited
which were found lying in the free list.)  See
.IR vmstat (8)
for more details.
.BP vpac
Is now in section 8.
.BP wc
Now will estimate transmission times over communications networks.
.BP yes
A new command, which is excessively obsequious.
.SH
.LG
.ce
Section 2.
.SM
.sp
.PP
The important changes to section 2 define the mechanisms needed to
support the job control facilities of
.IR csh (2)
defining new system calls
.B getpgrp,
.B killpg,
.B setpgrp
and providing a version of the
.B signal
system call interface with clean semantics; this is described in
.IR sigsys (2).
For a general introduction to the new job control facilities from
a programming standpoint see
.IR jobs (3).
.PP
The system calls in section 2 have been identified as to origin:
those in section 2V are peculiar to the VAX Virtual Memory version of
the system.  Some of these (e.g.
.B vread
and
.B vwrite
which are likely to change soon are so marked.)
Calls resulting from the job control facilities are in subsection 2J.
.BP getpgrp
Is a new system call, which returns the process group of a specified process.
.BP ioctl
There is a new
.I ioctl
call FIONREAD which returns the number of characters immediately
available from any readable file descriptor, most usefully terminals.
.BP killpg
Kills all processes in a process group
.BP reboot
Is used to halt the processor or initiate automatic reboots.
.BP setpgrp
Changes the process group of a specified process.
.BP sigsys
There are more signals, needed by the new job control and limit facilities.
This is the new signal interface, which can be setup to handle signals
reliably, blocking them off when they occur so that they can't happen
again before they can be reset and also allowing them to be blocked,
but not lost if they occur (protecting critical sections.)
.BP vadvise
Allows processes with very abnormal paging behavior to advise the system
so that it can have a better chance of dealing with their virtual
memory needs.
.BP vhangup
Is used to simulate hangups on hard-wired ports and to prevent other
users processes from scribbling on a terminal after they log off.
.BP vlimit
Is used to provide the resource limiting
.I limit
facility of
.IR csh (1)
which allows the amount of CPU time or memory used by any process to be
controlled, as well as the maximum size of a file created, maximum
size of a core file created, etc.
.BP vswapon
Is used to inform the system that it should use the interleaved portions
of the paging area, since at boot it normally uses only that portion
of the paging area adjacent to the root file system.
.BP vtimes
Provides additional virtual memory information as well as the
traditional information provided by
.B times.
.BP wait3
Provides options which allow return of
.B vtimes
like information about the virtual memory utilization of terminated
processes as well as allowing one to determine if any children have
changed state without blocking if none have.
.SH
.LG
.ce
Section 3
.SM
.sp
.PP
The major change to the standardly available library routines is in the
standard i/o library handling of the standard output.  The standard output
is now line buffered by default when it is directed to a terminal.
In order that old programs which do terminal i/o continue
to work (in almost every case) without change, the standard i/o library
flushes a partial line in the standard output buffer whenever a read
is made from the standard input.
.BP curses
Is a new library of routines to do terminal independent cursor motions.
This is a higher level set of routines based on the low level
.IR termcap (3).
.BP dbm
Has been changed to use 1024 byte blocks internally.  If you have old data
files and recompile a program which uses
.B dbm
on them, you must recreate the files in the new format.
.BP getfsent
Is a new package of routines for locating entries in the file system
information file,
.B /etc/fstab.
.BP jobs
Is a descriptive page on use of the new job control facilities.
.BP malloc
Hasn't been changed yet (unfortunately), but we have discovered that
it has extremely poor behavior if used to allocate a large number
of blocks in a large virtual address space, as it tends to
page fault on a large number of pages whenever you allocate more
storage when the free list is nearly empty.  Very large applications
should write their own free storage management routines based on
.IR sbrk (2)
until a new version of
.B malloc
is ready.
.BP nlist
The namelist has been changed to embed a string table. 
The definition of the namelist in
.B <a.out.h>
now includes a \fBunion\fR construction which the C compiler will not
let you initialize.  Thus if you wish to use
.B nlist
you should use
.B <nlist.h>
instead of
.B <a.out.h>
as it doesn't include a \fBunion\fR construction and initializations of
\fBstruct nlist\fR objects are thus possible.
.BP rand
Generates different sequences,
due to a bug fix in the C optimizer (i.e. the old routine was
flaked out due to the bug.)
.BP regex
Is a new library routine which allows compilation and execution of
.BR ed -like
regular expressions.
.BP stdio
Has been changed to have line buffered standard output to terminals by
default (as described above).
.BP sigset
Is the user-level interface to the new signal facilities, providing
reliable and convenient handling of signals.
.BP string
The routines \fBstrcatn\fR \fBstrcpyn\fR and \fBstrcmpn\fR are now
decreed to be spelled \fBstrncat\fR, \fBstrncpy\fR and \fBstrncmp\fR
in the official version (to be compatible, e.g., with PDP-11 UNIX),
but both versions still exist (temporarily).
.BP termcap
Is the new name for the previously misnamed \fBtermlib\fR library.
.SH
.LG
.ce
Section 4
.SM
.sp
.PP
The system now supports additional i/o disciplines and devices:
.BP bk
A ``line discipline'' which allows efficient, high-speed, input
for uploading of programs and networking over asynchronous
communications lines.
.BP dh
Abel DMAX-11 dh emulators.
.BP hp
Includes RM-05 support (including the SI MASSBUS disks).
.BP lp
A driver for a standard lineprinter interface.
.BP rv
Racal/vadic call units (via user-software simulation of a dn-11).
.BP tm
Support for UNIBUS TM/11 tape drives (e.g. Kennedy transport
on a Emulex controller.)
.BP tty
Includes a new tty driver which is standard for users of
.IR csh (1)
providing additional functionality.
.BP up
A driver for a EMULEX SC-11 or SC-21 UNIBUS disk controller
with storage module (e.g. Ampex 9300) disk drives.
.BP va
A varian raster plotter.
.SH
.LG
.ce
Section 5
.SM
.sp
.PP
The changes impacting most users are the new archive and object file
formats.  The new object file format requires recompilation of all
\fB\&.o\fR files, as the new format includes a string table for names
while the old table had only fixed space for 8 character names.
The new archive format is portable, and can be easily converted to
using
.IR arcv (8).
.BP a.out
Now includes a string table.  New macros are provided for dealing
with executable files, and the names of the headers and the include
files have been changed.  You should read this section if you have
programs which work with the bits in these files.
.BP acct
The system now maintains all the information fields in this file.
.BP aliases
This file gives forwarding information for mail.
The
.B delivermail
utility, which is invoked by the mail handlers, uses this information
to forward mail and to implement distribution groups.  The program
.B newaliases
must be run whenever this file is edited, since the
.B delivermail
program actually uses a binary version of this file.
.BP ar
Now uses a portable format.  Old formats may be converted using
.IR arcv (8),
although converting old loader archives is pointless, since the \fB.o\fR
files must be regenerated anyways.
.BP core
The maximum size of a core file can now be limited with
.I limit
of
.IR csh (1)
or by calling the system call
.B vlimit.
.BP environ
Has acquired a USER variable with the login name of the user.
.BP fstab
Is a new data structure, kept in the file
.B /etc/fstab;
it greatly simplifies the system startup script
.B /etc/rc,
the interface of the dump program, and is a central
figure in the automatic reboot procedure.  It is possible
to reconfigure the disk drives simply by changing this data base.
No file system dependent commands need appear in
.B /etc/rc.
.BP stab
Describes the symbol table entries for the symbolic debugger which
appear in \fBa.out\fR files.
.BP termcap
Has been changed to describe even more terminals and functions.
.BP ttytype
The standard naming for terminals in this file is now to give long names;
thus dialups should be described as ``dialup'', not as ``sd'' like before.
.BP vfont
There are now rotated versions of all the fonts for use on output devices
which run 11 by 8.5 inch (sideways) paper.  The Hershey fonts have been
extensively edited to fix problems and fill in missing and mangled characters.
.SH
.LG
.ce
Section 6
.SM
.sp
.PP
There are a number of new games, including the popular ZORK game
as well as more mindless and more popular games, such as \fBsnake\fR,
and human-humiliating games such as \fBboggle\fR.
.BP aardvark
Is one of several dungeon-exploration games.
.BP boggle
Is an implementation of the Parker-Brothers game, in which you
and the computer look for words and you are humiliated by the computer.
.BP chess
Is the PDP-11 chess program running in compatibility mode.
.BP cribbage
Is a respectably good cribbage player.
.BP fish
Plays \*(lqGo Fish\*(rq.
.BP fortune
Has been refreshed with new and interesting quotations
and fancy-pants options.
.BP mille
Is an implementation of the French card game, Mille-Bourne.
.BP monop
Is the game of monopoly.
.BP mpu
Is another exploration game.
.BP snake
Is a mindless game in which the computer chases you around the screen and,
usually, ends up eating you.
.BP zork
Is the classic successor to adventure for die-hard explorers.
.br
.ne 10
.SH
.LG
.ce
Section 7
.SM
.sp
.BP hier
Has been updated to reflect changes in this distribution.
.SH
.LG
.ce
Section 8
.SM
.NL
.sp
.PP
There is a major organizational change in section 8: the maintenance
commands have been moved here from what was section 1m (which no longer
exists) and have also (almost all) been moved into the directory
.B /etc.
.PP
The procedures for system reboot have been substantially changed.  The system
now has provisions for automatic reboot and file system repair after a crash.
The system has been changed so that the disks are kept more consistent,
so that the repair program can easily tell whether the inconsistencies
it finds are simple and reasonable to fix.  If it finds unexpected
inconsistencies, then the automatic reboot will fail and the new
.I fsck
interactive repair program can be run.
.BP adduser
There is now a shell procedure
.B vipw
which locks the password file for editing, so that you can't get messed
up by people changing their password while you are adding users.
.BP arcv
Converts to the new archive format (as discussed previously.)
.BP bproc
Is defunct; see
.B reboot
which replaces it.
.BP catman
Is a new command, which creates the preformatted version of the on-line
manual from the nroff source for the manual pages.
It also creates the data base for
.IR whatis (1)
.B /usr/lib/whatis,
replacing
.B makewhatis.
.BP crash
At the point of a system crash, the system now will automatically
reboot itself if the auto-reboot switch on the machine is set, print
the registers and the top few locations of the stack, and
will then normally ``preen'' the file systems and come up multiple user again.
The system does not (yet) automatically dump core to disk when a crash
occurs, so the procedures described in
.B crash
are still used to take a crash dump; in order to get one, you have
to be running with auto-reboot disabled when the crash occurs.
Note that you must now use \fBdd\fR to copy crash tapes, as the
tapes are blocked ``bs=20b''.
.BP cron
Now runs the executed commands as
.B root;
before it ran them as
.B daemon
which kept a number of reasonable
.B crontab
entries from working properly.
.BP dcheck
Is obsoleted, in all normal usage, by
.IR fsck (8).
.BP delivermail
.br
Is a new daemon which acts as a postman and routes mail destined
for foreign networks.  It also interprets distribution, forwarding
and alias lists from the file
.B /usr/lib/aliases,
which replaces the function only partially performed previously in
.B /usr/lib/Mail.rc.
.BP dump
The dump program now is much more robust.  It restarts after bad tapes
are encountered, and will keep a selected group of operators informed
about what it is doing.  A
.B dumpdates
file which is kept in ASCII replaces the old binary format
.B ddates
file, making it easy to edit.
.B Dump
uses the new
.B fstab
file system table which records the desired frequency of dumps, and a
new option \fBw\fR will tell the operators what needs to be dumped.
.BP flcopy
Has a new option \fB\-h\fR to start halfway through, writing a disk
from an existing
.B floppy
file without reading the disk.
.BP fsck
Is a new, intelligent, interactive file system check program.
It is normally run automatically at reboot with the option \fB\-p\fR
to preen all the file systems and fix normal minor incomplete operations.
If any unexpected problems arise, the automatic reboot will fail and
.B fsck
should be run manually.  There is a document explaining the use of
.B fsck
and all the errors which can occur in standard UNIX systems.  Most
errors are prohibited from happening in this version of the system
unless there is hardware or software failure;
.B fsck
was designed with adversity in mind to deal with these exceptional cases
and is very easy to use to fix up addled file systems.
.BP getty
Is the new name for the old \fBgetty.vm\fR.
.BP halt
Halts the processor cleanly when no reboot is desired, regardless
of the setting of the auto-reboot switch on the machine.
.BP icheck
Is largely replaced by
.B fsck.
.BP init
Now understands how to initiate an automatic reboot.  When passed appropriate
information as parameter at boot time, it will immediately run
.B /etc/rc
with parameter
.B autoboot,
causing it to run a disk check.
If
.B /etc/rc
exits with a non-zero exit status, the reboot we be considered a failure,
and a single user shell is given to the console as before.
The form of
.B /etc/rc
is such that interrupting the automatic reboot also yields a single-user
shell on the console.
.B Init
has also been fixed so that ``kill 1'' attempting to bring the system
down single user will not hang irretrievably if some processes refuse
to die because of hardware or software malfunction.  Instead,
.B init
gives a single user shell and a warning that something is amiss.
.BP mkfs
It is critical that all newly created file systems have
.B lost+found
directories as created by...
.BP mklost+found
.br
Which creates empty directories into which
.B fsck
places detached files which it reconnects.
.BP mount
Now takes an option \fB\-a\fR to mount all normally mounted
file systems as specified in
.B /etc/fstab.
.BP ncheck
Is obsoleted in normal usage by
.B fsck.
.BP old
Is a front for a number of old commands dealing with old formats
for \fB.o\fR files and archives.  These commands are kept in
.B /usr/old
and its subdirectories and can be used to keep your sanity until
you have time to convert your programs to the new formats.
.BP reboot
Describes the new reboot procedures, based largely on the automatic
reboot facility.  Also describes the cold-start and emergency-start
procedures (which came from the old
.B bproc
manual page.)
.BP sticky
The system has been changed so that text pages of processes which have exited
are retained in the free page pool in core (at least for a while), so
that they will not have to be read from the disk again if they are needed
quickly.  This tends to make heavily used commands behave much as
.B sticky
was intended to make them behave on swap based systems.
.BP swapon
The system supports paging interleaved across disks and controllers, but
bootstraps running only on one disk.  This command makes the additional
pieces of the paging area available.
.BP umount
Now takes a \fB\-a\fR option, to attempt to unmount all file systems
mentioned in
.B fstab.
.BP vipw
Is a new script which lock the password file while editing it.
If the password file is being changed (e.g. by the
.IR passwd (1)
command), then
.B vipw
complains, and avoid the race condition.

