5

Does anyone know why there is a SunOS kernel configuration file in the 4.1c.1 BSD directory tree in the CSRG ISOs?

How to see that this file exists:

McKusick sells the CSRG ISOs. But let's face it, all of the code is freely distributable. There is a copy of the CSRG ISOs in the Internet Archive.

The first of the ISO set contains: 4.1c.1/sys/conf/files.sun with a time stamp of Nov 4, 1982. The corresponding SCCS file, s.files.sun is not on any of the ISOs. For comparing the file against a version of SunOS, SunOS 3.4 source code is available on BitSavers. If you have older source code, I'm all ears.

Comparing the contents of CSRG ISO's files.sun against SunOS 3.4 source code:

$ cat > /tmp/part-of-files.sun
sundev/ar.c     optional st device-driver
sundev/bk.c     optional bk device-driver
sundev/ip.c     optional ip device-driver
sundev/mb.c     optional mb device-driver
sundev/tm.c     optional mt device-driver
sundev/oct.c        optional oct device-driver
sundev/su.c     optional su device-driver
sundev/tb.c     optional tb device-driver
sundev/vp.c     optional vp device-driver
sunif/if_ec.c       optional ec inet device-driver
sunif/if_en.c       optional en inet device-driver
sun/autoconf.c      standard device-driver
sun/conf.c      standard
sun/cons.c      standard
sun/cpudata.c       standard
sun/machdep.c       standard
sun/mem.c       standard
sun/movc.s      standard
sun/ocsum.s     standard
sun/probe.c     standard
sun/setjmp.s        standard
sun/trap.c      standard
sun/vm_machdep.c    standard

$ grep -f /tmp/part-of-files.sun conf*/files*
conf.sun2/files.sun2:sun/conf.c     standard
conf.sun2/files.sun2:sun/cons.c     standard
conf.sun2/files.sun2:sun/movc.s     standard
conf.sun2/files.sun2:sun/ocsum.s        standard
conf.sun2/files.sun2:sun/probe.c        standard
conf.sun2/files.sun2:sun/setjmp.s       standard
conf.sun2/files.sun2:sundev/ip.c        optional ip device-driver
conf.sun2/files.sun2:sundev/tm.c        optional mt device-driver
conf.sun2/files.sun2:sundev/vp.c        optional vp device-driver
conf.sun3/files.sun3:sun/conf.c     standard
conf.sun3/files.sun3:sun/cons.c     standard
conf.sun3/files.sun3:sun/movc.s     standard
conf.sun3/files.sun3:sun/ocsum.s        standard
conf.sun3/files.sun3:sun/probe.c        standard
conf.sun3/files.sun3:sun/setjmp.s       standard
conf.sun3/files.sun3:sundev/tm.c        optional mt device-driver
conf.sun3/files.sun3:sundev/vp.c        optional vp device-driver

A lot of it still matches despite three or four years of development.

8
  • 1
    Sun was only 9 months old in Nov 1982, and Bill Joy had come from CSRG. Thus, I’m not surprised to see that tree there, given that early SunOS was deeply based on BSD.
    – RonJohn
    Jun 4, 2023 at 21:31
  • Seems that the wnj account stopped commiting into into UCB CSRG at the end of Feb 1982, except for a day in 1983. fossil.fuhrwerks.com/csrg/…* Jun 5, 2023 at 1:33
  • Maybe we're interpreting things differently, but the link you posted shows activity (fix this, fix that, etc) by wnj up through Oct '82, with one last "include fixes" and "include problems" in July '83.
    – RonJohn
    Jun 5, 2023 at 4:43
  • Yeah, I blew it on the date. Here's the correct timeline 1982-10-24 last wnj commit and then 1982-11-04 timestamp on files.sun, 12 days apart. It pales in significance to how much kernel source code was sun-specific. grep -ir 'ifdef.*sun' 4.1c.1 2> /dev/null | grep -cv SCCS => 62 That and how many times can you find in print the statement that BSD only ran on VAX until the Tahoe port? Jun 5, 2023 at 9:35
  • In the good days back when this was happening, J. Random Student paid XYZ Univeristy tuition money. XYZ would build a research center with some of the tuition money. Mr. Lucky Guy would build an earth-shattering product using the research center. In effect, J. Random Student gave Mr. Lucky Guy free venture capital with no ROI. Jun 5, 2023 at 9:51

1 Answer 1

5
  1. Sun Microsystems supposedly had a VAX-11/750. Monet was a VAX-11/750. Was Monet really Sun's VAX? A VAX-11/750 is sizeable chunk of change, especially one that you would only use for a short while to bootstrap SunOS on. Sun may have used Monet first and then had a VAX-11/750 later. There is most definitely a kernel configuration file, SUNVAX in SunOS 3.4 source code.
https://groups.google.com/g/comp.unix.programmer/c/j6f6yIbeze0/m/e1_bPCN09yAJ

Chris Torek Mar 1, 1991, 9:37:44 PM

6. Various versions of SunOS run on Suns and VAXen, but you cannot get
the VAX versions.

===

https://groups.google.com/g/comp.unix.programmer/c/j6f6yIbeze0/m/NmXgfsLd1xoJ

Guy Harris Mar 2, 1991, 4:58:00 PM

> 6. Various versions of SunOS run on Suns and VAXen, but you
> cannot get the VAX versions.

And, unless you think SunOS 3.0 was the acme of SunOS development, you
probably don't want the VAX version, either - nobody bothered porting it
to the VAX after 3.0. (And "sunvax" was, I think, retired a while ago,
so I don't expect anybody *to* port it.)

===

https://groups.google.com/g/comp.unix.questions/c/1yIC5_dr6_Y/m/lnD_ufnI0dQJ

Guy Harris
Mar 9, 1991, 6:24:53 PM

>SunOS 3.0 for the *VAX*?? Did this really exist?
Yes.

>Who used it?

The OS group in Sun, on one machine in Sun, "sunvax", an 11/750. It
wasn't ever made available as a product; it was mainly just a "proof of
concept" thing. Nobody ever went past 3.0, as far as I know; when Sun
got its 4.3BSD tape, they brought 4.3BSD up on "sunvax", to provide a
"reference" machine with 4.3BSD on it (useful for e.g. testing that the
4.1 UUCP works over TCP when talking to 4.3BSD machines), and it mainly
ran that. I don't even think "sunvax" is around any more....
  1. It's clear from the residue that BSD had Sun code. Some breadcrumbs are that SCCS like RCS operates on individual files, unlike Concurrent Version System (CVS), Subversion (SVN), git and so on which can operate on groups of files. This makes it possible to expunge files and directories. If there was a hypothetical /sys/sundev directory on a VAX at UCB it would be possible to rm -r it along with the SCCS version control for all the files in that directory. Code like #if sun and #include <sundev/foo.h> in files that contain code that cannot be expunged will still be visible in the SCCS and backup tapes, etc. The files.sun file is probably due to an oversight causing it to not be removed along with other files until it was discovered later. The sun code was removed by the time of 4.2BSD release. Some traces of it still exist in SCCS and old backup tapes, but that code is effectively stubbed out due to parts that it refers to not being recovered as of yet.

Sun Microsystems incorporated on February 1982.

Commits with notable SCCS delta commentary:

subr_prf.c

D 4.23 82/10/31 00:26:35 root 29 28 00016/00001/00239
MRs:
COMMENTS:
first version with 68k stuff
s.kern_clock.c

D 4.48 82/12/17 11:43:02 sam 70 69      00015/00009/00343
MRs:
COMMENTS:
sun merge

The very next day two of the BSD DECNET C source code files were updated.

s.tp_usrreq.c:

D 1.4 82/12/18 18:35:30 sam 4 3 00001/00001/00078
MRs:
COMMENTS:
mbufs typed

While I was compiling the source code of 4.1c.1 I found this:

monet# make depend  
cat </dev/null >x.c
for i in apply arcv at biff checknr chfn chsh colcrt colrm ctags expand  finger fold from gcore grep groups head last  lastcomm leave man mkstr num printenv prmail pti reset  sccs soelim ssp strings symorder tail unexpand unifdef  users vmstat w whatis whereis whoami xstr what wc yes clear lock script ul; do  (echo $i: $i.c >>makedep;  /bin/grep '^#[        ]*include' x.c $i.c | sed  -e 's,<\(.*\)>,"/usr/include/\1",'  -e 's/:[^"]*"\([^"]*\)".*/: \1/'  -e 's/\.c//' >>makedep); done
echo '/^# DO NOT DELETE THIS LINE/+2,$d' >eddep
echo '$r makedep' >>eddep
echo 'w' >>eddep
cp Makefile Makefile.bak
ed - Makefile < eddep
rm eddep makedep x.c
echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
echo '# see make depend above' >> Makefile
monet# grep sun Makefile
vmstat: /usr/include/sundev/mbvar.h
monet# grep sundev *.c
vmstat.c:#include <sundev/mbvar.h>
monet# make vmstat
Make:  Don't know how to make /usr/include/sundev/mbvar.h.  Stop.

Because "make depend" does not process #ifdefs and that causes it to always insert vmstat: /usr/include/sundev/mbvar.h into the Makefile.

  1. The missing 4.1b BSD could be missing because it was full of SunOS code. That version reportedly was only used at Berkeley, unlike the others.

Sunburst: The Ascent of Sun Microsystems Mark Hall and John Barry Forward by Tom Peters Contemporary Books, Chicago 1990

Two copies

Hardbound https://archive.org/details/sunburstascentof00hall

Paperback https://archive.org/details/sunburstascentof0000hall

Hardbound jacket has an out-of-context quote from the book: "To ask permission is to seek denial" -- Scott McNealy


TL;DR

SMI contributed a lot to BSD during the development of 4.2BSD

Most people think this happened:

4.1BSD -> 4.1a -> 4.1b -> 4.1c -> 4.2

as if each version was taken at different points in development.

But 4.1a and 4.1b were tapes from SMI, probably in one shipment.

4.1a tape had things that were definitely not proprietary to SMI, On the CSRG ISO the 4.1a tree has very little stuff, games, ingres, Berknet, the "learn" tutorial, fonts, a /usr/doc which includes /usr/doc/vmunix/setup.t with the name "Samuel J. Leffler" added to it; prior versions lack that.

The words: "For use by CSRG only Tape B" appear on the 4.1a tape label implying that there were "A" (4.1a) and "B" (4.1b) tapes.

4.1b tape has co-mingled proprietary and non-proprietary things.

4.1BSD -> merge the non-proprietary portions of 4.1b code -> combine with 4.1a -> 4.1c

The CSRG ISO has 4.1c.1 which is a backup taken during the 4.1b merge. Several things including sys/files.sun and the partially implemented unmount(2) system call which was backed out, while SunOS has unmount(2). The swapon(2) and swapoff(2) system calls were also backed-out. 4.2BSD has swapon(2) but

Nothing in 4.1a is in 4.1c.1, not one file.

On 82/11/13 the sam account (Leffler) made 108 commits into SCCS of 91 files (some had multiple commits), 74 have commit messages some saying "merge of 4.1b and 4.1c" and some "merge of 4.1b with 4.1c".

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .