[TUHS] What was your "Aha, Unix!" moment?

Ronald Natalie ron at ronnatalie.com
Sun Oct 13 00:51:25 AEST 2019

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.

More information about the TUHS mailing list