On Tue, Sep 10, 2019 at 9:17 AM Clem Cole <clemc@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@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] 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-and-the-billion-dollar-toilet-seat/).

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