On Tue, Sep 10, 2019 at 9:17 AM Clem Cole <clemc(a)ccc.com> wrote:
Below ... from memory - Someone like APS was a little
closer to some of
this than I was, so I might have a few things wrong. I don't think so, but
it's been quite a few beers
On Mon, Sep 9, 2019 at 2:26 AM Warner Losh <imp(a)bsdimp.com> wrote:
OK. I'm totally confused, and I see
contradictory information around. So
I thought I'd ask here.
PWB was started to support unix time sharing at bell labs in 1973 (around
V4 time).
No... that is not quite right. PWB was Mashey's project to build an RJE
system to front end SW development for the IBM systems, which AT&T had a
number [IIRC Call Accounting and lot of the 'business' part of the Bell
System was mainframe based]. I think Dick Haight was also involved. I've
forgotten the site there were at. It might have been Holmdel or Whippany.
But it was not MH or Summit.
"The Programmer's Workbench was started in 1973,[2]
<https://en.wikipedia.org/wiki/PWB/UNIX#cite_note-Mashey-2> by Evan Ivie
and Rudd Canaday to support a computer center for a 1000-employee Bell Labs
division" is what wikipedia says, though that reference is in a acm queue
article by Mashey...
PWB 1.0 was released just after V6 "based on" it.
Well
not so much "right after", but it was based on V6. There are
differences. IIRC this was the first attempt at redoing how groups
worked. The biggest additions were an IBM RJE support, SCCS and a
different set of backup utilities; including some disk to disk (volcpy) and
the original binary formatted program for 9-tracks (cpio) to replace
Ken's assembler based tp.
Yes. PWB had their own collection of add-ons. I believe, but can't find the
reference, that there were frequent imports of Research Unix into PWB as I
saw references to UNIX/TS and CB-UNIX never getting too far away from
Research Unix, so that's kinda speculative... I imagine that SCCS was a
boon for keeping it all straight, but I've never actually used SCCS.
SCCS was important and the RJE support was important
because that was the
system being used and it made a huge impression on AT&T staff. A terminal
to a UNIX box was way cheaper and to the IBM and people were so much more
productive.
Also remember, that tp(1) was written in assembler had been originally
targeted to DECtape in a very early version of Research UNIX. The DECtape
nature is why the directory was on the front of the tape. Ken moved it
9-track but used the same tape format. I don't remember who wrote stp
(super-tp - in C), [?? Harvard ?? it's on the Harvard tape and is how I got
it]. But better peripheral support was really important in Mashey's
setting. In that world, the production computer system was being put in
the raised floor computer rooms next to a mainframe and they had
'operators' so John and team started to think more about what was needed to
admin the system. IMHO: this was the first heavy use of shell scripts,
while I saw them in MH, it was Mashey's guys that cause me personally to
have an ah-ha moment about them.
Interestingly enough, and I have talked to Bourne and Mashey about it,
John's use of the V6 was definitely one of the groups that were asking for
a new shell, which Bourne set out to solve; but that is not yet available.
At some point (and here is where we need Steve Johnson, aps, and I wish
the late Ted Kowalski) to fill in details I can not. USG/Summit was
chartered to "support UNIX for the Bell System." As I understand it, the
genesis for their system was a kernel from MH that was moving towards V7s
but not there yet, the 'Typesetter C' and a bunch of other utilities that
Summit had collected/developed, but which I do not know. I think fsdb was
around by that time. The new Bourne Shell and adb were being developed
although how complete I'm not sure.
But accept for the new shell and updated compiler, I remember the system
'felt' like V6 (Thompson shell) and thinking how much 'better'
different v7
(Bourne Shell was) when we finally got it. This earlier system is the one
Ted brought to CMU in the fall 1977 (I think that is the right date) to
update the V6 system were then running. Anyway, Ted always referred to
this as a UNIX/TS kernel.
Another thing we did not have SCCS or the RJE stuff. What I'm not sure
of is if there was a formally release of what ted had. So it may have
been that TS had them and sent the release to Mashey, although I don't
think there were such releases originally in TS. FWIW: I believe that in
our (CMU) case,Ted would just grab things as they appeared that he
thought we needed at CMU and he pushed things back (like CMU's fsck as he
found things we had that he thought we would like). Interestingly
enough, RJE and SCCS was needed for the IBM support and while Ted (and his
undergrad roommate, Bill Joy) had worked on the MTS system on the IBM's at
UMich, I always felt like Ted looked down on the mainframes (which was were
I had also emerged but from CMU's TSS team).
Also, Ted was a die-hard original cpio user and I liked the user
interface to stp, which I remember was a difference/source of argument.
Tar did not yet exist. TS had some of the PWB tools like volcpy; but we
were using DOS-11's similar but different backup scheme (I've forgotten
the name of the format; but the tapes were boot-able, which volcpy tapes
were not).
FWIW: cu(1) did not yet exist. I wrote a program (that I tended to
prefer in some ways for many years) called connect(1cmu) that did the same
thing. We used it to download images to the Microprocessors like the
KIM-1. It was originally written with the v6 portable C library, which is
also what the original fsck used (it's what we had on v6). Ted introduced
me to what would become stdio and one of my first tasks was using it with
connect(1cmu). The other thing I remember about that program is it was the
first time I wrote something that used two separate processes on a UNIX
system that cooperated with each other and found it so much easier than on
the PDP-10.
Also, Dennis' stand-alone system for V7 was not yet available BTW. If I
think of anything else about that system I can remember, I'll send an update
PWB 2.0 was released just after V7, also "based on it".
I think the confusion is that TS and V7
were done sort of at the same time
and while the folks working on them talked to each other, it has never been
clear to me who was behind TS. For instance, I would learn that Bourne was
the 'project leader' for Seventh, in that he was the person that collected
everything for it. I never heard of someone having the same role for TS,
which is why I sometimes think it was a name inside of Summit, but never
actually saw the light of day as a formal release. I really am not sure
and would love to learn more details (I wish Ted were still alive to fill
us in).
Several timelines have, without references, Unix/TS or some variant of that
going back to the V4 time frame. It's at best murky. There's some
references in
https://wiki.tuhs.org/doku.php?id=misc:snippets:mert1 including
the post by Dan DeJegar which I had trouble parsing the ins and outs of.
As for V7 itself, Ken wrote tar(1) in response to cpio
(preferring an
ASCII based header, but 'threading' it like cpio did, but keeping the user
interface that tp/stp had). As I understand it, Dennis built up did the
standalone toolkit stuff. Ken changed groups and messed with the file system
in the kernel. Lots of new peripheral support, which is why he also
added lseek() as disks overflowed a 16-bit integer for the seek position.
Plus there were a number of other small changes between v6 and v7. Some of
this stuff from PWB and Summit went back to MH (fsck as an example), but
not everything (like cpio/volcpy/SCCS). I kind of think of the kernel and
Typesetter C going from MH to Summit and the PWB teams.
@Steve Johnson, I need your help here.... at some point PCC was created in
MH (along with lint). Didn't that start on V6 but was not complete until
V7? And when did you move to Summit to lead the compiler effort there? My
impressions that was yet to happen, but I'm fuzzy on dates.
Remember, there are a number of teams at BTL hacking on UNIX by then.
Dale's team in Columbus, the crew in Indiana Hill, folks at Western
Electric (the Teletype folks ported the Ritchie C to the Z80 at some point
for instance), *etc.*
Yea, the Columbus crew added a lot to the different versions, and merged
from them, according to the above link and a few other sources.
Again, I don't remember the politics but like any
big company, you can
imagine it was not all that clean and crisp. PWB 2.0 & 3.0 definitely
picked up features from other UNIX systems. As I remember, Dale's shared
memory hacks would beget System V Shared Mem, Semaphores and IPC (they are
different, but they started in Columbus).
This jives with other information that says the basis of system V share
memory, semaphores and ipc were derived from CB-Unix...
The other thing I'm not clear on is when the PWB
team was folded into USG (Unix
Support Group) in Summit. *I believe* that was after PWB 2.0 was
released. But at some point, Mashey's team and the USG got interwoven.
I really don't know/remember many of those details as I watched them from
the outside and only knew the results. The key point is the PWB 2.0 would
eventually be released as the internal, but official UNIX for the Bell
System. It was supposed to bring together the needed from the different
labs; but it was not >>officially<< released *outside of the Bell System*
(it was an internal product, remember at this point, AT&T is not allowed to
have computer products, etc...)
Yes. There's some confusion as PWB and UNIX/TS become a USG thing that
turns into System III and then the influx of CB-UNIX that's added before
System V. How all that relates to USG, I'm quite unclear on still...
So PWB 2.0 is basically internal, and a melding of V7,
TS, PWB 1.0 and
starting to take things from different labs with in BTL -- different from
all of them but mostly a superset.
Later Unix TS 3.0 would become System III.
No --I do not think this is a true statement... not sure where you got
that, more in a minute
From the above recollection of Dan DeJAger...
We know there was no System I or System II.
Correct.
But was there a Unix TS 1.0 and 2.0?
This is where it gets sticky. I
don't think so. TS was the original
work by USG. What I do not know is if it ever was 'packaged' as PWB had
been. *I do not believe it was*. I think a little like the way Research
'bled' out a little a time, pieces of TS made their way to MIT, CMU, *etc*.
but never as a formal release.
I've seen lots of references to UNIX/TS, but no versions, so this makes
some sense... And it appears they go back further than V6...
And were they the same thing as PWB 1.0 and 2.0, or
somehow just closely
related?
See above... I'll explain how PWB 3.0 became System III in a minute.
And I've seen both Unix/TS and Unix TS. Is
there a preferred spelling?
Don't know. I remember Ted always called it UNIX/TS all caps.
The thing you left out is how PWB 3.0 became System III.
Two important issues. First with V7, AT&T (Al Arms) wrote the first
binary system redistribution license. The commercial folks were happy to
have a redistribution license, but the terms were not what they really
needed. Much of the issue was that AT&T was not the computer hardware or
software business and really did not understand the issues that the vendors
had. Professor Dennis Allison of Stanford, was consulting for almost all
of us in the computer industry at the time (for those that don't know
Dennis, around the same time he founded what is now called the Asilomar
Microprocessor Workshop (check out:
https://www.computerhistory.org/atchm/the-asilomar-microcomputer-workshop-a…
).
Dennis arranged for a big meeting at Ricki's Hyatt in Palo Alto and
invited Al Arms and team, plus a representatives from his clients. I was
the techie with a lawyer from Tektronix in the room (as I have said in
other emails this it is only time I have been in a meeting with Bill
Gates). The folks I remember who were there: was Bill Munson and team from
DEC; Fred Clegg and Team from HP; Bob MetCalfe from 3Com; Gates and the
MSFT crew; folks from SCO and DG. There were some others, about 10 firms
in total; although I think if remember correctly, IBM was not among them
[This is the meeting where Gates famously exclaimed: "*You guys don't get
it. The only thing that matters in the software industry is volume*."].
BTW: The bits we were discussing was the upcoming release from USG, to be
called PWB 3.0 and they were for the PDP-11 only (which was fine, that was
what we all had been licensing already. We could still use things from
other places, because that is what those other places were all licensed to
have -- all was good in UNIX-land).
Thus began a series of negotiations for a new license agreement that would
allow the HW vendors to better ship UNIX as a binary product: FWIW: Gates
wanted to pay $25/copy. The DEC, HP and DG folks laughed. $1K/copy was
fine by them, since their HW was typically $50-150K/system.
Either shortly after or maybe during the negotiations time, Judge Green
ruled and AT&T got broken up. One of the things that occured is that AT&T
was now allowed to sell SW and more importantly their new 3B20 as a product
(against IBM and DEC). From a SW standpoint, AT&T Marketing did not like
the 'Programmers' moniker, feeling that it would limit who they could sell
too. So they rebranded the new software product 'System III.'
Note the printing of the manuals had already begun, which is why the cover
of the manuals say System III, but the title pages say PWB 3.0.
As other have said a few years later, another PWB release came out for the
Bell System, *a.k.a.* PWB 4.0; but this was not licensed outside.
At some point later, negotiations had restarted on yet another license
with the System III licensees and AT&T. By the time that completed, yet
another release had been finished by USG. The biggest change was the
addition support for HW besides the PDP-11. In particular, the official USG
support for the VAX and the 3B20. What I forget, but I think in that
license you had to declare a system type and most licensees picked the VAX.
By the time of release and finalization of the license, AT&T Marketing
which had already started the '*Consider it Standard*' campaign, called
the new release "System V."
AT&T Marketing would stay with System V moniker from then on and we know
have SVR2, SVR3, SVR4, SVR5 in later years.
Yea, the detailed part of my history ends with the progeny of V7 (and I
only have room for some, I've found maybe 3 dozen different systems that
started out with V7 and then merge in System III or System V code for later
versions or some variation on this theme).
Thanks for all your help with this topic and
sorting things out. It's
been quite helpful for my talk in a few weeks.
Warner
P.S. Would it be inappropriate to solicit feedback on an early version of
my talk from this group?
I would suggest sending a pointer to this group to the slides and ask for
people to send you comments privately.
Works for me. Let me update based on this and Steve's email.
I'm sure they would be rather keener on
catching errors in my
understanding of Unix history than just about any other forum...
Indeed - happy to help.
I am so very grateful for the help.
Clem