|
|
Line 1: |
Line 1: |
− | Naturally this pertains to [[4.1 BSD]]
| + | #Redirect [[Bug fixes and changes in 4.1bsd]] |
− | | |
− | <pre>
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | Bug fixes and changes in 4.1bsd
| |
− | | |
− | May 10, 1981
| |
− | | |
− | | |
− | Bill Joy
| |
− | | |
− | Computer Systems Research Group
| |
− | | |
− | | |
− | ABSTRACT
| |
− | | |
− | This document describes briefly the changes
| |
− | in the Berkeley system for the VAX between the
| |
− | fourth distribution of November 1980 (known origi-
| |
− | nally as 4BSD, and hereinafter referred to as
| |
− | 4.0bsd) and this, its revision of April 1981. It
| |
− | attempts to be summarize, without going into great
| |
− | detail, the changes which have been made.
| |
− | | |
− | | |
− | | |
− | Notable improvements
| |
− | | |
− | | |
− | + Performance of the system under heavy paging load has
| |
− | been substantially improved by correcting a problem
| |
− | with placement of pre-paged pages. The system now
| |
− | pre-pages more data, greatly benefitting processes
| |
− | which have locality in their behavior. System degrada-
| |
− | tion due to pre-paging has been reduced (even though
| |
− | more pre-paging is done), by placing the pre-paged
| |
− | pages as the bottom of the free-list, rather than in
| |
− | the systems global clock replacement loop.
| |
− | | |
− | + Processes which serially reference large amounts of
| |
− | virtual memory may now declare themselves to be sequen-
| |
− | tial (see vadvise(2)), causing the paging algorithm to
| |
− | be adjusted to be more appropriate for such behavior.*
| |
− | Processes which are known to need only a small amount
| |
− | of memory, but which tend to accumulate large amounts
| |
− | of memory due to strange page referencing patterns may
| |
− | declare a soft limit on the amount of memory to be
| |
− | used, see vlimit(2) or do ``limit memoryuse nk'' in
| |
− | csh(1). If the system needs memory, and there are
| |
− | processes which are over their declared limits, the
| |
− | __________________________
| |
− | * Future versions of the system will detect strongly
| |
− | sequential behavior and adapt themselves accordingly,
| |
− | so this call will no longer be necessary.
| |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 2 -
| |
− | | |
− | | |
− | system tends to take pages from these processes first.
| |
− | By saying that these limits are soft, we mean that on a
| |
− | system where physical memory is not scarce, processes
| |
− | with limits can still acquire as much physical memory
| |
− | as they require.
| |
− | | |
− | + The system is now compiled from a description of the
| |
− | local machine which includes information about avail-
| |
− | able devices and the maximum number of users to be sup-
| |
− | ported on the system. It is no longer necessary to
| |
− | adjust an armful of constants to re-size the system;
| |
− | normal time-sharing systems are parameterized from a
| |
− | single ``maxusers'' constant. The system also adjusts
| |
− | the parameters of the paging subsystem based on avail-
| |
− | able memory; it is no longer necessary to adjust these
| |
− | for machines with very small or very large amounts of
| |
− | available memory.
| |
− | | |
− | + The system now handles multiple uba's and mba's and
| |
− | mixing of devices on mba's. A number of new devices
| |
− | are supported: RK07's and TS-11's which come in the
| |
− | standard 11/750 packages, UNIBUS TM-11 tape emulators
| |
− | (e.g. the EMULEX TC-11 with a KENNEDY 9300 transport).
| |
− | Line printer and C/A/T phototypesetter drivers are
| |
− | included in the system, and modem control for the DH-11
| |
− | using the DM-11 has been integrated and tested. The
| |
− | new RM-80 Winchester drive from DEC is supported. Not-
| |
− | ably unsupported are the 11/750 console casettes. A
| |
− | single distribution system boots on all supported
| |
− | hardware configurations by determining the available
| |
− | devices and selecting a root device at boot time.
| |
− | | |
− | + The tar program has been changed to allow update of
| |
− | magnetic tape archives, adding to the end of the exist-
| |
− | ing tape archive. This uses tape control facilities
| |
− | newly added in this version of the system, but the
| |
− | created tapes are readable on all versions of UNIX.
| |
− | Since blocked tapes are inherently more efficient and
| |
− | fully functional, tar now creates blocked tapes by
| |
− | default.
| |
− | | |
− | + Shell scripts are now potentially executable. A file
| |
− | which begins with the characters ``#!'' followed by
| |
− | some amount of white space and the name of an inter-
| |
− | preter is executed directly by the system. The stan-
| |
− | dard version 7 shell, /bin/sh, has been changed to
| |
− | recognize a # as a comment character. It is desirable
| |
− | that users change existing shell script so that the
| |
− | first line of each shell script begins with ``#!'' and
| |
− | the name of the proper shell to execute.
| |
− | | |
− | + Two new documents have been added to Volume 2c: a
| |
− | manual for the crt screen package -lcurses, and a docu-
| |
− | ment describing the rogue game.
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 3 -
| |
− | | |
− | | |
− | Major bug fixes
| |
− | | |
− | | |
− | + A number of bugs have been fixed in the FORTRAN com-
| |
− | piler F77; these caused some block data routiens and
| |
− | main programs to fail to compile. Other bugs related
| |
− | to use of the symbolic debugger with FORTRAN have been
| |
− | fixed (see f77 in ``Section 1'' below.)
| |
− | | |
− | + A bug which caused the C compiler to complain ``expres-
| |
− | sion too complicated'' when an expression contained an
| |
− | embedded structure assignment has been fixed.
| |
− | | |
− | + A kernel bug which caused approximately 1/8'th of data
| |
− | collected during program profiling to be lost has been
| |
− | corrected.
| |
− | | |
− | + A very confusing bug in the tset manual page has been
| |
− | corrected: in the example where it uses the setenv com-
| |
− | mand it should rather use the set command: ``set
| |
− | noglob; eval ...''. The alternate form does not work
| |
− | on a number of terminals.
| |
− | | |
− | + Due to a inconsistency between the 11/780 and the 11/750
| |
− | in the interpretation of the movtuc instruction, all
| |
− | binaries from the third distribution tape (of January
| |
− | 1980) and the fourth distribution tape (of November
| |
− | 1980) will NOT run correctly on the 11/750. The 4.1bsd
| |
− | distribution tape includes a new version of the standard
| |
− | i/o library which avoids use of this troublesome
| |
− | instruction, and it is recommended that all programs be
| |
− | recompiled from scratch to use this new library to elim-
| |
− | inate non-portable UNIX binaries as soon as possible.
| |
− | | |
− | The problem is that when there appears to be a chance
| |
− | that the operands to movtuc will overlap, but they in
| |
− | fact do not (because the pattern string to printf is
| |
− | terminated by a null), the 11/750 does not execute the
| |
− | movtuc as though a shorter string length were specified
| |
− | which did not imply potential overlap. Thus this
| |
− | instruction which is in the inner loop of printf on the
| |
− | 4bsd tape, and which works fine on an 11/780, malfunc-
| |
− | tions on an 11/750 causing strange and awful behavior.
| |
− | | |
− | + (The following change is applicable only to systems
| |
− | bootstrapped from the 4.1bsd release tape; systems
| |
− | upgraded from 4.0bsd may or may not include this
| |
− | change.) The standard i/o library has been made more
| |
− | compatible with the PDP-11 version 7 system and now sup-
| |
− | ports concurrent read and write access to files (see
| |
− | fopen(3s) for details). This caused a change in an
| |
− | internal data structure which is visible to compiled
| |
− | programs through the macros in , and thus
| |
− | necessitates discarding of old .o files and
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 4 -
| |
− | | |
− | | |
− | recompilation. Note that this standard i/o library now
| |
− | replaces the old -lNS library which was in 3bsd but was
| |
− | deleted from 4bsd pending the inclusion of read-write
| |
− | capability in stdio.
| |
− | | |
− | Section 1
| |
− | | |
− | | |
− | | |
− | adb A bug which prevented programs loaded with the -N
| |
− | loader option from having breakpoints set on them
| |
− | has been fixed. A bug which prevented backtraces
| |
− | of programs which are stopped at interrupt level
| |
− | (after a signal) has been fixed by teaching adb
| |
− | how to step across the interrupt stack frame.
| |
− | The system now makes available and the $? command
| |
− | in adb interprets more precise codes when SIGILL
| |
− | and SIGFPE exceptions occur. Thus if you divide
| |
− | by zero, you can find out that this was what
| |
− | caused a floating point exception. A bug which
| |
− | prevented format repetition counts (e.g. the 10
| |
− | in ``0/10X'') from working has been fixed. A bug
| |
− | related to adb has been fixed that prevented any
| |
− | sensible traceback after a FORTRAN-77 runtime
| |
− | error which trapped an exception or fault (e.g. a
| |
− | floating point divide by 0). A bug which caused
| |
− | the maps to be set improperly when debugging the
| |
− | kernel on a crash dump has been fixed.
| |
− | | |
− | New commands have been added to adb to facilitate
| |
− | writing adb procedures stored in files: see the
| |
− | descriptions of $<<, the register <9, and the #
| |
− | operator in the revised adb manual page.
| |
− | | |
− | awk Has moved from /usr/bin to /bin because it is
| |
− | needed during bootstrap procedures.
| |
− | | |
− | bc Now takes the new C syntax operators: ``=op'' as
| |
− | well as (for history's sake) the old syntax
| |
− | ``op=''.
| |
− | | |
− | calendar Several bugs have been fixed in the internals of
| |
− | the calendar program. In addition it is now pos-
| |
− | sible to have a calendar entry consisting of
| |
− | merely a date (with no month specified) and have
| |
− | this entry occur each month.
| |
− | | |
− | cc A bug has been fixed in the C optimizer which
| |
− | caused strange things to happen when long vari-
| |
− | able names were used. The size of the internal
| |
− | ``dimension'' table has been increased to allow
| |
− | more structure fields to be declared. A problem
| |
− | which caused the compiler to print ``expression
| |
− | causes compiler loop'' when structure assignment
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 5 -
| |
− | | |
− | | |
− | was embedded in an expression context has been
| |
− | fixed. A bug in the code generator tables which
| |
− | affected certain FORTRAN constructs has also been
| |
− | fixed.
| |
− | | |
− | checknr Es versteht -mm.
| |
− | | |
− | csh A cosmetic bug which prevented the distributed
| |
− | source from compiling has been fixed. A bug
| |
− | which caused argument lists including the strings
| |
− | ``{'' or ``{}'' to sometimes fail saying ``No
| |
− | match'' has been fixed. A bug which caused a
| |
− | strange state to result when a command of the
| |
− | form ``(a; b; c)'' was stopped from the keyboard
| |
− | has been fixed. The shell has been fixed so that
| |
− | it prefers to make stopped jobs the new current
| |
− | jobs after the current job has terminated. The
| |
− | construct ``${TERM}'' no longer yields an extra
| |
− | ``}'' when the variable expanded is from the
| |
− | environment.
| |
− | | |
− | Previously undocumented was the shell variable
| |
− | histchars; it can be set to two characters, and
| |
− | the first is then a replacement for the normal !
| |
− | history character and the second for the ^ quick
| |
− | history substitution character. Thus after ``set
| |
− | histchars=,;'' the command ``,,'' repeats the
| |
− | previous command, as ``!!'' would normally have
| |
− | done.
| |
− | | |
− | ctags Now takes an option -v to produce output suitable
| |
− | for input to vgrind(1).
| |
− | | |
− | cu Now honors uucp's locking protocol for the
| |
− | dialout lines. Several bugs relating to internal
| |
− | buffer overruns have been fixed. An option -b
| |
− | has been added which causes the BREAK key to gen-
| |
− | erate breaks (by turning input null characters
| |
− | into breaks sent over the line).
| |
− | | |
− | delivermail
| |
− | Some bugs which caused strange loops when aliases
| |
− | were self-referential have been fixed.
| |
− | | |
− | diff Some bugs related to directory diffs when the -h
| |
− | option was used have been fixed; previously the
| |
− | -h option was non-functional.
| |
− | | |
− | dump An obnoxious bug in the dump program where it
| |
− | would wrongly suggest that further dump tapes
| |
− | were needed after a multi-tape dump had already
| |
− | completed has been fixed. The dump program no
| |
− | longer attempts to time tape rewinds itself, but
| |
− | uses a mechanism which does not depend on the
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 6 -
| |
− | | |
− | | |
− | speed of the tape drive to determine when a
| |
− | rewind is complete.
| |
− | | |
− | error Has been taught about the error message formats
| |
− | of the PDP-11 C compiler.
| |
− | | |
− | expand A internal error check which was incorrect has
| |
− | been fixed.
| |
− | | |
− | f77 Has had a bug fixed which caused some block data
| |
− | subroutines and main programs to not compile (the
| |
− | sympton was a diagnostic of the form ``Undefined:
| |
− | LWM%d''. A number of minor bugs which combined
| |
− | to make sdb function poorly with f77 have been
| |
− | fixed. The result of these bugs were that if
| |
− | file names were longer than 6 characters sdb
| |
− | could not read the symbol table of the resulting
| |
− | FORTRAN binary.
| |
− | | |
− | An i/o library bug which caused numbers of the
| |
− | form ``-1.2'' to convert improperly in list-
| |
− | directed input (reading as ``-0.8'', taking the
| |
− | mantissa as positive) has been fixed.
| |
− | | |
− | ld If you are using the -r flag and there remain
| |
− | undefined symbols you no longer get a spurious
| |
− | error return. Now respects modes of existing
| |
− | files and your file-creation mask more.
| |
− | | |
− | lisp The functions +, /, -, *, 1+, 1- now expect fix-
| |
− | num arguments, for interpreted functons as well
| |
− | as compiled ones. The source for the VMS and
| |
− | UNIX versions of lisp have been combined and syn-
| |
− | chronized. The construction of very large
| |
− | integers has been altered to use regular dotted
| |
− | pairs in a non-standard way, so that fewer gar-
| |
− | bage collections will occur. (It is no longer
| |
− | safe to use ``car'' and ``cdr'' to disect large
| |
− | integers). Mixed-mode arithmetic has been made
| |
− | faster. There is a new compiler option (liszt
| |
− | -r) which allows you to create small lisp appli-
| |
− | cation programs (with a mechanism other than
| |
− | ``dumplisp'', which tends to create very large
| |
− | binaries). When the result of such a compilation
| |
− | is executed directly, it execs /usr/ucb/lisp and
| |
− | then fast loads the file you asked to be exe-
| |
− | cuted. A new flag $ldprint has been added to
| |
− | control the printing of fasl/load messages. New
| |
− | functions (purecopy), (getdata), (putdata), and
| |
− | (removeaddress) have been added. A number of
| |
− | minor bugs have been fixed.
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 7 -
| |
− | | |
− | | |
− | lpr Has been modified to work on both DECWRITER type
| |
− | devices at 1200 baud masquerading as printers and
| |
− | also on real line printers. The queueing algo-
| |
− | rithm has been made first-come-first-serve
| |
− | (replacing the old random job first algorithm),
| |
− | and a line printer driver is now available in the
| |
− | standard distributed system.
| |
− | | |
− | ls A bug has been fixed which caused essentially
| |
− | random numbers to be printed for the size of spe-
| |
− | cial files. The size now prints as 0.
| |
− | | |
− | make A spelling error has been fixed which had the
| |
− | variable EC initialized to f77 rather than
| |
− | FC=f77.
| |
− | | |
− | man A bug which caused it to core dump when reformat-
| |
− | ting a manual page whose source macros were inac-
| |
− | cessible has been fixed.
| |
− | | |
− | mt Is a new command which provides easy access to
| |
− | operations such as forward and backward spacing
| |
− | of files and records on magnetic tape.
| |
− | | |
− | mv Has been changed to have a option ``-'' which
| |
− | means that all the following arguments are file
| |
− | names. A bug has been fixed which caused strange
| |
− | behaviour when the -i option was used on direc-
| |
− | tories. A bug which prevented renaming of sub-
| |
− | directories to which you had no write access has
| |
− | been fixed.
| |
− | | |
− | oldcsh Which was non-functional due to a change in a
| |
− | internal library interface which it had taken
| |
− | advantage of has been fixed to work.
| |
− | | |
− | od New options O, X, and D print 32 bit integers in
| |
− | octal hex and decimal format; an option w has
| |
− | been added to cause 132 column output rather than
| |
− | the default 80 column oriented output.
| |
− | | |
− | pc/pi A number of bugs in the sdb symbol table produced
| |
− | have been fixed. Structured types may now exceed
| |
− | 65k bytes in size, but in that case may not be
| |
− | passed by value nor assigned by simple assign-
| |
− | ment. Structured types are properly returned
| |
− | from recursive functions. Minor bugs in passing
| |
− | function parameters have been fixed, and there
| |
− | still exist some more minor bugs here. Runtime
| |
− | tests can be now be enabled or disabled on a per
| |
− | routine basis. Runtime checks are now done prop-
| |
− | erly on builtin functions. Warnings (or stan-
| |
− | dards violations) are now produced for extensions
| |
− | to the language. Some inconsistencies in dealing
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 8 -
| |
− | | |
− | | |
− | with running out of memory have been fixed.
| |
− | | |
− | Some bugs are known: invoking a formal routine
| |
− | from inside a formal invocation of the same rou-
| |
− | tine will mess up. In pc only: linking
| |
− | seperately compiled modules from other than the
| |
− | current directory only works if you give full
| |
− | path names (or the same relative paths) for the
| |
− | compilation and the linking.
| |
− | | |
− | Some changes are planned soon: for-loop variables
| |
− | and with pointers will be allocated to registers.
| |
− | The formal routine syntax is currently as in Jen-
| |
− | sen and Wirth, but will soon be changed to the
| |
− | the syntax of the proposed standards, in which
| |
− | parameters to formals must be given. It is
| |
− | planned that pc will soon do compile time con-
| |
− | stant folding.
| |
− | | |
− | pmerge Is a new program which can convert large Pascal
| |
− | programs back into a single file, eliminating the
| |
− | header files and separate source files normally
| |
− | used for separate compilation.
| |
− | | |
− | prof A bug which caused prof to loop when a file-
| |
− | static function was profiled has been fixed. A
| |
− | bug in the kernel which caused the results of
| |
− | prof to be inaccurate has also been fixed.
| |
− | | |
− | ps Has been changed to work with the new kernel and
| |
− | is no longer dependent on system sizing; thus it
| |
− | is no longer necessary to recompile ps when the
| |
− | system tables are made larger. A bug in the s
| |
− | option which caused the computed stack size to be
| |
− | a constant 512 bytes too large has been fixed.
| |
− | The ``STAT'' field now shows ``>'' in the second
| |
− | position for programs which are using more memory
| |
− | than their memoryuse limit (see vlimit(2)). It
| |
− | also shows ``S'' in the fourth position for
| |
− | processes which have declared themselves to be
| |
− | strongly sequential (see vadvise(2)). Under the
| |
− | v option, the SWRSS field has been replaced by a
| |
− | new field ``LIM'' which shows the limit on memor-
| |
− | yuse if there is a limit, or xx if there is not.
| |
− | | |
− | px Is now written in C, is much more portable, and
| |
− | shares the runtime library used by the compiler.
| |
− | It is, unfortunately, somewhat slower now.
| |
− | | |
− | ranlib No longer considers it a fatal error that an
| |
− | archive member defines no symbols.
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 9 -
| |
− | | |
− | | |
− | reset Has been changed to invoke the command
| |
− | | |
− | tset -Q -I
| |
− | | |
− | so that all terminal modes will be reset.
| |
− | | |
− | rm Now has a - option to indicate that all the fol-
| |
− | lowing parameters are to be treated as file
| |
− | names. It can be used when file names begin with
| |
− | ``-''.
| |
− | | |
− | rmdir Now works correctly when arguments end in one or
| |
− | more ``/'' characters.
| |
− | | |
− | sdb Has been fixed to be able to deal with
| |
− | ``interrupt-stack-frames'', so that it is possi-
| |
− | ble to set breakpoints on and get backtraces from
| |
− | routines called while a signal is being pro-
| |
− | cessed. Now handles binaries which are mode 0407
| |
− | (resulting from ``ld -N'') properly.
| |
− | | |
− | sh Has been changed so that ``#'' begins a comment.
| |
− | Shell scripts to be executed by /bin/sh should
| |
− | begin ``#! /bin/sh'' on the first line.
| |
− | | |
− | tar Now defaults to blocked tape and can update
| |
− | blocked tapes (finally!). When reading tape tar
| |
− | defaults to the raw tape and figures out what is
| |
− | going on with blocksize so it need not be speci-
| |
− | fied. Thus the only commands which should be
| |
− | needed are the simple ``tar t'', ``tar c'', ``tar
| |
− | u'' and ``tar x''.
| |
− | | |
− | uusend Now uses the -r option of uux to prevent present-
| |
− | ing extreme load to the connected system.
| |
− | | |
− | vmstat Has been changed so that the system's device
| |
− | names are printed for the disks rather than D0,
| |
− | D1, D2, D3. The old format output of the -i
| |
− | option is no longer available.
| |
− | | |
− | The fields related to paging activity are now all
| |
− | given in pages (of 1024 bytes). In particular,
| |
− | the fields ``pi'' and ``po'' which previously
| |
− | showed the number of pagein and pageout events
| |
− | now show pages, and ``sr'' which previously gave
| |
− | the clock scan rate in revolutions-per-minute now
| |
− | gives the scan rate in pages scanned per second.
| |
− | To provide the extra space needed to present this
| |
− | information, the swap in/out information, which
| |
− | was only marginally interesting, is no longer
| |
− | printed.
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 10 -
| |
− | | |
− | | |
− | w Has been modified so that it no longer needs to
| |
− | be recompiled when the kernel tables change in
| |
− | size.
| |
− | | |
− | wall Now checks that the message is not too long for
| |
− | its internal buffer, rather than just overrunning
| |
− | the buffer. It handles running out of processes
| |
− | by pausing, so it is possible to use it when
| |
− | there are more than 25 users logged in and you
| |
− | are not the super-user. It also gives the
| |
− | machine name you are on in the broadcast mes-
| |
− | sages.
| |
− | | |
− | who ``Who am I'' now prints your machine and login
| |
− | name (the first word of its output) in a format
| |
− | suitable for use with uucp.
| |
− | | |
− | write Now checks that you do not have write permission
| |
− | disabled and doesn't let you write to someone if
| |
− | they can't write back.
| |
− | | |
− | Section 2.
| |
− | | |
− | | |
− | intro Now correctly reflects that argument lists may be
| |
− | upto 10240 characters long.
| |
− | | |
− | exec Has been changed so that if a file being executed
| |
− | begins with the magic characters #!, the rest of
| |
− | the line is understood to be the name of an
| |
− | interpreter for the executed file. Previously
| |
− | (and in fact still) the shell did much of this
| |
− | job; it automatically executed itself on a text
| |
− | file with executable mode when the text file's
| |
− | name was typed as a command. Putting the facil-
| |
− | ity into the system gives the following benefits.
| |
− | | |
− | 1) It makes shell scripts more like real exe-
| |
− | cutable files, because they can be the sub-
| |
− | ject of 'exec.'
| |
− | | |
− | 2) If you do a 'ps' while such a command is
| |
− | running, its real name appears instead of
| |
− | 'sh'. Likewise, accounting is done on the
| |
− | basis of the real name.
| |
− | | |
− | 3) Shell scripts can be set-user-ID.
| |
− | | |
− | 4) It is simpler to have alternate shells
| |
− | available; e.g. if you like the Berkeley csh
| |
− | there is no question about which shell is to
| |
− | interpret a file.
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 11 -
| |
− | | |
− | | |
− | 5) It will allow other interpreters to fit in
| |
− | more smoothly.
| |
− | | |
− | To take advantage of this wonderful opportunity,
| |
− | put
| |
− | | |
− | #! /bin/sh
| |
− | | |
− | | |
− | at the left margin of the first line of your
| |
− | shell scripts. Blanks after ! are OK. Use a
| |
− | complete pathname (no search is done). At the
| |
− | moment the whole line is restricted to 32 charac-
| |
− | ters. A single argument may be specified for the
| |
− | interpreter, thus:
| |
− | | |
− | #! /bin/csh -f
| |
− | | |
− | | |
− | is very useful, avoiding reading .cshrc which is
| |
− | often not wanted.
| |
− | | |
− | kill Has been changed so that when broadcasting sig-
| |
− | nals universally the signal being broadcast is
| |
− | not sent to the broadcaster. This is used by the
| |
− | halt(8), shutdown(8), and reboot(8) commands.
| |
− | | |
− | reboot Has been changed to reflect the now more limited
| |
− | number of option flags available to the system
| |
− | call due to the nature of the console interface
| |
− | on the VAX 11/750.
| |
− | | |
− | sigsys Reflects the fact that the system now passes in
| |
− | to a signal handler an indication of what excep-
| |
− | tion really happened when a SIGFPE or SIGILL is
| |
− | generated. The call interface at the point of a
| |
− | signal handler call is now specified.
| |
− | | |
− | | |
− | Section 3
| |
− | | |
− | | |
− | | |
− | curses A large number of bug fixes have been incor-
| |
− | porated, and the documentation has been greatly
| |
− | improved. The library is now much more solid
| |
− | than that originally distributed.
| |
− | | |
− | fopen Reflects the new open options which allow simul-
| |
− | taneous read-write to files; these extensions are
| |
− | being incorporated to bring compatibility with
| |
− | the standard version 7 PDP-11 UNIX and to replace
| |
− | the (now defunct) -lNS.
| |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 12 -
| |
− | | |
− | | |
− | printf A bug in the documentation which incorrectly
| |
− | stated that a %c format would not put out a null
| |
− | character has been fixed.
| |
− | | |
− | Section 4
| |
− | | |
− | | |
− | The system now supports a number of new devices and has
| |
− | capability for detecting the device's presence and interrupt
| |
− | vectors at boot time. The system also has capability to do
| |
− | device location at boot time so that a system description as
| |
− | supplied to config(8) can take advantage of available
| |
− | hardware redundancy.
| |
− | | |
− | Each configurable device driver in this section now
| |
− | includes a SYNOPSIS giving sample lines to be included in a
| |
− | system configuration. Drivers also indicate the error mes-
| |
− | sages which they produce and describe each error.
| |
− | | |
− | | |
− | ct A driver for a C/A/T phototypesetter interface.
| |
− | | |
− | dh Now includes handling of dm-11 modem control
| |
− | hardware. Optional flags to the configuration
| |
− | program can also be given to supply hardware car-
| |
− | rier easily for lines where wiring is inadequate.
| |
− | | |
− | hp Includes rm80 support.
| |
− | | |
− | lp Drives standard line printers, and has been
| |
− | improved to cut the interrupt load by a factor of
| |
− | 20.
| |
− | | |
− | mt Describes the standard tape drive interface,
| |
− | which now includes ioctl operations for raw
| |
− | magtape allowing such standard operations as for-
| |
− | ward and backward spacing over files and records,
| |
− | writing of end-of-file marks, rewinds, rewinding
| |
− | and offlining, and sensing of tape status. These
| |
− | operations are used by the mt(1) program which
| |
− | can be used to easily manipulate tape files, and
| |
− | by the tar(1) program to allow updates to blocked
| |
− | tapes.
| |
− | | |
− | tm Supports the UNIBUS TM/11 emulating tape con-
| |
− | trollers (e.g. EMULEX TC-11 with a KENNEDY 9300
| |
− | drive).
| |
− | | |
− | ts Supports the UNIBUS TS/11 tape drive and tran-
| |
− | sport.
| |
− | | |
− | tty Now provides a LDECCTLQ option which causes ^S
| |
− | and ^Q to function as necessary for the VT100 to
| |
− | work properly.
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 13 -
| |
− | | |
− | | |
− | up A driver for a EMULEX SC-11 or SC-21 UNIBUS disk
| |
− | controller with storage module (e.g. Ampex 9300)
| |
− | disk drives.
| |
− | | |
− | va A varian raster plotter.
| |
− | | |
− | Section 5
| |
− | | |
− | No changes.
| |
− | | |
− | Section 6
| |
− | | |
− | | |
− | | |
− | chase Is a game where robots try to eat you.
| |
− | | |
− | hangman Is now screen oriented.
| |
− | | |
− | rain Drops keep falling on my head.
| |
− | | |
− | rogue Is a new and very popular screen-oriented game,
| |
− | see rogue(6) or ``A Guide to the Dungeons of
| |
− | Doom.''
| |
− | | |
− | worm Is a game where you see how long you can get the
| |
− | worm to grow.
| |
− | | |
− | worms Is an amusement where the worms chase each other
| |
− | around the screen.
| |
− | | |
− | Section 7
| |
− | | |
− | No changes.
| |
− | | |
− | Section 8
| |
− | | |
− | Major changes affecting system operations include:
| |
− | | |
− | * The system is configured from a single per-cpu specifi-
| |
− | cation file which includes all locally relevant infor-
| |
− | mation: desired devices, size of the maximum user load,
| |
− | timezone information, etc. The system determines at
| |
− | boot time the size of the file system buffer cache
| |
− | based on the amount of physical memory available and
| |
− | sizes the system data structures based on the specifi-
| |
− | cation of the maximum number of active users; it is no
| |
− | longer necessary to juggle an armful of constants to
| |
− | enlarge the system. The sizes of system tables are no
| |
− | longer compiled into programs such as ps and w.
| |
− | | |
− | * System error log information is saved across system
| |
− | crashes provided no power failure occurs, as the error
| |
− | log is kept in-core in the last 1024 bytes of memory.
| |
− | Error messages to the console are in a standard format,
| |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 14 -
| |
− | | |
− | | |
− | of the form:
| |
− | device: message
| |
− | | |
− | Messages have error registers decoded as bits, so that
| |
− | they are readable, and no-longer refer to devices by
| |
− | their major/minor device numbers, rather using device
| |
− | names. Error messages about file system problems (dev-
| |
− | ice full, out of inodes, etc) are referred to with the
| |
− | mounted file system name, and a message is sent
| |
− | directly to a user if his/her process writes to a file
| |
− | system when it is full. All error diagnostics printed
| |
− | by drivers are documented in section 4 of the manual.
| |
− | | |
− | * DEC standard bad block forwarding is supported on all
| |
− | DEC disks except the RP06; the code which implements
| |
− | this can be easily moved into the drivers for the
| |
− | UNIBUS storage module disks; this is planned.
| |
− | | |
− | * Core dumps are saved after system crashes automatically
| |
− | as the system writes a core image to a portion of the
| |
− | swap area from which it is recovered after reboot. The
| |
− | system then transfers these core images to a specified
| |
− | UNIX directory, saving also the version of the system
| |
− | associated with the crash. The system also maintains
| |
− | an error log /usr/adm/shutdownlog which records all
| |
− | system crashes and reboots with the information about
| |
− | the causes.
| |
− | | |
− | | |
− | | |
− | analyze Now has an option -u to print page numbers of the
| |
− | u. areas. A bug which prevented the distributed
| |
− | analyze from working has been fixed.
| |
− | | |
− | bad144 Is a new program which prints out the DEC-
| |
− | standard bad block information for a disk, or
| |
− | puts it back if it gets clobbered. The name of
| |
− | the program comes from the fact that the program
| |
− | deals with ``DEC standard 144'' format.
| |
− | | |
− | badsect Creates a file in a file system which contains a
| |
− | specified disk sector of that file system. This
| |
− | is a primitive way of dealing with bad sectors,
| |
− | but works on drivers which don't (yet) have bad
| |
− | block forwarding according to the standard.
| |
− | | |
− | getty No longer prints ``Virtual'' in front of the sys-
| |
− | tem identification, since there are no swap sys-
| |
− | tems in sight anymore.
| |
− | | |
− | halt Now properly shuts down the system; see reboot
| |
− | below for details.
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 15 -
| |
− | | |
− | | |
− | icheck Now properly sets the tfree field in the super-
| |
− | block.
| |
− | | |
− | init Now interacts with halt, reboot and shutdown to
| |
− | bring about orderly system shutdowns. No longer
| |
− | writes entries in the /usr/adm/wtmp accounting
| |
− | file when a getty process dies without a user
| |
− | logging in on a terminal. Prints a warning mes-
| |
− | sage (on the console) if a terminal exists, is
| |
− | enabled, but the open returns an error, and waits
| |
− | for terminal to be openable, checking each
| |
− | minute, to prevent thrashing in this case.
| |
− | | |
− | last Now distinguishes between system shutdowns and
| |
− | system crashes.
| |
− | | |
− | lastcomm A bug causing a core dump if user id's not
| |
− | present in the password file were encountered has
| |
− | been fixed.
| |
− | | |
− | login Now interacts with the shutdown command to forbid
| |
− | logins (except by the super-user) in the last 5
| |
− | minutes before a shutdown (detected by the pres-
| |
− | ence of the file /etc/nologin, which also con-
| |
− | tains a message about why the system is shutting
| |
− | down which is presented to the rejected users.)
| |
− | Implements a notion of ``secure terminals''; if
| |
− | the file /etc/securetty exists, then it should
| |
− | contain a list of the secure terminals where root
| |
− | is allowed to login. If this file does not
| |
− | exist, then root can log in anywhere, as before.
| |
− | If a user tries to login but can't get to their
| |
− | home directory they are left in the root direc-
| |
− | tory and warned, so that they have some chance to
| |
− | send mail about or fix the problem themselves.
| |
− | If a file .hushlogin exists in a users home
| |
− | directory the the message of the day and other
| |
− | such information designed for human users will
| |
− | not be printed at login time. This is specifi-
| |
− | cally designed for the user uucp which is another
| |
− | computer and just ignores such stuff anyways.
| |
− | Finally a bug has been fixed which cause login to
| |
− | core dump if there were tabs in the file
| |
− | /etc/ttytype.
| |
− | | |
− | mkfs Now works properly when given a proto argument;
| |
− | previously it complained because it didn't know
| |
− | that the format of the file /usr/mdec/uboot had
| |
− | been changed.
| |
− | | |
− | pstat Has new flags -m and -g which interpret the mul-
| |
− | tiplexor data structures.
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | - 16 -
| |
− | | |
− | | |
− | reboot Now shuts the system down cleanly, stopping all
| |
− | system activity before initiating the reboot pro-
| |
− | cedure. Normally, however, the new shutdown com-
| |
− | mand is used to take the system down, notifying
| |
− | the users of the impending downtime. The options
| |
− | -s and -a options to reboot are no longer avail-
| |
− | able, as it will not be possible to provide them
| |
− | on all VAX cpu's due to the way the console
| |
− | interface works. Instead, you can halt the pro-
| |
− | cessor using halt which puts the system into a
| |
− | tight loop, and then perform the desired reboot
| |
− | sequence manually at the console. This works on
| |
− | both 11/750 and 11/780 processors.
| |
− | | |
− | renice Has been modified for the new kernel and is no
| |
− | longer dependent on system configuration parame-
| |
− | ters; it no longer needs to be recompiled when
| |
− | system table sizes change.
| |
− | | |
− | restor Now properly handles the case where dump files
| |
− | are contained in dump tapes; previously the end
| |
− | of the embedded dump would confuse restor and
| |
− | cause the rest of the dump tape to be inaccessi-
| |
− | ble.
| |
− | | |
− | sa Now correctly handles an arbitrary number of com-
| |
− | mands and users. Two new options have been added
| |
− | -v and -f giving it a googol+2 options. See
| |
− | sa(8) for details.
| |
− | | |
− | savecore Is a new program which runs after a reboot to
| |
− | save check to see if the system had crashed and,
| |
− | if it had, to save any core image which was suc-
| |
− | cessfully written to the paging area. See
| |
− | savecore(8) for a full description.
| |
− | | |
− | shutdown Is a new command which shuts the system down at a
| |
− | specified time. It broadcasts messages to users
| |
− | warning them as the downtime approaches, records
| |
− | the reason for the reboot in a log file, and
| |
− | cooperates with init in a cleanly shutdown (e.g.
| |
− | during the last 2 minutes of system operation,
| |
− | users attempting to log in are told that the sys-
| |
− | tem is going down and the reason for the shutdown
| |
− | but not allowed to log in.)
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | | |
− | July 14, 1981
| |
− | </pre>
| |
− | | |
− | [[Category: CSRG BSD]]
| |