The Unix Heritage Society mailing list
 help / color / Atom feed
* [TUHS] Unix on Aprpanet
@ 2020-06-06 11:30 Paul Ruizendaal
  0 siblings, 0 replies; only message in thread
From: Paul Ruizendaal @ 2020-06-06 11:30 UTC (permalink / raw)
  To: TUHS main list

>> On 2020, Jun 3, at 1:38 AM, Lars Brinkhoff <lars at> wrote: 
>> Lawrence Stewart wrote: 
>>> I remember working on getting Arpanet access on an 11/34 running V7 
>>> around 1978 or 1979. (SU-ISL). We used an 11/23 as a front end to run 
>>> NCP, using a variation of Rand’s code. I wrote some sort of bisync
>>> driver for packet communications between the /23 and the /34, and I
>>> think added an IOCTL or some hack to ask if there was a message ready.
>>> So a polling variety of non-blocking I/O :)
>> Has this, or Rand's code, been preserved? 
>> I'm only aware of one Arpanet NCP implementation for Unix that is 
>> online, the one from University of Illinois. 
> Alas I do not know. I may have some old emails from that era. I will check.

I have not so far come across an NCP Unix that was not based on the UoI code base.

At a time there was a “Rand Unix”, that combined the UoI code with a few other
extensions. A 1978 document describes the kernel as:

"UNIX version 6 with modifications some of which are:
- Accounting
- A system call to write end of files on pipes
- A system call which checks whether a process would sleep upon doing a read on either a pipe or tty
- Pseudo teletypes
- The network control program NCP written at the University of Illinois
- A new method of interprocess communication called ports. Ports are similar to pipes but have names and can be accessed by any process.”

The system call to write EOF on pipes is eofp() and the blocking read test is empty(). Both are available in the NCP Unix source code as included on the TUHS Unix Tree page. It could well be that the hack Lawrence refers to above was a modification to empty() to also cover his bisync driver.

I guess empty() is the first step on the path that includes capac()/await() and later select()/poll() as the preferred mechanism to prevent blocking on IPC files (incl. tty’s).

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-06 11:30 [TUHS] Unix on Aprpanet Paul Ruizendaal

The Unix Heritage Society mailing list

Archives are clonable: git clone --mirror

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone