The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Pat Barron <patbarron@acm.org>
To: tuhs@minnie.tuhs.org
Subject: Re: [TUHS] What was your "Aha, Unix!" moment?
Date: Mon, 14 Oct 2019 20:28:14 -0400 (EDT)	[thread overview]
Message-ID: <alpine.LFD.2.21.1910141915570.15367@booboo.lectroid.com> (raw)

I don't know that I had a single "Aha!" moment, but there were a few 
things that just got hold of me and led me down the Unix path...

The first Unix I used was V7m on a PDP-11/40, in college.  By this point, 
I was "aware" of Unix, in theory I even knew C - but never had an actual 
system to try it out on until this point.  I'd used other operating 
systems (or things that called themselves operating systems...), primarily 
TRSDOS, CP/M, OS1100, TOPS-10, TOPS-20, and VMS.  Unix was certainly the 
first multiuser operating system that I ever had administrator access on.

1) The idea of taking the output of one program, and using it directly as
    input to another program - and the simplicity by which it was done -
    was revolutionary to me.  It was not unusual for me at that time to do
    things like this by having the first program create a temporary file,
    and then having another program open this temporary file and use it as
    input, but the whole paradigm of stdin/stdout/pipes made it so you
    didn't even have to "know" in your program that you might need to use
    the output of some other program (via a temporary file) as input.
    That was amazing to me.

2) Unix was really the first operating system that I had full, buildable
    sources for.  (I theoretically had access to VMS source code, but it
    was on microfiche and not in machine-readable form, so it was just a
    read-only reference.)  If I wanted to see how the OS was doing
    something, I could look.  If I wanted to change something the OS did,
    or add something to the OS (either in the kernel, or as a user space
    utility), I could do that (and I did on a couple of occasions).  If
    something was broken, I could try to figure it out and fix it.  There
    was this bug in V7m, where if you were on a non-separate I&D system
    that didn't have the floating point option (and our 11/40 did not), and
    you tried to run an "a.out" file that was zero length, you'd get a
    kernel panic.  We were using the system for a computer architecture
    course, students were programming in assembly language, and if there
    was a problem with the source file the assembler would leave a zero
    length executable behind.  Of course, students would try to run it
    anyway, even though "as" produced errors.  We'd sometimes get 3 or 4
    system crashes in the course of an evening.  The students and the
    instructors were all up in arms because any time this would happen,
    everyone would lose whatever they were working on (and maybe more, if
    the filesystem got messed up during the panic), and if there was no one
    around who had a key to the computer room when it happened, it would
    stay down until they could find someone who had physical access and the
    knowledge to know how to deal with "fsck"...  (The construction in the
    lab was pretty minimal, and the walls to most of the rooms didn't go
    all the way to the ceiling - sometimes when it crashed and no one was
    around, they'd take to climbing over the wall to reboot the system
    themselves - which could produce disasterous results of there were
    filesystem issues...)  I found the problem, and I fixed it.  That was
    my first adventure in kernel debugging...  (Later, we migrated to a
    PDP-11/24 and we ordered the KEF11-A floating point option for it, so
    that problem became moot.)

3) The idea of processes being able to talk to each other (without some
    kind of pre-arrangement, like setting up a pipe between them, or
    using temporary files) was just amazing, and this was the first time
    I'd really seen it.  I knew VMS had this thing called a "mailbox",
    but I never used it for anything and didn't even know what it was
    for.  On V7m, I stumbled across the mpx(5) man page.  I think the
    first time I came across it, I stared at it for hours, looking at
    the description and trying to figure out what you'd even use that
    functionality for.  At some point it was like a lightning bolt hit
    me - "Oh, wait!  You can use this to send messages between unrelated
    processes!"  Except V7m came with one little proviso - the mpx code
    was there, but it didn't work...  So I dug into it, and made it work -
    at least, well enough for what I wanted to use it for.  I wrote a
    multiuser chat program with it (isn't that the first thing any
    undergrad does when they discover interprocess communications?  :-) ).
    I had a similar epiphany with sockets on 4.2BSD a year or two later,
    under similar circumstances.  The one thing I found in command with
    both mpx and sockets was that the documentation described the
    low-level functionality - but there was nothing that clearly stated,
    "This functionaliy is used to allow processes to talk to each other"...

I'm sure there are plenty more experiences with early Unix that ensured
that I'd continue down this path, but I think these are my favorites.

--Pat.

             reply	other threads:[~2019-10-15  0:35 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-15  0:28 Pat Barron [this message]
2019-10-15  1:19 ` Andrew Warkentin
2019-10-15  4:06   ` Warner Losh
2019-10-15  4:27     ` [TUHS] Simple Unix install? (was: What was your "Aha, Unix!" moment?) Greg 'groggy' Lehey
2019-10-15  9:03       ` Arrigo Triulzi
2019-10-16  3:20         ` Warner Losh
2019-10-16  8:20         ` Matt Rudge
  -- strict thread matches above, loose matches on Subject: below --
2019-10-22 13:36 [TUHS] What was your "Aha, Unix!" moment? Noel Chiappa
2019-10-22 14:22 ` Abhinav Rajagopalan
2019-10-22 20:08   ` Warren Toomey
2019-10-21 12:34 Noel Chiappa
2019-10-21 12:10 Noel Chiappa
2019-10-21 16:50 ` Angelo Papenhoff
2019-10-20 19:25 Norman Wilson
2019-10-20 20:12 ` Sean Dwyer
2019-10-21  2:31   ` Ken Thompson via TUHS
2019-10-21  2:37     ` Warren Toomey
2019-10-22  5:25       ` Peter Jeremy
2019-10-22  6:29       ` Sean Dwyer
2019-10-21  2:40     ` Bakul Shah
2019-10-21  2:45     ` Larry McVoy
2019-10-21 10:45       ` jason-tuhs
2019-10-21 11:55         ` William Corcoran
2019-10-22  5:19         ` Adam Thornton
2019-10-16 14:39 Doug McIlroy
2019-10-14 16:45 Noel Chiappa
2019-10-14 15:32 Doug McIlroy
2019-10-15  8:42 ` Thomas Paulsen
2019-10-13 16:07 Noel Chiappa
2019-10-13 16:25 ` Richard Salz
2019-10-13  3:45 Rudi Blom
2019-10-13  1:57 Jon Steinhart
2019-10-12 13:55 Noel Chiappa
2019-10-12 14:51 ` Ronald Natalie
2019-10-12  4:42 Doug McIlroy
2019-10-12  6:12 ` Adam Thornton
2019-10-12 10:05 ` Steve Nickolas
2019-10-12 12:49   ` Doug McIlroy
2019-10-12 14:26     ` Steve Nickolas
2019-10-10 20:55 Warren Toomey
2019-10-10 21:11 ` SPC
2019-10-10 21:25   ` Jim Capp
2019-10-10 21:33     ` greg travis
2019-10-10 21:13 ` Michael Parson
2019-10-10 21:15 ` Matt Rudge
2019-10-10 21:31 ` Steffen Nurpmeso
2019-10-10 21:34 ` Larry McVoy
2019-10-10 23:10 ` Seth J. Morabito
2019-10-10 23:23 ` Brian L. Stuart
2019-10-10 23:28   ` George Michaelson
2019-10-10 23:35 ` Bakul Shah
2019-10-10 23:49   ` David
2019-10-11  1:44 ` Gregg Levine
2019-10-11  1:45   ` Gregg Levine
2019-10-11 10:55 ` Leah Neukirchen
2019-10-11 12:04   ` Tyler Adams
2019-10-13 19:46     ` Peter Jeremy
2019-10-14  2:13       ` Lawrence Stewart
2019-10-14  2:32         ` Rico Pajarola
2019-10-14  9:49           ` Michael Kjörling
2019-10-14 18:36             ` Nemo Nusquam
2019-10-14 21:10               ` Jim Geist
2019-10-14 22:22                 ` Warren Toomey
2019-10-14 22:56                 ` Arthur Krewat
2019-10-14 23:44                   ` Jim Geist
2019-10-14 23:47                     ` Adam Thornton
2019-10-14 23:54                       ` Arthur Krewat
2019-10-15  0:03                         ` Henry Bent
2019-10-14 23:54                       ` Ronald Natalie
2019-10-15  0:04                         ` Arthur Krewat
2019-10-15  0:06                           ` Ronald Natalie
2019-10-15  0:27                             ` Arthur Krewat
2019-10-15  0:07                         ` George Michaelson
2019-10-15  0:10                           ` Larry McVoy
2019-10-14 23:52                     ` Arthur Krewat
2019-10-11 12:53 ` KatolaZ
2019-10-11 16:44 ` Pete Wright
2019-10-11 17:13 ` Jim Geist
2019-10-11 17:20   ` Larry McVoy
2019-10-11 17:40   ` Jim Capp
2019-10-11 17:48 ` Larry W. Cashdollar via TUHS
2019-10-11 21:56 ` Tomasz Rola
2019-10-12  2:41 ` ricercar
2019-10-12  3:01   ` Larry McVoy
2019-10-12 14:37     ` Theodore Y. Ts'o
2019-10-12 16:12     ` David
2019-10-12 17:59       ` Adam Thornton
2019-10-12 19:10         ` Jon Forrest
2019-10-13 21:45           ` Steve Johnson
2019-10-14  0:36             ` Jon Forrest
2019-10-14  2:08               ` Lawrence Stewart
2019-10-16 13:29             ` Pierre DAVID
2019-10-12  3:23   ` Richard Salz
2019-10-12  3:34     ` Larry McVoy
2019-10-12 21:32     ` Steffen Nurpmeso
2019-10-12  8:55 ` Wesley Parish
2019-10-12 10:17 ` Naveen Nathan
2019-10-12 11:54 ` markus schnalke
2019-10-12 19:33 ` Michael Kjörling
2019-10-12 22:38   ` Gregg Levine
2019-10-13  1:37 ` Dan Cross
2019-10-13 15:00 ` Robert Brockway
2019-10-13 15:33 ` arnold
2019-10-13 15:41   ` Larry McVoy
2019-10-13 15:47     ` David Potesta
2019-10-18  1:49 ` Dave Horsfall
2019-10-18 12:07   ` Ronald Natalie
2019-10-21 16:16 ` Dario Niedermann
2019-10-23  5:13 ` Gilles Gravier
2019-10-23  6:19   ` Adam Thornton
2019-10-23 15:08   ` Arthur Krewat
2019-10-23 15:11     ` Larry McVoy
2019-10-23 15:26       ` Arrigo Triulzi
2019-10-23 15:33         ` Dan Cross
2019-10-23 16:19           ` Arthur Krewat
2019-10-23 15:17     ` Richard Salz
2019-10-23 15:22       ` Arrigo Triulzi
2019-10-23 16:45     ` Will Senn
2019-10-23 22:19       ` Adam Thornton
2019-10-24 17:32       ` Tom Ivar Helbekkmo via TUHS
2019-10-26  0:33     ` Dave Horsfall
2019-10-25 20:58 ` John S Quarterman
2019-10-25 22:11   ` Will Senn
2019-10-26  0:57 ` William Corcoran

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LFD.2.21.1910141915570.15367@booboo.lectroid.com \
    --to=patbarron@acm.org \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).