I graduated high school in 1977. I hadn’t heard anything about UNIX but I had hung
around the University of Maryland and the like enough to know about Digital Equipment
Corporation. One of my friend’s mother worked in the doc room a the local DEC office
in Lanham and being the budding computer geeks we had, we’d often stop by the office and
pick up whatever manuals she could spare to give us. I had processor handbooks, software
handbook, peripheral handbook, etc… all in my personal library when I enrolled at Johns
Hopkins that year.
I got a letter from Professor Bill Huggins who was teaching my first year course “Models
and Simulation” stating that the course would be taught on the departments PDP-11/45
computer (this I found in my documents) using BASIC/PLUS (again a fine DEC product taken
from the RSTS operating system) on the UNIX operating system. The last one stumped me.
There was not a mention (obviously) of UNIX anywhere in my docs. Of course, you
couldn’t google it back then, and I probably could have asked around at the UofM (I had
friends in various computer installations there) but probably would have not yielded an
answer.
All was answered a few weeks later when I started classes. The EE department had the
PDP-11 and it was run by an organization called the UCS (Undergraduate Computer Society)
on behalf of the department. This was a group of indeed undergraduates headed at the
time by Michael Muuss and Pete Koziar. It was split into groups including the system
programming headed by those two, documentation (led by George Toth), hardware (run by Bill
Lindeman), and Operations (Joe Pistritto). It was at an early meeting of this where the
whole UNIX things was explained to me. Also, having pretty much BASIC’d myself out in
high school (We used HP 2000 systems that only ran basic) and was desperate for a higher
level language (I’d done some Fortran and Cobol as well as APL and PLUM (and odd PL/I-ish
variant at UofM), I set to learn C. At the time there were mimeographed copies of
K&R’s document which was the first chapter of “The C Programming Language.” Mike
Muuss, always the one to mentor someone, helped review my early stabs at C. I remember
typing many of these on a Model 33 using \( \) for curly braces, etc…
I quickly moved through becoming an operator (where you had to demonstrate knowledge of
the file system structure as well as use of icheck/dcheck/clri and the like to recover
from crashes). Mike then mentored me through basic system programming. He printed
out a copy of the kernel sources for me. I volunteered to debug some device drivers
George Toth had written and Mike spent a night half sleeping on a bean bag chair in the
computer room supervising my stabs at Kernel work.
At that point UNIX did crash a bit and this wasn’t helped by the fact that there were many
students who thought that crashing or otherwise hacking on the machine was sport. I
rapidly became adept at working both sides of the scheme, but trying to break the machine
from user mode and then going back and fixing things (either ones I had found or figuring
out what others had done). It was probably the only machine other than ones I owned
myself that I was deeply involved in all aspects of. The University had a graphics
display system donated to them and I set about using a DR-11 to interface it.
After college I was hired to do database work on an RSX-11M system. However, the QA
department had just gotten in to PWB and source code control so I got deputized into
helping set up an IS PWB system to maintain the source and project documentation. It was
here that I hacked on the -ms macro package and the lineprinter spooler to handle security
classifications.
About six months into it, I ran into Mike and former classmates Bob Miles and Doug
Kingston at a Unix conference and they told me they were porting UNIX to a supercomputer,
the Delelcor HEP. I actually had a HEP manual (my friends at the UofM had given it to me
after they passed at doing the software). Soon I was back at BRL working with Mike
doing not only the HEP (I did the ld and F77 ports and all the IO system, as well as
conspiring with Denelcor’s Burton Smith on redesigning the IO system so it had reasonable
performance), but also on early TCP/IP work. I was going to use the MIT C gateway
(written by fellow list member Noel Chiappa) but support from MIT was problematic as Noel
had been deported to Bermuda (or some such thing) at the critical time, so I wrote my own
based on my own pidjin operating system, though it booted using a UNIX boot block and
filesystem.
Among other things I did, having detested the C shell syntax, was add many features
(notably job control and the TCSH-style command line editing) to /bin/sh. (KSH hadn’t
escaped the labs yet). Amusingly, since I sat down at a UNIX conference and explained
to some guys working on some of the open source shells how job control actually worked, my
name showed up in many of the Linux manual set as a contributor.
Those were really the glory days. Mike’s standard answer to any computer problem at the
labs was “Let’s put UNIX on it” and we usually did.
I then went off to spend several years as a University administrator (Rutgers) and then
got sucked into a startup Image Processing company where I remained for 21 years only
randomly dabbling in UNIX. Though several years in I was using a MIPS workstation.
Of course, I was using /bin/sh and absent mindedly typed “fg.” It came back and said
“Job control not enabled.” That was odd, I thought. It sounds like something I wrote.
I typed “set -J” and it said “Job control enabled.” Holy crap, this is one of my
shells. I later found that Doug Gwyn had put my shell on his SYSV-on-BSD emulation
package tape. The mach guys included the shell from that in all their distributions, so
any mach-derived system had a “ron shell” on it.