The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] forgotten versions
@ 2022-06-16 23:06 Rob Pike
  2022-06-16 23:17 ` [TUHS] " Earl Baugh
                   ` (4 more replies)
  0 siblings, 5 replies; 51+ messages in thread
From: Rob Pike @ 2022-06-16 23:06 UTC (permalink / raw)
  To: The Eunuchs Hysterical Society

[-- Attachment #1: Type: text/plain, Size: 962 bytes --]

Excited as I was to see this history of Unix code in a single repository:

https://github.com/dspinellis/unix-history-repo

it continues the long-standing tradition of ignoring all the work done at
Bell Labs after v7. I consider v8 v9 v10 to be worth of attention, even
influential, but to hear this list talk about it - or discussions just
about anywhere else - you'd think they never existed. There are exceptions,
but this site does reinforce the broadly known version of the story.

It's doubly ironic for me because people often mistakenly credit me for
working on Unix, but I landed at the Labs after v7 was long dispatched. At
the Labs, I first worked on what became v8.

I suppose it's because the history flowed as this site shows, with BSD
being the driving force for a number of reasons, but it feels to me that a
large piece of Unix history has been sidelined.

I know it's a whiny lament, but those neglected systems had interesting
advances.

-rob

[-- Attachment #2: Type: text/html, Size: 1270 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread
* [TUHS] Re: forgotten versions
@ 2022-06-17 14:50 Paul Ruizendaal
  0 siblings, 0 replies; 51+ messages in thread
From: Paul Ruizendaal @ 2022-06-17 14:50 UTC (permalink / raw)
  To: tuhs


Wholeheartedly agree with the observations on forgotten versions, lack of source and a smaller pool of people back in the day.

It is not just the Research versions, also the internal AT&T versions and the base System V versions get little attention. Same reasons I think.

Luckily, these days the sources are available (although in the case of SysV of unclear legal status).

Part of the problem I think is that it is not well known what innovations are in each version. About 2 years ago I did a lot of spelunking through the V8 source and with the help of this list could come up with a list of highlights for V8 (text is now on the TUHS V8 source web page).

Never had the time to do that for V9. I think it was mentioned that it had a new filesystem with a bitmap free list. Also, it seems to have a lot of cleaned-up implementations of things that were new and rough in V8.

No clue what was new in V10.

Similar with Unix 3, Unix 4 and Unix 5. I’m thrilled that the docs for Unix 4 showed up recently. In these doc’s there is no material on IPC. From this I think that the IPC primitives from CB-Unix did not get merged in Unix 4, but only in Unix 5 (in a reworked form).

Personally, I’m still working (off and on) on recreating the Reiser demand paging system. To keep it interesting I’ve now got Sys III running on a small RISC-V board, and when I find another time slot I’ll try to add Reiser paging to it.

So the forgotten versions are only mostly forgotten, not totally forgotten :^)


^ permalink raw reply	[flat|nested] 51+ messages in thread
* [TUHS] Re: forgotten versions
@ 2022-06-18  0:35 Douglas McIlroy
  2022-06-18  5:00 ` Kevin Bowling
  0 siblings, 1 reply; 51+ messages in thread
From: Douglas McIlroy @ 2022-06-18  0:35 UTC (permalink / raw)
  To: TUHS main list

> I can think of at least 4 things, some big, some small, where post-V7
> Research Unix was influential

Besides streams, file system switch, /proc, and /dev/fd. v8 had the
Blit. Though Rob's relevant patent evoked disgruntled rumblings from
MIT that window systems were old hat, the Blit pioneered multiple
windows as we know them today. On the contemporary Lisp Machine, for
example, active computation happened in only one window at a time.

V8 also had Peter Weinberger's Remote File System. Unlike NFS, RFS
mapped UIDS, thus allowing files to be shared among computers in
different jurisdictions with different UID lists. Unfortunately, RFS
went the way of Reiser paging.

And then there was Norman Wilson, who polished the kernel and
administrative tools. All kinds of things became smaller and
cleaner--an inimitable accomplishment

> No clue what was new in V10

This suggests I should put on my to-do list an update of the Research
Unix Reader's combined table of man-page contents, which covers only
v1-v9. I think it's fair to say, though, that nothing introduced in
v10 was as influential as the features mentioned above.

Doug

^ permalink raw reply	[flat|nested] 51+ messages in thread
* [TUHS] Re: forgotten versions
@ 2022-06-18 19:55 Paul Ruizendaal
  0 siblings, 0 replies; 51+ messages in thread
From: Paul Ruizendaal @ 2022-06-18 19:55 UTC (permalink / raw)
  To: tuhs


For those interested in a quick feel for V8 and early SysV, I recommend the excellent unix50 stuff:

SSH to unix50: "ssh unix50@unix50.org”

Password is “unix50”

You end up in a menu with:

SDF Public Access UNIX System presents ...

   /~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/
   /~/~ H Y S T E R I C A L ~ U N I X ~ S Y S T E M S ~/~/
   /~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/

    [a]  UNICS (Version Zero)   PDP-7       Summer   1969
    [b]  First Edition UNIX     PDP-11/20   November 1971
    [c]  Fifth Edition UNIX     PDP-11/40   June     1974
    [d]  Sixth Edition UNIX     PDP-11/45   May      1975
    [e]  Seventh Edition UNIX   PDP-11/70   January  1979
    [f]  Research UNIX 8        VAX-11/750           1984
    [g]  AT&T UNIX System III   PDP-11/70   Fall     1982
    [h]  AT&T UNIX System V     PDP-11/70            1983
    [i]  AT&T UNIX System V     3b2/400              1984
    [j]  4.3 BSD                MicroVAX    June     1986
    [k]  2.11 BSD               PDP-11/70   January  1992
    [w]  What's running now?
    [q]  QUIT (and run away in fear!)

    User contributed tutorials are at https://sdf.org/?tutorials/unix50th
    Want persistent images? networking? more ttys? Join https://sdf.org

Don’t to exit from a run, press Ctrl-E to return to sims, type 'exit', type ‘q'

I just tried V8 and it still works, although the boot log suggests that an image reset may be in order.

Many, many thanks to whoever is maintaining this!



^ permalink raw reply	[flat|nested] 51+ messages in thread
* [TUHS] Re: forgotten versions
@ 2022-06-22 12:06 Noel Chiappa
  2022-06-23  0:02 ` Dan Cross
  0 siblings, 1 reply; 51+ messages in thread
From: Noel Chiappa @ 2022-06-22 12:06 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Paul Ruizendaal

    > [c]  Fifth Edition UNIX     PDP-11/40   June     1974
    > [d]  Sixth Edition UNIX     PDP-11/45   May      1975
    > [e]  Seventh Edition UNIX   PDP-11/70   January  1979

This table gives an erroneous impression of which versions supported which
PDP-11 models. 4th Edition supported only the /45; 5th Edition added support
for the /40; and the /70 appeared in 6th edition.

	Noel

^ permalink raw reply	[flat|nested] 51+ messages in thread
* [TUHS] Re: forgotten versions
@ 2022-06-23  2:18 Noel Chiappa
  0 siblings, 0 replies; 51+ messages in thread
From: Noel Chiappa @ 2022-06-23  2:18 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Dan Cross

    > I believe that's actually a menu

Hence the "erroneous _impression_" (emphasis added).

I'm curious as to how they decided which models to run which editions on.
Although V4 _ran_ on the /45, split I+D wasn't supported - for user or kernel
- until V6. (I'm assuming a number of things - both in the kernel, and
applications - started hitting the 64KB limit, which led to its support.)


Speaking of split I+D, there's an interesting little mystery in V6 that at
one point in time I thought involved split I+D - but now that I look closely,
apparently not. The mystery involves a 'tombstone' in the V6 buf.h:

  #define B_RELOC 0200 /* no longer used */

I had created (in my mind) an explanation what this is all about - but now
that I look, it's probably all wrong!

My explanation involves the slightly odd layout of the kernel in physical
memory, with split I+D; data below the code, at physical 0. This actually
makes a lot of sense; it means the virtual address of any data (e.g. a
buffer) is the same as its physical address (needed for DMA). It does require
the oddness of 'sysfix', to invert the order of code+data in the system
binary, plus odd little quirks in the assembler startup (e.g. copying the
code up to make room for BSS).

So I thought that B_RELOC was a hangover from a time, at the start of split
I+D, when data _wasn't_ at physical 0, so a buffer's virtual and phsyical
addresses differed.

But that must be wrong (at least in any simple way). B_RELOC was in buf.h as
of V4 - the first kernel version in C - with no split I+D. So my theory has
to be wrong.

However, I am unable to find any code in the V4 kernel which uses it! So
unless someone who remembers the very early PDP-11 kernel can enlighten us,
its purpose will always remain a mystery!

	Noel

^ permalink raw reply	[flat|nested] 51+ messages in thread
* [TUHS] Re: forgotten versions
@ 2022-06-24  6:47 Paul Ruizendaal
  2022-06-25 19:16 ` Anthony Martin
  0 siblings, 1 reply; 51+ messages in thread
From: Paul Ruizendaal @ 2022-06-24  6:47 UTC (permalink / raw)
  To: tuhs


On Tue, Jun 21, 2022 at 05:56:02PM -0600, Jacob Moody wrote:
> I recently stumbled across the existence of datakit
> when going through the plan9foundation source archives.
> Would be curious to hear more about its involvement
> with plan9.

There are at least 2 versions of Datakit. I my current understanding there are “Datakit” which is the research version, and “Datakit II” which seems to be the version that was broadly deployed into the AT&T network in the late 80’s -- but very likely the story is more complicated than that. Plan9 is contemporaneous with Datakit II.

In short, Sandy Fraser developed the “Spider” network in 1970-1974 and this was actively used with early Unix (at least V4, maybe earlier). Sandy was dissatisfied with Spider and used its learnings to start again. The key ideas seem to have gelled together around 1977 with the first switches being available in 1979 or so. The first deployment into the Bell system was around 1982 (initially connecting a handful of Bell sites).

In 1979/1980 there were two Datakit switches, one in the office of Greg Chesson who was writing the first iteration of its control software, and one in the office/lab of Gottfried Luderer et al., who used it to develop a distributed Unix.

Datakit at this time is well described in two papers that the ACM recently moved from behind its paywall:

https://dl.acm.org/doi/pdf/10.1145/1013879.802670  (mostly about 1980 Datakit)

https://dl.acm.org/doi/pdf/10.1145/800216.806604  (mostly about distributed Unix)

The Chesson control software was replaced by new code written by Lee McMahon around 1981 (note: this is still Datakit 1). The Datakit driver code in V8 is designed to work with this revised Datakit. Three aspects of Datakit show through in the design the V8-V10 networking code:
- a separation in control words and data words (this e.g. comes back in ‘streams')
- it works with virtual circuits; a connection is expensive to set up (‘dial’), but cheap to use
- it does not guarantee reliable packet delivery, but it does guarantee in-order delivery

Probably you will see echoes of this in early Plan9 network code, but I have not studied that.



^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2022-06-27  0:59 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-16 23:06 [TUHS] forgotten versions Rob Pike
2022-06-16 23:17 ` [TUHS] " Earl Baugh
2022-06-16 23:18 ` George Michaelson
2022-06-16 23:44   ` George Michaelson
2022-06-17  0:10     ` Larry McVoy
2022-06-17 16:23     ` [TUHS] Sockets vs Streams (was " Bakul Shah
2022-06-17 17:43       ` [TUHS] " Paul Winalski
2022-06-17 22:52       ` Dan Stromberg
2022-06-17  7:20 ` [TUHS] " Diomidis Spinellis
2022-06-17  7:33   ` Rob Pike
2022-06-17  8:34   ` arnold
2022-06-17 10:52 ` arnold
2022-06-18  7:05 ` Angelo Papenhoff
2022-06-19  7:50   ` Rob Pike
2022-06-19  8:17     ` Angelo Papenhoff
2022-06-19  8:53       ` Rob Pike
2022-06-19  9:02         ` Angelo Papenhoff
2022-06-19  9:14           ` arnold
2022-06-19  9:19             ` Angelo Papenhoff
2022-06-19  9:23               ` arnold
2022-06-19 11:37                 ` Matthias Bruestle
2022-06-19 14:47         ` Kenneth Goodwin
2022-06-19 16:27           ` Al Kossow
2022-06-19 18:32           ` Theodore Ts'o
2022-06-19 18:38             ` Dan Cross
2022-06-21 23:56               ` Jacob Moody
2022-06-22  0:13                 ` Larry McVoy
2022-06-22  0:48                   ` Rob Pike
2022-06-22  1:55                     ` George Michaelson
2022-06-22  2:10                       ` Bakul Shah
2022-06-22  2:14                       ` Jon Steinhart
2022-06-22  2:19                         ` Andrew Hume
2022-06-22  2:58                           ` Rob Pike
2022-06-22  3:09                             ` George Michaelson
2022-06-22  2:16                   ` Andrew Hume
2022-06-22  2:55                   ` Brad Spencer
2022-06-17 14:50 Paul Ruizendaal
2022-06-18  0:35 Douglas McIlroy
2022-06-18  5:00 ` Kevin Bowling
2022-06-18  5:13   ` Adam Thornton
2022-06-18 16:58     ` Clem Cole
2022-06-18 17:18       ` Warner Losh
2022-06-18 17:57         ` Clem Cole
2022-06-18 19:55 Paul Ruizendaal
2022-06-22 12:06 Noel Chiappa
2022-06-23  0:02 ` Dan Cross
2022-06-23  2:18 Noel Chiappa
2022-06-24  6:47 Paul Ruizendaal
2022-06-25 19:16 ` Anthony Martin
2022-06-25 20:45   ` Paul Ruizendaal
2022-06-27  0:57     ` Kevin Bowling

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).