Well, I can share a bit of the piece of the elephant(s) I saw.
While most of the Unix folks were PDP-11 only (after MULTICS), I had
spent a couple of years helping to run the MH comp center. The
system for the IBM 7094 was among the best anywhere -- card decks were
staged to tape and the overhead of changing from one job to the next
was minimized. Most modest-sized job submissions were finished in
roughly an hour. When MULTICS started, the 7094 went away and it
was a huge jolt. There were some amazing programs (e.g., a LISP
compiler written in MACRO FAP that would go 250 levels deep to produce
good code). There were acoustic simulation programs that were way
ahead of their time. And they were all lost.
With MULTICS still way in the future and no more 7094, a software
package was put together to allow the MULTICS machines to run the
commercial GCOS system (the software was called the K package, K
standing for kluge. It was well named...) Anyhow, they needed
help, and asked me to help, and I did so for a couple of years,
largely supporting FORTRAN. Meanwhile, Dennis was inventing B, and
there was a limping version for the GE. He may have actually used it
as part of a bootstrap of the language -- I'm not sure. So I
discovered it, and started to use it to write some system admin
programs. I soon ran into some limitations, and started to lobby
Dennis for some changes. He listened politely, and then said "Why
don't you fix it. The compiler is just a program, after all..."
So I put some things into B, including support for the GE native 6-bit
character set. This eventually found its way into C and CPP.
Decades later, if you wrote `abc` in the DEC C compiler, it produced
GE strings... I also made it possible to call FORTRAN from C (the
other way was a bit harder...).
Eventually they set up an organization to formally own running the
comp center, and I was invited to return to Research and I did.
But I had gained a lot of sensitivity to the needs of Engineers and
Scientists just wanting to get their work done.
Years later, when I was asked to come over to Summit and head the
System V language department, V7 was behind us, and the Interdata port
had taught us a lot about portability. PCC had proved itself on a
half dozen machines and had been well received. But most of the Bell
System was using 16-bit DEC machines and Dennis' compiler. C++ was
under develpment and looked like a clear winner, but it needed a lot
of work. The debugging of C++ was horrible -- a program, Cfront,
converted C++ to C, but in the process screwed up the line numbers and
names so that using a debugger was almost impossible. My three
goals in going to Summit were to make C++ commercially available, to
provide a debugging technology that could handle not just C++ and C
but FORTRAN and ADA and PASCAL, and to base the code generation on the
PCC2 model to gain portability. Although AT&T's computer business
was pretty much a disaster, I felt that I had met these goals -- Elf
and Dwarf, C++ debugging, and the first commercial C++ product
happened on my watch. I also had a lot of fun working with a bright
and diverse group of talented people.
Sadly, as the AT&T computer business collapsed, I realized that I
loved doing advanced development, but not at ATT. My final straw was
when an excellent QA team leader at another location was fired for
telling the truth about how lousy one of the machines performed. So
it was off to Silicon Valley for me.
Steve
----- Original Message -----
From:
"Clem Cole" <clemc(a)ccc.com>
To:
"Warner Losh" <imp(a)bsdimp.com>
Cc:
"The Eunuchs Hysterical Society" <tuhs(a)tuhs.org>
Sent:
Tue, 10 Sep 2019 11:16:34 -0400
Subject:
Re: [TUHS] PWB vs Unix/TS
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 [1]> 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.
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.
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).
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. Lo
ts 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._
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).
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...)
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, m
ore in a minute
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.
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…
[2]).
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.
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.
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.
Clem
Links:
------
[1] mailto:imp@bsdimp.com
[2]
https://www.computerhistory.org/atchm/the-asilomar-microcomputer-workshop-a…