The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: pnr@planet.nl (Paul Ruizendaal)
Subject: [TUHS] Unix with TCP/IP for small PDP-11s
Date: Tue, 23 May 2017 00:07:34 +0200	[thread overview]
Message-ID: <830AF76B-3E3C-4C76-9ED6-959AC38AF6EE@planet.nl> (raw)
In-Reply-To: <CAC20D2OXOwYnbwpv8O=E14j-PQRONJrKL6VEyvCc+Reeguy72Q@mail.gmail.com>

Clem,

You've got me confused.

> The API pretty much worked this way...  there was one simple kernel hook.   A small mod was done to the old nami routine (what modern UNIX calls 'lookup'), as a path was being parsed, the rest of the path was left in place made available to other routines.

The UoI Arpanet code did not use the partial path parsing that you describe.
The namei() routine is unchanged (see http://www.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/ken/nami.c).

The code recognizes a network open, because the open() is of a special character file with major number 255;
the minor number would be the remote address (1974 arpanet used 8 bit network addresses - 6 bits IMP, 2 bits host).
If the 'mode' parameter to open() is 0, 1 or 2, then a NCP/telnet connection would be made to that host. If the mode parameter was anything else, it was a pointer to a data block with the full specification of the connection to be made. See:
http://www.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/ken/sys2.c - open1()
http://www.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/ncpk/nopcls.c - netopen()

The data block contained all the parameters that are set via calls to connect/bind/listen in the BSD sockets API. 

> There were a couple of different schemes with V7's multiplexor call was created by Chesson for DataKit (which was similar to was used in the UofI code Arpanet code).

You've lost me here.

Paul

On 22 May 2017, at 18:29 , Clem Cole wrote:

> The Rand API is documented in a couple of papers that have been discussed here previously.   I'll have to do a little googling to find them.   The ChaosNET docs are the best MIT docs.
> 
> 
> The API pretty much worked this way...  there was one simple kernel hook.   A small mod was done to the old nami routine (what modern UNIX calls 'lookup'), as a path was being parsed, the rest of the path was left in place made available to other routines.
> 
> Thus you could open:  /dev/tcp/xxx  and the string xxx was available in call that was implementing tcp and was then able to be passed xxx as a parameter.  Hence, the traditional open/close/read/write was all that was needed.
> 
> Joy codified a new API that was supposed to be more network centric and map to different network protocols - the thinking being that open/close/read/write were insufficient semantics for network operations.
> 
> Also, the only other issue at the time was that BSD's select(2) did not exist, and the UNIX I/O were 100% synchronous.  So some other mechanism (also discussed here) needed to be created to avoid blocking in the application.  There were a couple of different schemes with V7's multiplexor call was created by Chesson for DataKit (which was similar to was used in the UofI code Arpanet code).   Rand, UNET & Chaos had something else that gave the save async function, who's name I've forgotten at the moment, but I believe Noel posted the code for same in the last year from one of the MIT kernels - we had used it at CMU that we had gotten from Rand.
> 
> On Mon, May 22, 2017 at 10:51 AM, Steve Simon <steve at quintile.net> wrote:
> hi Clem,
> 
> do you have pointers to any documentation on the rand/MIT network API?
> 
> -Steve



  parent reply	other threads:[~2017-05-22 22:07 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-22  9:28 Paul Ruizendaal
2017-05-22 14:09 ` Clem Cole
2017-05-22 14:51   ` Steve Simon
2017-05-22 16:29     ` Clem Cole
2017-05-22 16:35       ` Ron Natalie
2017-05-22 22:07       ` Paul Ruizendaal [this message]
2017-05-22 23:25         ` Clem Cole
2017-05-23  0:36           ` Paul Ruizendaal
  -- strict thread matches above, loose matches on Subject: below --
2017-05-24 15:21 Noel Chiappa
2017-05-24 17:19 ` Jeremy C. Reed
     [not found] <mailman.1.1495591202.25149.tuhs@minnie.tuhs.org>
2017-05-24  9:20 ` Paul Ruizendaal
2017-05-23 13:43 Noel Chiappa
2017-05-23 11:35 Paul Ruizendaal
2017-05-23  1:33 Noel Chiappa
2017-05-23  1:14 Noel Chiappa
     [not found] <mailman.1.1495245601.20449.tuhs@minnie.tuhs.org>
2017-05-20 10:46 ` Johnny Billquist
2017-05-20 17:39   ` Henry Bent
2017-05-20 20:40     ` Johnny Billquist
2017-05-20 20:44       ` Henry Bent
2017-05-20 18:18   ` Warner Losh
2017-05-20 19:05     ` arnold
2017-05-20 20:29       ` Warner Losh
2017-05-20 21:41       ` David Arnold
2017-05-20 21:59         ` Erik E. Fair
2017-05-20 20:40     ` Johnny Billquist
2017-05-20 21:05       ` Warner Losh
2017-05-20 21:34         ` Johnny Billquist
2017-05-21  5:13           ` Random832
2017-05-21 11:04             ` Ron Natalie
2017-05-19 15:15 Noel Chiappa
2017-05-19 16:29 ` Henry Bent
2017-05-19 19:04   ` Ron Natalie
2017-05-20  0:15     ` Warner Losh
2017-05-20  0:21       ` Warner Losh
2017-05-19 17:39 ` Clem Cole
2017-05-21 16:16   ` Dave Horsfall
2017-05-21 19:58     ` Clem Cole
2017-05-21 20:57       ` Ron Natalie
2017-05-21 21:26         ` Clem Cole
2017-05-21 21:46         ` William Pechter

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=830AF76B-3E3C-4C76-9ED6-959AC38AF6EE@planet.nl \
    --to=pnr@planet.nl \
    /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).