pre-4.2BSD and Sun Hardware

Has anyone noticed that 4.1c.1 BSD on the CSRG ISO is full of "#ifdef sun" and "#ifdef mc68000" and "#ifdef M68K"?

There is also code for three system calls:
unmount(2) system call àla SunOS
swapoff(2) system call àla SunOS
swapon(2) system call àla SunOS -- instead of vswapon(2)

All of that was removed just before 4.2 BSD was released. The SCCS comments still remain and SCCS has the removed code in it.

SCCS commit comments:
“add SUN device definitions”
“add d_mmap (from 68k)”
“add keyboard and mouse ioctls (for sun)”
“bugs in #ifndef vax stuff (from 68k)”
“combine with 68k”
“combine with sun”
“first version with 68k stuff”
“first version with 68k”
“fixes between d's and c's from 68k experience”
“fixes from 68k for NOPAGING”
“fixes from 68k, still messy w.r.t. tlb in ptexpand”
“fixes from 68k”
“split into machine dependents in ../vax ../sun”

The CSRG ISO also has files that are not committed to version control, e.g. "sys/conf/files.sun".
 
Bill Joy departed Berkeley CSRG in 1982 to co-found Sun Microsystems.

The official 4.2BSD release was in August 1983.

So, I expect Bill was putting in some effort on the Sun 2 m68000 port before he left...
 
AFAIK the first commercial Sun Microsystems product was the Sun 1 introduced in 1982 which ran a port of UniSoft's V7 UNIX port to the Motorola 68000.

The Sun 2 followed quickly in 1983, running SunOS 1.0, based on 4.1BSD and the m68k.

The earlier commencement of the m68k port to 4.1BSD (which never made it to 4.2BSD) is pretty much certain to have been relevant to the Sun 2 product.
 
And that article says: The Sun-2 series of UNIX workstations and servers was launched by Sun Microsystems in November 1983.

He couldn't be working on something he launched only after departing? :)
Two USENET posts say that there was a Sun-1.5 that ran 4.1c BSD.

-------------

Subject: Re: Performance of VAX/780/750, Pyramid & Sun
From: Mark Callow
Date: Aug 8, 1984, 2:05:37 PM
To: net.works


These benchmarks would have been interesting but I have to treat them
as questionable due to the claim of running them on a Sun-1 under
4.2BSD. There is no such beast (unless you did it yourself; if so
I like to know how you dealt with page faults).

You might have a Sun-1.5 running 4.1c (which Sun have referred to
as the Berkeley Beta Release of 4.2). The Sun-1.5 is very slow
due to an additional wait state Sun had to add. The 4.1c release
(Sun 0.4) is very unloved around here. People found it slow and
liable to crash.

Now a Sun-2 running 4.2 (Sun Release 1.1) is a very different proposition.
It is fast (Our users perceive it as twice as fast as Sun1.5/4.1c). It
is also reliable. It would make a very nice personal computer.
--
From the TARDIS of Mark Callow
m...@qubix.UUCP, qubix!m...@decwrl.ARPA
...{decvax,ucbvax}!decwrl!qubix!msc, ...{amd,ihnp4,ittvax}!qubix!msc

"Nothing shocks me. I'm an Engineer."


-------------
From: er...@milo.uucp
To: net.works
Date: Aug 11, 1984, 5:49:02 PM


I must beg to differ. I currently have on loan a Sun-1 from Sun
which has 4.2 running on it. It may no longer be a product, but it does
exist.
--
eric
...!seismo!umcp-cs!aplvax!eric



----------------

Subject: Re: Performance of VAX/780/750, Pyramid & Sun
From: Tim Mann
To: net.works
Date: Aug 14, 1984, 4:17:12 PM

I think that people are confusing the difference between Sun-1 and Sun-2
with the difference between the Sun Model 100 and 120. The Model 100 is the
old style unit with the black and white metal case and the backplane under
the monitor. These originally came with Sun-1 processors, but can be
upgraded to be Sun-2's. The Model 120 is the new style with the grey
plastic case and the backplane in a separate box. Model 120's all have
Sun-2 processors. Around here we talk about the Sun-1/100, the Sun-2/100,
and the Sun-2/120 to make the distinction clear. (We'll ignore the 150 and
170 for now.)
At any rate, 4.2 Unix runs only on Sun-2 processors, and definitely not on
Sun-1's. (To further confuse the issue, there were some "Sun-1.5"
processors shipped which ran 4.1c Unix. These should all have been upgraded
to Sun-2's by this time.)

--Tim

 
SunOS appears to have run on a VAX-11/750 named sunvax.


Guy Harris
Mar 2, 1991
> 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.)


Guy Harris
Mar 9, 1991
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....
 
The "Berkeley Beta Release of 4.2" mentioned in the USENET post I quoted above is available on Bitsavers. At the least, version numbers and dates of the contents of that artifact are visible in man pages so they can be compared against the contemporaneous code in the CSRG ISO. I have yet to use /usr/bin/what to see version strings in binaries but that's on my list of things to look at.

The man page differences include:

The "Berkeley Beta Release of 4.2" (A.K.A. SunOS 0.4, A.K.A. 4.1c BSD) has an adduser(8) man page with:
-.TH ADDUSER 8 "21 April 1983"
While CSRG ISO 4.1c.2 has:
+.TH ADDUSER 8 "4 February 1983"
The 4.2 BSD and 4.1c.2 BSD versions of the adduser(8) man page are identical.
The one from SunOS has modifications that were never propagated back from SunOS to BSD. For instance the man page has a user name "ernie" (a joke as "Ernie Co-VAX" is a play on the TV actor "Ernie Kovacs") which was changed to "esmerelda".

In general, "4.1 BSDs" aren't like FreeBSD versions where there is a strong sense that "FreeBSD 13.2" is composed of a particular set of files. For instance, several 9-track tapes with stickers on them that say "4.1 BSD" turn out to have different contents. See Mike Haertel's notes about that for some more details:

On the CSRG ISO #1 the 4.1c BSD artifacts show similar issues.

4.1c.1 has kernel source under sys/ while 4.1c.2 under a/ for instance
with CSRG ISO #1 mounted on /a/1 you get:

$ cd /a/1
$ ls -dl 4.1c.1/a
ls: cannot access '4.1c.1/a': No such file or directory
$ ls -ld 4.1c.1/sys
drwxrwxr-x 21 root root 4096 Aug 11 1992 4.1c.1/sys
$ ls -dl 4.1c.2/a
drwxrwxrwx 3 root root 2048 Feb 27 1993 4.1c.2/a


4.1c.1 has kernel source is more recent than 4.1c.2, for instance

$ head -n 1 4.1c.1/sys/sys/init_main.c
/* init_main.c 4.49 83/04/04 */
$ head -n 1 4.1c.2/a/sys/sys/init_main.c
/* init_main.c 4.47 83/03/01 */


User programs ("userland") version are the other way around, for instance
4.1c.2 usr/bin/date.c is newer than 4.1c.1 bin/date.c

$ head -n 2 4.1c.1/bin/date.c | tail -n +2
static char *sccsid = "@(#)date.c 4.2 (Berkeley) 2/26/83";

$ head -n 2 4.1c.2/usr/src/bin/date.c | tail -n +2
static char *sccsid = "@(#)date.c 4.3 (Berkeley) 2/28/83";
 
Back
Top