BSD 4_3 development
[unix-history] / usr / doc / misc / uchanges.4.1
CommitLineData
5ff332e9
C
1.de IR
2\fI\\$1\fR\\$2\\fR\\fR
3..
4.TL
5Bug fixes and changes in 4.1bsd
6.sp
7May 10, 1981
8.AU
9Bill Joy
10.AI
11Computer Systems Research Group
12.AB
13This document describes briefly the changes in the Berkeley system
14for the VAX between the fourth distribution of November 1980 (known originally
15as 4BSD, and hereinafter referred to as 4.0bsd)
16and this, its revision of April 1981.
17It attempts to be summarize, without going into great detail, the
18changes which have been made.
19.AE
20.SH
21.ce
22.LG
23Notable improvements
24.SM
25.sp
26.IP \s+1\(bu\s0
27Performance of the system under heavy paging load has been substantially
28improved by correcting a problem with placement of pre-paged pages.
29The system now pre-pages more data, greatly benefitting processes which
30have locality in their behavior. System degradation due to pre-paging has
31been reduced (even though more pre-paging is done), by placing the pre-paged
32pages as the bottom of the free-list, rather than in the systems global
33clock replacement loop.
34.IP \s+1\(bu\s0
35Processes which serially reference large amounts of virtual memory
36may now declare themselves to be sequential (see
37.IR vadvise (2)),
38causing the paging algorithm to be adjusted to be more appropriate for
39such behavior.*
40.FS
41* Future versions of the system will detect strongly sequential behavior
42and adapt themselves accordingly, so this call will no longer be necessary.
43.FE
44Processes which are known to need only a small amount of memory, but
45which tend to accumulate large amounts of memory due to strange page
46referencing patterns may declare a soft limit on the amount of memory
47to be used, see
48.IR vlimit (2)
49or do ``limit memoryuse \fIn\fR\|k'' in
50.IR csh (1).
51If the system needs memory, and there are processes which are over their
52declared limits, the system tends to take pages from these processes first.
53By saying that these limits are soft, we mean that on a system where
54physical memory is not scarce, processes with limits can still acquire as much
55physical memory as they require.
56.IP \s+1\(bu\s0
57The system is now compiled from a description of the local machine
58which includes information about available devices and the maximum
59number of users to be supported on the system. It is no longer
60necessary to adjust an armful of constants to re-size the system; normal
61time-sharing systems are parameterized from a single ``maxusers'' constant.
62The system also adjusts the parameters of the paging subsystem based
63on available memory; it is no longer necessary to adjust these for machines
64with very small or very large amounts of available memory.
65.IP \s+1\(bu\s0
66The system now handles multiple uba's and mba's and mixing of devices
67on mba's. A number of new devices are supported: RK07's and TS-11's
68which come in the standard 11/750 packages, UNIBUS TM-11 tape emulators
69(e.g. the EMULEX TC-11 with a KENNEDY 9300 transport). Line printer
70and C/A/T phototypesetter drivers are included in the system, and
71modem control for the DH-11 using the DM-11 has been integrated and
72tested. The new RM-80 Winchester drive from DEC is supported.
73Notably unsupported are the 11/750 console casettes.
74A single distribution system boots on all supported hardware configurations
75by determining the available devices and selecting a root device at boot
76time.
77.IP \s+1\(bu\s0
78The \fItar\fR program has been changed to allow update of
79magnetic tape archives, adding to the end of the existing tape
80archive. This uses tape control facilities newly added in this
81version of the system, but the created tapes are readable on
82all versions of UNIX. Since blocked tapes are inherently more
83efficient and fully functional, \fItar\fR now creates blocked tapes by default.
84.IP \s+1\(bu\s0
85Shell scripts are now potentially executable. A file which begins
86with the characters ``#!'' followed by some amount of white space
87and the name of an interpreter is executed directly by the system.
88The standard version 7 shell, /bin/sh, has been changed to recognize
89a # as a comment character. It is desirable that users change
90existing shell script so that the first line of each shell script
91begins with ``#!'' and the name of the proper shell to execute.
92.IP \s+1\(bu\s0
93Two new documents have been added to Volume 2c: a manual for the
94crt screen package \fB\-lcurses\fR, and a document describing the
95\fBrogue\fR game.
96.br
97.ne 10
98.LP
99.LP
100.ce
101.LG
102.B "Major bug fixes"
103.SM
104.sp
105.IP \s+1\(bu\s0
106A number of bugs have been fixed in the FORTRAN compiler F77;
107these caused some block data routiens and main programs to fail to compile.
108Other bugs related to use of the symbolic debugger with FORTRAN
109have been fixed (see \fBf77\fR in ``Section 1'' below.)
110.IP \s+1\(bu\s0
111A bug which caused the C compiler to complain ``expression too complicated''
112when an expression contained an embedded structure assignment has been fixed.
113.IP \s+1\(bu\s0
114A kernel bug which caused approximately 1/8'th of data collected during
115program profiling to be lost has been corrected.
116.IP \s+1\(bu\s0
117A very confusing bug in the \fItset\fR manual page has been corrected:
118in the example where it uses the \fIsetenv\fR command it should rather
119use the \fIset\fR command: ``set noglob; eval ...''. The alternate
120form does not work on a number of terminals.
121.IP \s+1\(bu\s0 4
122Due to a inconsistency between the 11/780 and the 11/750 in the
123interpretation of the \fBmovtuc\fR instruction, all binaries from
124the third distribution tape (of January 1980) and the fourth
125distribution tape (of November 1980) will NOT run correctly on
126the 11/750. The 4.1bsd distribution tape includes a new
127version of the standard i/o
128library which avoids use of this troublesome instruction, and it
129is recommended that all programs be recompiled from scratch to use
130this new library to eliminate non-portable UNIX binaries as soon
131as possible.
132.IP
133The problem is that when there appears to be a chance that the operands
134to \fBmovtuc\fR will overlap, but they in fact do not (because the
135pattern string to printf is terminated by a null), the 11/750 does
136not execute the \fBmovtuc\fR as though a shorter string length
137were specified which did not imply potential overlap. Thus this
138instruction which is in the inner loop of \fIprintf\fR on the 4bsd
139tape, and which works fine on an 11/780, malfunctions on an 11/750
140causing strange and awful behavior.
141.IP \s+1\(bu\s0 4
142(The following change is applicable only to systems bootstrapped
143from the 4.1bsd release tape; systems upgraded from 4.0bsd may
144or may not include this change.)
145The standard i/o library has been made more compatible with the PDP-11
146version 7 system and now supports concurrent read and write access
147to files (see
148.IR fopen (3s)
149for details).
150This caused a change in an internal data structure which is visible
151to compiled programs through the macros in <stdio.h>, and thus
152necessitates discarding of old \fB.o\fR files and recompilation.
153Note that this standard i/o library now replaces the old \fB\-lNS\fR
154library which was in 3bsd but was deleted from 4bsd pending the
155inclusion of read-write capability in stdio.
156.SH
157.LG
158.ce
159Section 1
160.SM
161.sp
162.PP
163.de BP
164.IP \fB\\$1\\fR 11n
165..
166.BP adb
167A bug which prevented programs loaded with the \fB\-N\fR loader
168option from having breakpoints set on them has been fixed.
169A bug which prevented backtraces of programs which are stopped
170at interrupt level (after a signal) has been fixed by teaching
171adb how to step across the interrupt stack frame.
172The system now makes available and the $? command in adb interprets
173more precise codes when SIGILL and SIGFPE exceptions occur.
174Thus if you divide by zero, you can find out that this was what
175caused a floating point exception.
176A bug which prevented format
177repetition counts (e.g. the 10 in ``0/10X'') from working
178has been fixed.
179A bug related to adb has been fixed that prevented any sensible
180traceback after a FORTRAN-77 runtime error which trapped
181an exception or fault (e.g. a floating point divide by 0).
182A bug which caused the maps to be set improperly when debugging
183the kernel on a crash dump has been fixed.
184.IP
185New commands have been added to adb to facilitate writing adb procedures
186stored in files: see the descriptions of $<<, the register <9,
187and the # operator in the revised adb manual page.
188.BP awk
189Has moved from /usr/bin to /bin because it is needed during
190bootstrap procedures.
191.BP bc
192Now takes the new C syntax operators: ``=op'' as well as
193(for history's sake) the old syntax ``op=''.
194.BP calendar
195Several bugs have been fixed in the internals of the calendar program.
196In addition it is now possible to have a calendar entry consisting
197of merely a date (with no month specified) and have this entry occur
198each month.
199.BP cc
200A bug has been fixed in the C optimizer which caused strange
201things to happen when long variable names were used.
202The size of the internal ``dimension'' table has been increased
203to allow more structure fields to be declared.
204A problem which caused the compiler to print ``expression causes
205compiler loop'' when structure assignment was embedded in an
206expression context has been fixed. A bug in the code generator
207tables which affected certain FORTRAN constructs has also been fixed.
208.BP checknr
209Es versteht \fB\-mm\fR.
210.BP csh
211A cosmetic bug which prevented the distributed source from compiling
212has been fixed. A bug which caused argument lists including the strings
213``{'' or ``{}'' to sometimes fail saying ``No match'' has been fixed.
214A bug which caused a strange state to result when a command of the
215form ``(a; b; c)'' was stopped from the keyboard has been fixed.
216The shell has been fixed so that it prefers to make stopped jobs
217the new current jobs after the current job has terminated.
218The construct ``${TERM}'' no longer yields an extra ``}''
219when the variable expanded is from the environment.
220.IP
221Previously undocumented was the shell variable \fIhistchars\fR;
222it can be set to two characters, and the first is then a replacement
223for the normal \fB!\fR history character and the second for the \fB^\fR
224quick history substitution character. Thus after ``set histchars=,;''
225the command ``,,'' repeats the previous command, as ``!!'' would normally
226have done.
227.BP ctags
228Now takes an option
229.B \-v
230to produce output suitable for input to
231.IR vgrind (1).
232.BP cu
233Now honors uucp's locking protocol for the dialout lines.
234Several bugs relating to internal buffer overruns have been fixed.
235An option \fB\-b\fR has been added which causes the BREAK key
236to generate breaks (by turning input null characters into breaks
237sent over the line).
238.BP delivermail
239.br
240Some bugs which caused strange loops when aliases were self-referential
241have been fixed.
242.BP diff
243Some bugs related to directory diffs when the
244.B \-h
245option was used have been fixed; previously the
246.B \-h
247option was non-functional.
248.BP dump
249An obnoxious bug in the dump program where it would wrongly
250suggest that further dump tapes were needed after a multi-tape
251dump had already completed has been fixed. The dump program
252no longer attempts to time tape rewinds itself, but uses
253a mechanism which does not depend on the speed of the tape
254drive to determine when a rewind is complete.
255.BP error
256Has been taught about the error message formats of the
257PDP-11 C compiler.
258.BP expand
259A internal error check which was incorrect has been fixed.
260.BP f77
261Has had a bug fixed which caused some block data subroutines
262and main programs to not compile (the sympton was a diagnostic of
263the form ``Undefined: LWM%d''. A number of minor bugs which
264combined to make sdb function poorly with f77 have been fixed.
265The result of these bugs were that if file names were longer
266than 6 characters sdb could not read the symbol table of the
267resulting FORTRAN binary.
268.IP
269An i/o library bug which caused numbers of the form ``-1.2''
270to convert improperly in list-directed input (reading as ``-0.8'',
271taking the mantissa as positive) has been fixed.
272.BP ld
273If you are using the \fB\-r\fR flag and there remain undefined symbols
274you no longer get a spurious error return. Now respects modes of existing
275files and your file-creation mask more.
276.BP lisp
277The functions +, /, -, *, 1+, 1- now expect fixnum arguments,
278for interpreted functons as well as compiled ones. The source
279for the VMS and UNIX versions of lisp have been combined and
280synchronized. The construction of very large integers has
281been altered to use regular dotted pairs in a non-standard
282way, so that fewer garbage collections will occur. (It is no
283longer safe to use ``car'' and ``cdr'' to disect large
284integers). Mixed-mode arithmetic has been made faster.
285There is a new compiler option (liszt -r) which allows
286you to create
287.B small
288lisp application programs (with a mechanism other than
289``dumplisp'', which tends to create very large binaries).
290When the result of
291such a compilation is executed directly, it execs /usr/ucb/lisp
292and then fast loads the file you asked to be executed.
293A new flag $ldprint has been added to control the printing
294of fasl/load messages.
295New functions (purecopy), (getdata), (putdata),
296and (removeaddress) have been added.
297A number of minor bugs have been fixed.
298.BP lpr
299Has been modified to work on both DECWRITER type devices
300at 1200 baud masquerading as printers and also on real line
301printers. The queueing algorithm has been made first-come-first-serve
302(replacing the old random job first algorithm), and a line
303printer driver is now available in the standard distributed system.
304.BP ls
305A bug has been fixed which caused essentially random numbers to
306be printed for the size of special files. The size now prints as 0.
307.BP make
308A spelling error has been fixed which had the variable EC initialized
309to f77 rather than FC=f77.
310.BP man
311A bug which caused it to core dump when reformatting a manual page
312whose source macros were inaccessible has been fixed.
313.BP mt
314Is a new command
315which provides easy access to operations such as forward and backward spacing
316of files and records on magnetic tape.
317.BP mv
318Has been changed to have a option ``\fB\-\fR'' which means that
319all the following arguments are file names. A bug has been fixed
320which caused strange behaviour when the \fB\-i\fR option was used
321on directories.
322A bug which prevented renaming of subdirectories to which you had no
323write access has been fixed.
324.BP oldcsh
325Which was non-functional due to a change in a internal library
326interface which it had taken advantage of has been fixed to work.
327.BP od
328New options \fBO\fR, \fBX\fR, and \fBD\fR print 32 bit integers
329in octal hex and decimal format; an option \fBw\fR has been
330added to cause 132 column output rather than the default 80 column
331oriented output.
332.BP pc/pi
333A number of bugs in the sdb symbol table produced have been fixed.
334Structured types may now exceed 65k bytes in size, but in that case
335may not be passed by value nor assigned by simple assignment.
336Structured types are properly returned from recursive functions.
337Minor bugs in passing function parameters have been fixed, and
338there still exist some more minor bugs here.
339Runtime tests can be now be enabled or disabled on a per routine basis.
340Runtime checks are now done properly on builtin functions.
341Warnings (or standards violations) are now produced for extensions
342to the language. Some inconsistencies in dealing with running out of
343memory have been fixed.
344.IP
345Some bugs are known: invoking a formal routine from inside a formal
346invocation of the same routine will mess up.
347In pc only: linking seperately compiled modules from other than the
348current directory only works if you give full path names (or the same
349relative paths) for the compilation and the linking.
350.IP
351Some changes are planned soon:
352for-loop variables and with pointers will be allocated to registers.
353The formal routine syntax is currently as in Jensen and Wirth, but
354will soon be changed to the the syntax of the proposed standards,
355in which parameters to formals must be given.
356It is planned that \fBpc\fR will soon do compile time constant folding.
357.BP pmerge
358Is a new program which can convert large Pascal programs back into a
359single file, eliminating the header files and separate source files
360normally used for separate compilation.
361.BP prof
362A bug which caused prof to loop when a file-static function was
363profiled has been fixed. A bug in the kernel which caused the
364results of prof to be inaccurate has also been fixed.
365.BP ps
366Has been changed to work with the new kernel and is no longer
367dependent on system sizing; thus it is no longer necessary to
368recompile ps when the system tables are made larger. A bug
369in the \fBs\fR option which caused the computed stack size
370to be a constant 512 bytes too large has been fixed.
371The ``STAT'' field now shows ``>'' in the second position for programs
372which are using more memory than their \fImemoryuse\fR limit (see
373.IR vlimit (2)).
374It also shows ``S'' in the fourth position for processes which have
375declared themselves to be strongly sequential (see
376.IR vadvise (2)).
377Under the \fBv\fR option, the SWRSS field has been replaced by a new
378field ``LIM'' which shows the limit on \fImemoryuse\fR if there is a limit,
379or \fIxx\fR if there is not.
380.BP px
381Is now written in C, is much more portable, and shares the runtime library
382used by the compiler. It is, unfortunately, somewhat slower now.
383.BP ranlib
384No longer considers it a fatal error that an archive member defines
385no symbols.
386.BP reset
387Has been changed to invoke the command
388.RS
389.IP
390.B "tset \-Q \-I"
391.RE
392.IP
393so that all terminal modes will be reset.
394.BP rm
395Now has a
396.B \-
397option to indicate that all the following
398parameters are to be treated as file names.
399It can be used when file names begin with ``\fB\-''.
400.BP rmdir
401Now works correctly when arguments end in one or more ``/'' characters.
402.BP sdb
403Has been fixed to be able to deal with ``interrupt-stack-frames'',
404so that it is possible to set breakpoints on and get backtraces
405from routines called while a signal is being processed.
406Now handles binaries which are mode 0407 (resulting from ``ld \-N'')
407properly.
408.BP sh
409Has been changed so that ``#'' begins a comment.
410Shell scripts to be executed by /bin/sh should begin
411``#! /bin/sh'' on the first line.
412.BP tar
413Now defaults to blocked tape and can update blocked tapes (finally!).
414When reading tape tar defaults to the raw tape and figures out
415what is going on with blocksize so it need not be specified.
416Thus the only commands which should be needed are the simple ``tar t'',
417``tar c'', ``tar u'' and ``tar x''.
418.BP uusend
419Now uses the \fB\-r\fR option of \fIuux\fR to prevent presenting
420extreme load to the connected system.
421.BP vmstat
422Has been changed so that the system's device names are printed
423for the disks rather than D0, D1, D2, D3. The old format output
424of the
425.B \-i
426option is no longer available.
427.IP
428The fields related to paging activity are now all
429given in pages (of 1024 bytes). In particular, the fields ``pi''
430and ``po'' which previously showed the number of pagein and pageout
431events now show pages, and ``sr'' which previously gave the clock
432scan rate in revolutions-per-minute now gives the scan rate in pages
433scanned per second. To provide the extra space needed to present this
434information, the swap in/out information, which was only marginally
435interesting, is no longer printed.
436.BP w
437Has been modified so that it no longer needs to be recompiled
438when the kernel tables change in size.
439.BP wall
440Now checks that the message is not too long for its internal buffer,
441rather than just overrunning the buffer. It handles running out
442of processes by pausing, so it is possible to use it when there
443are more than 25 users logged in and you are not the super-user.
444It also gives the machine name you are on in the broadcast messages.
445.BP who
446``Who am I'' now prints your machine and login name (the first
447word of its output) in a format suitable for use with uucp.
448.BP write
449Now checks that you do not have write permission disabled
450and doesn't let you write to someone if they can't write back.
451.SH
452.LG
453.ce
454Section 2.
455.SM
456.sp
457.BP intro
458Now correctly reflects that argument lists may be upto 10240 characters
459long.
460.BP exec
461Has been changed so that if a file being executed
462begins with the magic characters #!, the rest of the line is understood
463to be the name of an interpreter for the executed file.
464Previously (and in fact still) the shell did much of this job;
465it automatically executed itself on a text file with executable mode
466when the text file's name was typed as a command.
467Putting the facility into the system gives the following
468benefits.
469.RS
470.IP 1)
471It makes shell scripts more like real executable files,
472because they can be the subject of 'exec.'
473.IP 2)
474If you do a 'ps' while such a command is running, its real
475name appears instead of 'sh'.
476Likewise, accounting is done on the basis of the real name.
477.IP 3)
478Shell scripts can be set-user-ID.
479.IP 4)
480It is simpler to have alternate shells available;
481e.g. if you like the Berkeley \fIcsh\fR there is no question about
482which shell is to interpret a file.
483.IP 5)
484It will allow other interpreters to fit in more smoothly.
485.RE
486.IP
487To take advantage of this wonderful opportunity,
488put
489.DS
490#! /bin/sh
491.DE
492.IP
493at the left margin of the first line of your shell scripts.
494Blanks after ! are OK. Use a complete pathname (no search is done).
495At the moment the whole line is restricted to 32 characters.
496A single argument may be specified for the interpreter, thus:
497.DS
498#! /bin/csh \-f
499.DE
500.IP
501is very useful, avoiding reading \fI.cshrc\fR which is often
502not wanted.
503.BP kill
504Has been changed so that when broadcasting signals universally
505the signal being broadcast is not sent to the broadcaster.
506This is used by the
507.IR halt (8),
508.IR shutdown (8),
509and
510.IR reboot (8)
511commands.
512.BP reboot
513Has been changed to reflect the now more limited number
514of option flags available to the system call due to the
515nature of the console interface on the VAX 11/750.
516.BP sigsys
517Reflects the fact that the system now passes in to a signal
518handler an indication of what exception really happened when
519a SIGFPE or SIGILL is generated. The call interface at the
520point of a signal handler call is now specified.
521.PP
522.SH
523.LG
524.ce
525Section 3
526.SM
527.sp
528.PP
529.BP curses
530A large number of bug fixes have been incorporated,
531and the documentation has been greatly improved.
532The library is now much more solid than that originally distributed.
533.BP fopen
534Reflects the new open options which allow simultaneous read-write
535to files; these extensions are being incorporated to bring
536compatibility with the standard version 7 PDP-11 UNIX and to
537replace the (now defunct) \fB\-lNS\fR.
538.BP printf
539A bug in the documentation which incorrectly stated that a %c format
540would not put out a null character has been fixed.
541.SH
542.LG
543.ce
544Section 4
545.SM
546.sp
547.PP
548The system now supports a number of new devices and has capability
549for detecting the device's presence and interrupt vectors at boot time.
550The system also has capability to do device location at boot time
551so that a system description as supplied to
552.IR config (8)
553can take advantage of available hardware redundancy.
554.PP
555Each configurable device driver in this section now includes
556a SYNOPSIS giving sample lines to be included in a system
557configuration. Drivers also indicate the error messages
558which they produce and describe each error.
559.PP
560.BP ct
561A driver for a C/A/T phototypesetter interface.
562.BP dh
563Now includes handling of dm-11 modem control hardware.
564Optional flags to the configuration program can also be
565given to supply hardware carrier easily for lines where
566wiring is inadequate.
567.BP hp
568Includes rm80 support.
569.BP lp
570Drives standard line printers, and has been improved to
571cut the interrupt load by a factor of 20.
572.BP mt
573Describes the standard tape drive interface, which now includes
574.B ioctl
575operations for raw magtape allowing such standard operations
576as forward and backward spacing over files and records, writing
577of end-of-file marks, rewinds, rewinding and offlining,
578and sensing of tape status.
579These operations are used by the
580.IR mt (1)
581program which can be used to easily manipulate tape files,
582and by the
583.IR tar (1)
584program to allow updates to blocked tapes.
585.BP tm
586Supports the UNIBUS TM/11 emulating tape controllers (e.g. EMULEX TC-11
587with a KENNEDY 9300 drive).
588.BP ts
589Supports the UNIBUS TS/11 tape drive and transport.
590.BP tty
591Now provides a LDECCTLQ option which causes ^S and ^Q to function
592as necessary for the VT100 to work properly.
593.BP up
594A driver for a EMULEX SC-11 or SC-21 UNIBUS disk controller
595with storage module (e.g. Ampex 9300) disk drives.
596.BP va
597A varian raster plotter.
598.SH
599.LG
600.ce
601Section 5
602.SM
603.sp
604.ce
605No changes.
606.SH
607.LG
608.ce
609Section 6
610.SM
611.sp
612.PP
613.BP chase
614Is a game where robots try to eat you.
615.BP hangman
616Is now screen oriented.
617.BP rain
618Drops keep falling on my head.
619.BP rogue
620Is a new and very popular screen-oriented game,
621see
622.IR rogue (6)
623or
624``A Guide to the Dungeons of Doom.''
625.BP worm
626Is a game where you see how long you can get the worm to grow.
627.BP worms
628Is an amusement where the worms chase each other around the screen.
629.SH
630.LG
631.ce
632Section 7
633.SM
634.sp
635.ce
636No changes.
637.SH
638.LG
639.ce
640Section 8
641.SM
642.NL
643.PP
644Major changes affecting system operations include:
645.IP *
646The system is configured from a single per-cpu specification
647file which includes all locally relevant information: desired
648devices, size of the maximum user load, timezone information, etc.
649The system determines at boot time the size of the file system
650buffer cache based on the amount of physical memory available
651and sizes the system data structures based on the specification
652of the maximum number of active users; it is no longer necessary
653to juggle an armful of constants to enlarge the system.
654The sizes of system tables are no longer compiled into programs
655such as
656.B ps
657and
658.B w.
659.IP *
660System error log information is saved across system crashes provided
661no power failure occurs, as the error log is kept in-core in the
662last 1024 bytes of memory.
663.\"Error messages to the console are in a new standard format, reminiscent
664.\"of Dave Presotto's speech pattern... they begin with a word, a laugh
665.\"encoded as `:' and go on wittily from there to speak the truth.
666Error messages to the console are in a standard format, of the form:
667.RS
668device: message
669.RE
670.IP
671Messages have error registers decoded as bits, so that they are
672readable, and no-longer refer to devices by their major/minor device
673numbers, rather using device names. Error messages about file
674system problems (device full, out of inodes, etc) are referred to
675with the mounted file system name, and a message is sent directly
676to a user if his/her process writes to a file system when it is full.
677All error diagnostics printed by drivers are documented in section 4
678of the manual.
679.IP *
680DEC standard bad block forwarding is supported on all DEC disks
681except the RP06; the code which implements this can be easily
682moved into the drivers for the UNIBUS storage module disks; this is planned.
683.IP *
684Core dumps are saved after system crashes automatically as the system
685writes a core image to a portion of the swap area from which it
686is recovered after reboot. The system then transfers these core
687images to a specified UNIX directory, saving also the version of
688the system associated with the crash. The system also maintains
689an error log
690.B /usr/adm/shutdownlog
691which records all system crashes and reboots with the information
692about the causes.
693.sp
694.PP
695.BP analyze
696Now has an option
697.B \-u
698to print page numbers of the u. areas.
699A bug which prevented the distributed
700.B analyze
701from working has been fixed.
702.BP bad144
703Is a new program which prints out the DEC-standard bad block
704information for a disk, or puts it back if it gets clobbered.
705The name of the program comes from the fact that the program
706deals with ``DEC standard 144'' format.
707.BP badsect
708Creates a file in a file system which contains a specified disk
709sector of that file system. This is a primitive way of dealing
710with bad sectors, but works on drivers which don't (yet) have bad
711block forwarding according to the standard.
712.BP getty
713No longer prints ``Virtual'' in front of the system
714identification, since there are no swap systems in sight anymore.
715.BP halt
716Now properly shuts down the system; see \fBreboot\fR below for details.
717.BP icheck
718Now properly sets the \fItfree\fR field in the super-block.
719.BP init
720Now interacts with \fBhalt\fR, \fBreboot\fR and \fBshutdown\fR
721to bring about orderly system shutdowns.
722No longer writes entries in the /usr/adm/wtmp accounting file when
723a \fIgetty\fR process dies without a user logging in on a terminal.
724Prints a warning message (on the console) if a terminal exists,
725is enabled, but the open returns an error, and waits for terminal
726to be openable, checking each minute, to prevent thrashing in this case.
727.BP last
728Now distinguishes between system shutdowns and system crashes.
729.BP lastcomm
730A bug causing a core dump if user id's not present in the
731password file were encountered has been fixed.
732.BP login
733Now interacts with the shutdown command to forbid logins (except
734by the super-user) in the last 5 minutes before a shutdown (detected
735by the presence of the file /etc/nologin, which also contains a
736message about why the system is shutting down which is presented
737to the rejected users.)
738Implements a notion of ``secure terminals''; if the file /etc/securetty
739exists, then it should contain a list of the secure terminals
740where root is allowed to login. If this file does not exist,
741then root can log in anywhere, as before.
742If a user tries to login but can't get to their home directory
743they are left in the root directory and warned, so that they
744have some chance to send mail about or fix the problem themselves.
745If a file \fI.hushlogin\fR exists in a users home directory
746the the message of the day and other such information designed for
747human users will not be printed at login time. This is specifically
748designed for the user \fIuucp\fR which is another computer
749and just ignores such stuff anyways.
750Finally a bug has been fixed which cause \fBlogin\fR to core
751dump if there were tabs in the file /etc/ttytype.
752.BP mkfs
753Now works properly when given a \fIproto\fR argument;
754previously it complained because it didn't know that the format
755of the file /usr/mdec/uboot had been changed.
756.BP pstat
757Has new flags \fB\-m\fR and \fB\-g\fR which interpret the multiplexor
758data structures.
759.BP reboot
760Now shuts the system down cleanly, stopping all system activity before
761initiating the reboot procedure. Normally, however, the new
762.B shutdown
763command is used to take the system down, notifying the users of the
764impending downtime.
765The options
766.B \-s
767and
768.B \-a
769options to reboot are no longer available, as it will not be
770possible to provide them on all VAX cpu's due to the way the
771console interface works. Instead, you can halt the processor
772using
773.B halt
774which puts the system into a tight loop, and then perform the
775desired reboot sequence manually at the console. This works
776on both 11/750 and 11/780 processors.
777.BP renice
778Has been modified for the new kernel and is no longer dependent
779on system configuration parameters; it no longer
780needs to be recompiled when system table sizes change.
781.BP restor
782Now properly handles the case where dump files are contained
783in dump tapes; previously the end of the embedded dump would
784confuse \fBrestor\fR and cause the rest of the dump tape to be
785inaccessible.
786.BP sa
787Now correctly handles an arbitrary number of commands and users.
788Two new options have been added \fB\-v\fR and \fB\-f\fR giving
789it a googol+2 options. See
790.IR sa (8)
791for details.
792.BP savecore
793Is a new program which runs after a reboot to save
794check to see if the system had crashed and, if it had,
795to save any core image which was successfully written to
796the paging area.
797See
798.IR savecore (8)
799for a full description.
800.BP shutdown
801Is a new command which shuts the system down at a specified time.
802It broadcasts messages to users warning them as the downtime approaches,
803records the reason for the reboot in a log file,
804and cooperates with init in a cleanly shutdown (e.g. during
805the last 2 minutes of system operation, users attempting
806to log in are told that the system is going down and the reason
807for the shutdown but not allowed to log in.)
808