The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: clemc@ccc.com (Clem Cole)
Subject: [TUHS] History of top
Date: Thu, 24 May 2018 07:09:43 -0700	[thread overview]
Message-ID: <CAC20D2NkAYBCq2xF-2aO6ep-zvdBy1J=a5PszcviO2JN1hzu8g@mail.gmail.com> (raw)
In-Reply-To: <20180524122021.857BC18C09A@mercury.lcs.mit.edu>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3634 bytes --]

On Thu, May 24, 2018 at 5:20 AM, Noel Chiappa <jnc at mercury.lcs.mit.edu>
wrote:

>     > From: Lars Brinkhoff
>
>     > I'm surprised it appeared that late. Were there any other versions or
>     > similar Unix programs before that?
>
> The MIT ~PWB1 system had a thing called 'dpy', I think written at MIT
> based on
> 'ps' (and no doubt inspired by ITS' PEEK), which had similar functionality.
> Seems like it never escaped, though. Man page and source here:
>
>   http://ana-3.lcs.mit.edu/~jnc/tech/unix/man1/dpy.1
>   http://ana-3.lcs.mit.edu/~jnc/tech/unix/s1/dpy.c
>
> The top of my hard-copy man page says 'November 1977', but I suspect it
> dates
> back further than that.
>
>      Noel
>
> There were a bunch of these​ - originally mods off of ps(1) that kicked
around at different UNIX sites.   CMU's locally hacked ps was similar to
dpy and BSD's *stat programs (systatm vmstat, ...). The problem all of
these had was getting the data out of the OS.   The original scheme used by
ps being it ran setuid/gid, and then was able to opening /dev/kmem and
reading interesting data structures the kernel.  A big problem was that ps
and the OS had to be compiled with exactly the same headers and you really
had to know the layout and the obvious security concerns of using
setuid/gid to control things.

FreeBSD's sysctl and V8's /proc would finally clean that up by making a
formal interface to the OS and controlling what was available in a more
granular manner both from a data structure as well as security path.
 Although before /proc came to being (/proc was a UNIX innovation), the
sysctl(2) like interface was reinvented a few times, as it really was not
new with UNIX.   It's very much like a similar scheme that came from TOPS,
RSX and VMS (which the Masscomp system parroted being ex-DECies almost
exactly the same as VMS).  I believe that Sun had something also, but  I've
forgotten its name, Larry might remember.   But so did  DG-OS and many of
the other commercial UNIXs snd I would not be surprised if many University
hacks did it also.

My favorite of all of these was the one that George Gobble at Purdue built
when he did the Dual VAX.   He also spliced an PDP-11 on the UBA on the
their Dual Vax System and wrote a program that like top(1) refreshed itself
(at least as fast as once a sec IIRC).  It would read the VAX memory and
then display what the OS was doing in real time.   He did a neat talk in a
mid-1980's USENIX with a movie from it.   They found an interesting bug in
the BSD scheduler which had been there since 6th edition, which had never
really been noticed until people could visually watch what as happening and
actually get enough information about how processes were being handled.
[This was also around the time one of the first '0-day' issues with UNIX
was found by ghg and team which is now a cute story but at the time was
quite worrisome].


​The best I remember, the popularity of top(1) started because it was first
released as USENET came of age; and thus it got wide distribution.  By that
point, ​ *BSD was the 'standard' in most places, and this the *stat
commands were pretty well known. The top(1) program consolidated these into
a single one, plus it used the curses library so it could be left running
on a glass TTY.   As Vaxen were being used as large timesharing systems for
Universities to teach with, such a program was handy for the sys admins to
keep an eye on what was happening.

Clem

ᐧ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180524/59f9e2a6/attachment.html>


  reply	other threads:[~2018-05-24 14:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-24 12:20 Noel Chiappa
2018-05-24 14:09 ` Clem Cole [this message]
2018-05-24 14:43   ` Ronald Natalie
2018-05-24 14:50   ` [TUHS] Control-T (was top) Ronald Natalie
2018-05-24 15:01     ` Clem Cole
2018-05-24 15:48       ` Lars Brinkhoff
2018-05-24 15:08     ` Arthur Krewat
2018-05-28 22:32       ` Paul Winalski
2018-05-28 23:11         ` Clem cole
2018-05-28 23:32           ` Arthur Krewat
2018-05-29  1:12         ` Dave Horsfall
2018-05-28 10:31 ` [TUHS] History of top Lars Brinkhoff
  -- strict thread matches above, loose matches on Subject: below --
2018-05-29 21:35 Norman Wilson
2018-05-29 21:45 ` Arthur Krewat
2018-05-29 18:55 Noel Chiappa
2018-05-29 19:14 ` Clem Cole
2018-05-29 20:11 ` Dan Cross
2018-05-29 20:57   ` Arthur Krewat
2018-05-30  5:05 ` Lars Brinkhoff
2018-05-28 22:43 Nelson H. F. Beebe
2018-05-29  0:16 ` Clem cole
2018-05-29  1:34   ` Lyndon Nerenberg
2018-05-29  6:53 ` Lars Brinkhoff
2018-05-29 14:18   ` Clem Cole
2018-05-29 15:10     ` Arthur Krewat
2018-05-29 15:48     ` Steve Nickolas
2018-05-29 16:54 ` Paul Winalski
2018-05-29 17:08   ` Arthur Krewat
2018-05-24  6:14 Lars Brinkhoff
2018-05-24  9:35 ` Dave Horsfall
2018-05-24 10:58   ` jason-tuhs

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='CAC20D2NkAYBCq2xF-2aO6ep-zvdBy1J=a5PszcviO2JN1hzu8g@mail.gmail.com' \
    --to=clemc@ccc.com \
    /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).