Subject: Re: 1st Edition UNIX runs again

From: [email-masked]
Date: Tue, 6 May 2008 22:27:16 -0400

Excellent--thanks for the good news.

On my side, I definitely have no scans that aren't already
available.  Listings, possibly--I'll see what I can dig up.

  Dennis

---

From: Warren Toomey <[email-masked]>
Date: Wed, 7 May 2008 08:44:42 +1000

Dennis, I sent this last week, and am sending again in case you missed it.
Apologies for the duplicate e-mail.

Just a quick note that the "assembly UNIX" team have been able to cold boot
the system to create an RF filesystem, then warm boot to a login prompt,
then run usermode commands:

PDP-11 simulator V3.7-3
Disabling CR
Disabling XQ
RF: buffering file in memory
TC0: 16b format, buffering file in memory
sim> go

:login: root
root
# ls -l
total    6
 43 sdrwr-  2 bin     620 Jan  1 00:00:00 bin
 42 sdrwr-  2 sys     250 Jan  1 00:00:00 dev
 44 sdrwr-  2 bin     110 Jan  1 00:00:00 etc
 46 sdrwrw  2 sys      30 Jan  1 00:00:00 tmp
 45 sdrwr-  2 sys      20 Jan  1 00:00:00 usr
# chdir bin
# ls -l 
total  215
 48 sxrwr-  1 bin      16 Jan  1 00:00:00 :
 49 sxrwr-  1 bin    2310 Jan  1 00:00:00 ar
 50 lxrwr-  1 bin    7582 Jan  1 00:00:00 as
	. . .
104 sxrwr-  1 bin     238 Jan  1 00:00:00 un
105 sxrwr-  1 bin     644 Jan  1 00:00:00 wc
106 sxrwr-  1 bin     560 Jan  1 00:00:00 who
107 sxrwr-  1 bin     524 Jan  1 00:00:00 write
# who
root    tty8 Jan  1 00:00:11
#  

We have also worked out that this a 1st Edition UNIX system, as it
can only deal with 0405 a.out files and not 0407. So it must come
from 1971 and not 1972.

Cheers,
	Warren

---

From: Warren Toomey <[email-masked]>
Date: Wed, 7 May 2008 13:03:32 +1000

> available.  Listings, possibly--I'll see what I can dig up.

Dennis, anything from this era would be of great use to us, even listings
of userland programs. For example, we are searching for fpsym at present.
So any paper documents which could be photocopied or scanned in would be
great!

Other questions: someone floated the idea of getting you or ken to write
a short paragraph "preface" which we can add to our top-level Readme.
Would you be happy to do that?

Also, usernames and uids: /bin/roff is owned by uid 4, but there is no
entry for uid 4, just these ones:

root::0:/:
eroot::0:/:/bin/ed
sys::1:/usr/sys:
bin::3:/bin:
adm::3:/usr/adm:
s1::3:/usr/s1:
s2::3:/usr/s2:
jack::10:/usr/jack:
peter::11:/usr/peter:
jay::12:/usr/jay:
bob::13:/usr/bob:
sun::14:/usr/sun:
lee::15:/usr/lee:

I'm guessing that jfo was 4, ken had uid 6 and dmr had uid 7. Is that
reasonable? Are there any others that you can remember which we could add?
Also, who are jack, peter, jay, bob, sun and lee?

Thanks again,
	Warren

---

From: Warren Toomey <[email-masked]>
Date: Wed, 14 May 2008 10:23:42 +1000

Dennis, sorry to pester you again with questions about early UNIX. If I'm
being a bother, please let me know [and I mean that, really].

The team have been doing some archaeological work on the s1- and s2-bits tapes.
Are you able to shed some light on the provenance of the two tapes? In
particular:

 - did the 2 tapes come from the same system?
 - which machine(s) did they come from?
 - do you know if the 2 tapes were written at roughly the same time or not?

Here is what we can see which concerns us:

 - most of the files on s2 date from Jun 1972 or earlier, only these files
   are later:

	suxrwr-   0   232   31 Mon Nov  6 07:42:18 1972  /bin/mkdir
	suxrwr-   0  3678   34 Sat Dec 30 14:08:39 1972  /bin/tap
	s-xrwr-   3   718   46 Wed Nov 22 08:51:32 1972  /bin/chown
	suxrwr-   0   282   53 Thu Sep 28 07:37:12 1972  /bin/rmdir
	l-xrwr-   4  7154   61 Thu Jul 20 22:42:42 1972  /bin/roff
	suxrwr-   1   192   92 Wed Nov 22 05:35:16 1972  /bin/df
	suxrwr-   1   790  119 Sun Nov 26 00:24:14 1972  /bin/tm
	suxrwr-   1  1084  122 Wed Nov 22 05:35:16 1972  /bin/check
	s-xrwr-   3   604  150 Wed Nov 22 08:51:32 1972  /bin/sort
	s-xrwrw   3   214  175 Fri Jul 14 11:21:57 1972  /bin/sum
	s-xrwr-   1   424  231 Tue Feb  6 00:50:16 1973  /etc/init
	s--rwr-   1    70  238 Tue Feb  6 00:38:57 1973  /etc/uids
	s--rw--   1   221  239 Tue Feb  6 00:35:10 1973  /etc/passwd
	s-xrwr-  28  3462  491 Sat Jul  1 02:35:35 1972  /usr/fort/fc1
	s-xrwr-  28  3238  498 Sat Jul  1 02:35:36 1972  /usr/fort/fc2
	l-xrwr-  28  6840  505 Sat Jul  1 02:35:41 1972  /usr/fort/fc3
	l-xrwr-  28  4918  519 Sat Jul  1 02:35:43 1972  /usr/fort/fc4

   Most of the binaries on s2 are 1e 0405 a.outs, but the date of the passwd
   file is Feb 1973. It seems strange that the binaries are mostly 0405 when
   the backup was taken well after 2e and 0407 headers were in use. And there
   are a few 0407 a.outs on the tape as well.

 - the /etc/uids and /etc/passwd files do not have ken and dmr, but do contain
   jack, peter, jay, bob, sun, lee. Can you tell us who these people where?

 - the binary files on s2, /usr/sys/core and /usr/sys/a.out, appear on the s1
   tape. That would seem to indicate that the two tapes were written at about
   the same time.

Here is my hypothesis: both tapes come from the PDP-11/20 system pictured in
http://cm.bell-labs.com/cm/cs/who/dmr/picture.html, from around Feb 1973.
You would have been working mostly on the 11/45, enhancing UNIX to use the
memory management and other facilities on the new platform. The 11/20 would
not have been able to use most of the new code, so the binaries on it were
left mostly untouched, but a few things on the system were updated like
/etc/init and the password files.

An alternative hypothesis: the tapes come from another 11/20, used by
jack, peter, jay, bob, sun, lee. Again, it contains mostly 1e and 2e files
because it could not be updated to 3e which had 11/45 support.

Any help with the history of the s1 and s2 tapes would be much appreciated.
We are writing a paper for the IEEE Annals of the History of Computing, which
still does not have a single UNIX paper in it.

Thanks again Dennis,
	Warren

P.S The 2e manual does not mention the 0405 a.out header. Can you remember if
2e supported both 0405 and 0407, but the 0405 support was not documented? It
would help to explain why the s2 system had both types in /bin.

---

From: [email-masked]
Date: Thu, 15 May 2008 01:09:47 -0400

Some few notes (not many answers).  As is probably
somewhere in the notes, the tapes were stored under
raised floor, and not well marked, finally read years
later.

>  - did the 2 tapes come from the same system?

I don't know.  We had 3 early machines: the original
PDP-11/20, then an 11/20 with the KS-11 special
systems memory protection/relocation box for a while
while waiting for the 11/45.
>  - do you know if the 2 tapes were written at roughly the same time or not?

I guess from the dates, "roughly" the same time.
>    jack, peter, jay, bob, sun, lee. Can you tell us who these people where?

Those names I don't remember.  Around that time we had
some Explorer Scouts as guests, and I don't remember
any of them (except one, Jon Sieber, who was around for
some time afterward, but doesn't seem to figure in the story.

> because it could not be updated to 3e which had 11/45 support.

The thing that seems somewhat mysterious to me is how incomplete
they are---not really capable of supporting themselves.
In other words, not complete dumps of anything.  Of course
people tended to dump out their own trees (though
the tape would probably be labeled by the person).
Of course we might have just grabbed a tape with random
stuff on it and added whatever source we were interest in,
leaving the existing detritus.

The other thing to remember is that the epoch changed
more than once by then--so dates could be off by a year.
> still does not have a single UNIX paper in it.

Good luck!

   Dennis

---

From: Warren Toomey <[email-masked]>
Date: Thu, 15 May 2008 16:04:25 +1000

Thanks for the reply Dennis. This is just a followup, so no reply needed.

> more than once by then--so dates could be off by a year.

I'm fairly certain that s2-bits has 1972 as the epoch. In /bin/form we have
this snippet of binary (dumped with hexdump):

00000280  14 8a 77 00 8e 01 1f 00  1d 00 1f 00 1e 00 1f 00  |..w.............|
00000290  1e 00 1f 00 1f 00 1e 00  1f 00 1e 00 e7 03 b6 42  |...............B|
000002a0  be 42 c7 42 cd 42 d3 42  d7 42 dc 42 e1 42 e8 42  |.B.B.B.B.B.B.B.B|
000002b0  f2 42 fa 42 03 43 4a 61  6e 75 61 72 79 00 46 65  |.B.B.CJanuary.Fe|
000002c0  62 72 75 61 72 79 00 4d  61 72 63 68 00 41 70 72  |bruary.March.Apr|
000002d0  69 6c 00 4d 61 79 00 4a  75 6e 65 00 4a 75 6c 79  |il.May.June.July|
000002e0  00 41 75 67 75 73 74 00  53 65 70 74 65 6d 62 65  |.August.Septembe|
000002f0  72 00 4f 63 74 6f 62 65  72 00 4e 6f 76 65 6d 62  |r.October.Novemb|
00000300  65 72 00 44 65 63 65 6d  62 65 72 00 00 00 00 00  |er.December.....|

Starting at 0x286 we have: 001f, 001d, 001f, 001e .. which corresponds to
this assembly code from form1.s:

daytab: 31.; 29.; 31.; 30.; 31.; 30.; 31.; 31.; 30.; 31.; 30.; 999.

which indicates that the year is a leap year, effectively ruling out 1971 or
1973 for the date of the tape.

Finally, another person (Doug Merritt) has spent some time reassembling the
fragments of C and assembly source code on the s1-bits tape, and I have been
doing the same thing. We independently did the work, comparing with similar
source from 5th Edition, and then we cross-compared our work together. The
result is a set of source files from the s1-bits tape that cover early UNIX
commands from `a' to `l'. I am attaching a tarball of the userland source
we have working so far.

Thanks again,
	Warren

---

From: Warren Toomey <[email-masked]>
Date: Wed, 27 Aug 2008 08:44:16 +1000

Hi Dennis. Back when we were doing the 1e restoration, I might have mentioned
that I planned to write up a paper for the IEEE Annals of Computing History.
After languishing on the back burner now for 6 weeks, it is mostly done. I
would very much appreciate it if you could quickly read through the paper and
spot any glaring errors or omissions, but if you are busy (which I expect is
the case), that's fine as well.

There is one small part I still need to fill in. I know that Project Genie
was also an influence on the early system (apart from Multics). I am sure I
read some notes which indicated that the cost of spawning a new process on
Multics was expensive, and so processes under Multics were usually long-lived.
However, Project Genie demonstrated that the cost of process creation did not
need to be so expensive, and so you adapted the Project Genie process model
for the early Unix system. However, I cannot find the reference/citation for
this information. Does it ring any bells to you? Perhaps it was in one of
the oral interviews that Mahoney did.

Apart from Multics and Project Genie, were there any other systems which
influenced the early design of Unix?

Although the 1e restoration is now complete, I am still amazed that it was
even possible to restore the system from a paper listing; the same is true
for the Nsys kernel and the two early C compilers. They demonstrate that
restoration of such artifacts is possible, but also highlight the fragility
of software older than a couple of decades.

Many thanks again for all the assistance you have given me over the years.

Cheers,
	Warren