[TUHS] Unix with TCP/IP for small PDP-11s

Noel Chiappa jnc at mercury.lcs.mit.edu
Tue May 23 11:33:41 AEST 2017


    > From: Clem Cole

    > So some other mechanism (also discussed here) needed to be created to
    > avoid blocking in the application.
    > ...
    > Rand, UNET & Chaos had something else that gave the save async function,
    > who's name I've forgotten at the moment

I don't think the RAND code had the non-blocking stuff; AFAICR, all it had was
named pipes (effectively). Jack Haverty at BBN defined and implemented two new
calls (IIRC, 'capac()' and 'await()') to do non-blocking I/O. The
documentation for that is in the 'BBN' branch at TUHS:

  http://minnie.tuhs.org/cgi-bin/utree.pl?file=BBN-V6/doc/ipc/await
  http://minnie.tuhs.org/cgi-bin/utree.pl?file=BBN-V6/doc/ipc/ipc

My memory might be incorrect, but I don't think it was asynchronous (i.e. a
process issued a read() or write(), and that returned right away, before the
I/O was actually done, and the system notified the process later when the I/O
actually completed).

I actually did implement asyn I/O for an early LAN device driver - and just to
make it fun, the device was a DMA device, and we didn't want the overhead of a
copy, so the DMA was direct to buffers in the process - i.e. 'raw' I/O. So
that required some major system tweaks, to keep the process from being swapped
out - or moved around - while the I/O was pending.
  
    > I believe Noel posted the code for same in the last year from one of the
    > MIT kernels

I found it on the dump of an MIT machine, but it was never run on any machine
at MIT - we just had the source in case we had any use fot it.

       Noel



More information about the TUHS mailing list