[comp.org.usenix] 2.10BSD release

bostic@ucbvax.BERKELEY.EDU (Keith Bostic) (07/15/87)

     The USENIX association and the Computer  Systems  Research  Group
(CSRG)  of  the  University  of  California,  Berkeley, are pleased to
announce the distribution of a new release  of  the  "Second  Berkeley
Software Distribution" (2.10BSD).

     This release will be handled by the USENIX  association,  and  is
available  to all V7, System III, System V, and 2.9BSD licensees.  The
Association will continue to maintain the non-profit price of $200, as
was  charged  by  the CSRG.  The release will consist of two 2400 ft.,
1600 bpi tapes (approximately 80M)  and  approximately  100  pages  of
documentation.

     If you have questions about  the  distribution  of  the  release,
please  contact USENIX.  USENIX's address and phone number are as fol-
lows:

     USENIX Association
     P.O. Box 2299
     Berkeley, CA  94710
     +1 415 528-8649

     USENIX may also be contacted by electronic mail at:
     {ucbvax,decvax}!usenix!office

     If you have technical questions about the release, please contact
Keith Bostic and Casey Leedom at:

     {ucbvax,seismo}!keith
     keith@okeeffe.berkeley.edu
     +1 415 642-4948


     For everyone's information, the most asked  questions  from  last
week's mail:

Q: What machines will 2.10BSD run on?

     2.10BSD will run on:
          11/24/34/44/53/60/70/73/83/84
          11/23/35/40/45/50/55 with 18 or 22 bit addressing

     2.10 WILL NOT run on:
          T11, 11/03/04/05/10/15/20/21
          11/23/35/40/45/50/55 with 16 bit addressing

     If we decide to go to a supervisor space  networking,  2.10  net-
     working will only run on:
          11/44/53/70/73/83/84
          11/45/50/55 with 18 bit addressing

     Otherwise, 2.10 networking will run on  any  machine  with  split
     I/D.

          The tape that USENIX will be distributing for the  next  few
     weeks  will  only  support  machines  with split I/D and floating
     point hardware.  This is not because any work remains to be done,
     but because we just haven't had the time to build and test a sys-
     tem.  If  anyone doesn't have split I/D and/or floating point and
     would be interested in beta testing such a system, please contact
     Keith Bostic.

Q: Will 2.10BSD support networking, and, if so, what flavor?

          The tape that USENIX will be distributing for the first  few
     weeks  will not support networking.  The complete 4.3BSD network-
     ing is in place and running, albeit  with  minor  problems.   The
     holdup is that only the Interlan Ethernet driver has been ported,
     as well as some major space constraints.  We also may hold off on
     the  networking  until  we  have  it running in supervisor space.
     That decision has not yet been made.  In either  case,  the  net-
     working  tape  will  be available Real Soon Now.  Feel free to go
     ahead and order the release; just make it  very  clear  that  you
     want to wait for the networking version.

Q: What's new in this release?

          Lots of stuff.  This release is 4.3BSD.  We don't expect  to
     distribute  manuals this time, we expect people to simply use the
     4.3BSD ones.  A list of some of the larger things that have  been
     added:

          22-bit Qbus support
          4.3BSD TCP/IP, SLIP
          4.3BSD serial line drivers
          4.3BSD C library
          most of the 4.3BSD application programs
          complete set of 4.3BSD system calls
          MSCP device driver for (RQDX? UDA50, KLESI)
          RAM disk
          inode, core, and swap caching
          conversion of the entire system to a 4.3BSD structure

Q: Why get this release?

          You want to get this release for one of two reasons.  Either
     you have a number of 4.3BSD programs or machines in your environ-
     ment and you'd like consistency across the  environment,  or  you
     want  a  faster,  cleaner version of 2.9BSD, with or without net-
     working.

          This release is, without question, considerably faster  than
     any other PDP-11 system out there.  There have been several major
     changes to the 2.10BSD kernel to speed it up.

          +    The kernel namei routine has been modified to read  the
               entire  path  name  in  at once rather than as a single
               character at a time, as well as maintaining a cache  of
               its position in the directory it's reading.

          +    The exec routine now copies its arguments a string at a
               time, rather than a character at a time.

          +    All inodes are placed  in  an  LRU  cache,  eliminating
               going to  disk for frequently  used  inodes.  Creation,
               modification and access times are now stored in  kernel
               inodes, dramatically speeding up stat calls.

          +    Both core and swap are LRU cached; the former  is  par-
               ticularly  interesting  on  PDP-11's with large amounts
               (for PDP's, anyway) of memory.  Our experience with  an
               11/44  with  4M of memory, in a student environment, is
               that it never swaps, and only rarely do programs  leave
               core.

               This change is largely responsible for Our Favorite Tim-
               ing:  Ultrix 11, V3.0, on an 11/73, with a single RD52,
               takes 1.1 system  seconds  to  run  vi.   2.9BSD  takes
               approximately  .9 system seconds, a difference probably
               attributable to the fact that 2.9BSD uses vfork.   Once
               2.10BSD has the vi image in its core cache, it takes .2
               system seconds.

          +    Finally, many other speedups, such as rewriting several
               C library routines in assembler,  replacing the  kernel
               clist routines with the faster 4.3BSD ones, caching and
               hashing process id's, and  splitting  the process  list
               into multiple lists have been added.

Q: How good is the networking?

          The networking is 4.3BSD's.  It runs, it runs correctly.  It
     eats  memory  like  there's  some kind of reward.  We may fix the
     latter by moving it into supervisor space.

Q: Will this release be supported?

          This release is not supported, nor should it  be  considered
     an  official  Berkeley  release.   It  was called 2.10BSD because
     2.9BSD has clearly become overworked and  System  V  was  already
     taken.

          The ``bugs'' address supplied with this release (as well  as
     with  the  4BSD  releases)  will  work for some unknown period of
     time; make sure that the ``Index:'' line of the bug report  indi-
     cates  that  the release is ``2BSD''.  See the sendbug(8) program
     for more details.  All fixes that we make, or that  are  sent  to
     us,   will   be   posted   on   USENET,   in   the   news   group
     ``comp.bugs.2bsd''.  USENIX is aware of this problem and is  wil-
     ling  to make hard-copy bug reports available to those of you not
     connected to the net.

          To summarize, all that I can say is that any major  problems
     will  be  fixed, i.e. if you've got a program that's crashing the
     kernel, we'll be inclined to fix it.  If ``ls'' is  misformatting
     its output, you're probably on your own.

Q: Is this the last release?

          Yes, at least by us; quite frankly,  we'd  rather  sacrifice
     our chance at heaven than look at a 16-bit machine again.

Q: Who did all this wonderful, exciting, neat stuff?

          Mostly Casey Leedom, of California State  University,  Stan-
     islaus and Keith Bostic of the CSRG.  The  networking was done by
     Jeff  Johnson  of  the  Institute  for Social Research.  From the
     ``Changes to the Kernel in 2.10BSD'' paper:

               The authors gratefully acknowledge the contributions of
          many other people to the work described here.  Major contri-
          butors include Gregory Travis and Jeff Johnson, both of  the
          Institute  for  Social  Research, and Steven Uitti of Purdue
          University.  Cyrus Rahman of  Duke  University  should  hold
          some  kind of record for being able to get the entire kernel
          rewritten with a single 10-line  bug  report.   Much  credit
          should  also  go  to  the  authors of 4.2BSD and 4.3BSD from
          which we  stole  everything  that  wasn't  nailed  down  and
          several  things  that  were.   (Just  ``diff'' this document
          against Changes to the Kernel in 4.2BSD if you don't believe
          that!)   We  are  also  grateful for the invaluable guidance
          provided by Michael Karels, of the Computer Systems Research
          Group,  at  Berkeley  - although we felt that his suggestion
          that we ``just buy a VAX'', while  perhaps  more  practical,
          was not entirely within the spirit of the project.

Keith Bostic
Casey Leedom