Difference between revisions of "Bug fixes and changes in 4.1 BSD"

From Computer History Wiki
Jump to: navigation, search
(Created page with "Naturally this pertains to 4.1 BSD <pre> Bug fixes and changes in 4.1bsd May 10, 1981 Bill Joy ...")
 
m (Dup page)
 
(One intermediate revision by the same user not shown)
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>
 

Latest revision as of 02:46, 25 December 2018