The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] Early Unix Spider network
@ 2017-05-26 19:08 Paul Ruizendaal
  0 siblings, 0 replies; 4+ messages in thread
From: Paul Ruizendaal @ 2017-05-26 19:08 UTC (permalink / raw)


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


Progressed a little further:

[1] The 'ufs' command was a variation on the 'nfs' command. The man page
that Noel provided for nfs includes the paragraph:

"There is a command /usr/usg/tom/ufs which transfers files to
the USG Unix systems.  The option letter 7 for the 11/70 or
4 for the 11/45 should be used.  Otherwise 'ufs' is similar to
'nfs'."

This means there must have been a Unix based File Store (server).
Does anybody have a suggestion who 'tom' at USG might have been?

[2] The V5 man pages in the archive have a man page for 'npr',
in section VI. It says:

NAME
	npr - print file on Spider line-printer

SYNOPSIS
	npr file …

DESCRIPTION
	Npr prints files on the line, printer in the Spider room,
	sending them over the Spider loop. If there are no arguments,
	the standard input is read and submitted. Thus npr may be used
	as a filter.

FILES
	/dev/tiu/d2 tiu to loop

It suggests that the printer was hooked up to the Spider switch and that
channel 2 was hardcoded to it.

[3] Upon closer inspection, the tiu.c driver is a character mode device,
the use of disk buffers and a strategy() routine had me confused.
It is just a reflection of the fact that it uses DMA hardware.

The code for tiu.c in NSYS/V4 is rather different from the code in
the SRI-NOSC tree: thinking on how to select channels seems to have
changed in between these two versions.

[4] Also I found the below post that mentions the snstat() call:
http://minnie.tuhs.org/pipermail/tuhs/2015-December/006286.html
The object code for snstat() is in libc.a in the dmr's V5 image.
Reconstructed, the source code is here:
http://chiselapp.com/user/pnr/repository/Spider/artifact/a93175746bd9f94f

In short, snstat() is a modified stty call, an evolution in the direction of
the later ioctl() system call.

No progress as yet on the early history of 'alarm()'.

Paul




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

* [TUHS] Early Unix Spider network
@ 2017-05-29  9:54 Paul Ruizendaal
  0 siblings, 0 replies; 4+ messages in thread
From: Paul Ruizendaal @ 2017-05-29  9:54 UTC (permalink / raw)



> The people working on TCP/IP did know of the Spider work (like they knew of
> the Cambridge ring work), but it didn't really have any impact; it was a
> totally different direction than the one we were going in.

I'm aware of that, and I think it was the same the other way around. My
interest is tracing how the networking API of Unix developed in the very
early days, and that's were there is a link.

When I asked a few months back why Bell Labs did not jump onto the work
done at UoI, Doug observed that the lab's focus was on Datakit and that
triggered my interest.

>>>> it turns out that the TIU driver was in Warren's repo all along:
> 
> V4?! Wow. I'd have never guessed it went that far back.

My current understanding is that Spider development began in 1969 and
that it was first operational in 1972. By '73/'74 it connected a dozen
computers at Murray Hill and Unix had gained basic network programs.


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

* [TUHS] Early Unix Spider network
@ 2017-05-27 13:52 Noel Chiappa
  0 siblings, 0 replies; 4+ messages in thread
From: Noel Chiappa @ 2017-05-27 13:52 UTC (permalink / raw)


    > From: Paul Ruizendaal

    >>> The report I have is: "SPIDER-a data communication experiment"
    >>> ...
    >>> I think it can be public now, but doing some checks.

OK, that would be great to have online. I _think_ the hardcopy I have
(somewhere! :-) is that report, but my memory should not be trusted.

The people working on TCP/IP did know of the Spider work (like they knew of
the Cambridge ring work), but it didn't really have any impact; it was a
totally different direction than the one we were going in.


    >>> it turns out that the TIU driver was in Warren's repo all along:

V4?! Wow. I'd have never guessed it went that far back.


    >>> The code calls snstat()

    >> The object code for snstat() is in libc.a in the dmr's V5 image.
    >> Reconstructed, the source code is here:
    >> ...
    >> In short, snstat() is a modified stty call

Yes, I looked and found the original source, appended below.


    >>> Could that be the tiu sys call (#45) in the sysent.c table for V4-V6?

I wonder if we'll ever be able to find a copy of the kernel code for that
tiu() system call. And I wonder what it did?


    > [1] Oldest alarm() code I can find is in PWB1
    > ...
    > Either alarm existed in V5 and V6 .. or is was added after V6 was
    > released, perhaps soon after. In the latter case the 'nfs' code that we
    > have must be later than 1974

Remember, that source came from the MIT system, which is a modified PWB1.
So it's not surprising it's using PWB1 system calls.

	Noel


--------

/ C interface to spider status call

.globl  _snstat
.globl  cerror

_snstat:
        mov     r5,-(sp)
        mov     sp,r5
        mov     4(r5),r0
        mov     6(r5),0f
        mov     8(r5),0f+2
        sys     stty; 0f
        bec     1f
        jmp     cerror
1:
        clr     r0
        mov     (sp)+,r5
        rts     pc

.data
0:      .=.+6



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

* [TUHS] Early Unix Spider network
       [not found] <mailman.880.1495676169.3779.tuhs@minnie.tuhs.org>
@ 2017-05-25 19:31 ` Paul Ruizendaal
  0 siblings, 0 replies; 4+ messages in thread
From: Paul Ruizendaal @ 2017-05-25 19:31 UTC (permalink / raw)



>> It is a paper copy, but I can make a scan for you.
> 
> That makes it sounds like it might not be possible to put it online?
> What's the exact title, so I can look and see if it's already online?
> I'm pretty sure I've got a hardcopy of some Spider thing, but it would
> probably take me a while to find it... ;-)

The report I have is:
"SPIDER-a data communication experiment", Tech Report 23 , Bell Lab, 1974.
I did not find it online, but it may be out there somewhere.

I think it can be public now, but doing some checks.

> OK, the only one I have is 'nfs'. Here's the source, and man page:
> 
>  http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/nfs.a
>  http://ana-3.lcs.mit.edu/~jnc/tech/unix/man6/nfs.6

Many thanks! There is some puzzling stuff in there that I'd like to
figure out, but that is easier to discuss once the report is online.

Also, it turns out that the TIU driver was in Warren's repo all along:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V4/nsys/dmr/tdir/tiu.c
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man4/tiu.4
It's fun to read that the V4 man page says "The precise nature of the
UNIX interface has not been defined yet." and Noel's version says:
"The precise nature of the UNIX interface is defined elsewhere." (yet
the dates are the same!).

Some things are surprising (to me, at least):

First of all, opening a connection to the File Store is a single open on
data channel 1:
http://chiselapp.com/user/pnr/repository/Spider/artifact/854a591c0e7a3a54?ln=26
I would expected the code to first have sent a connection request to the
switch on control channel 1. Perhaps the File Store was an integral part
of the switch/router (a Tempo minicomputer 
ftp://bitsavers.informatik.uni-stuttgart.de/pdf/tempoComputers/TEMPO-1_ad_Nov69.pdf)
with channel 1 functionality hardwired.

Next, the code has a hackish form of non-blocking I/O:
http://chiselapp.com/user/pnr/repository/Spider/artifact/55ee75831bd98d6c?ln=35,37
I'm puzzled about the alarm() sys call. That did not exist in 1973 -- or did it
only exist in Bell Labs private builds?

The code calls snstat(), for instance here:
http://chiselapp.com/user/pnr/repository/Spider/artifact/55ee75831bd98d6c?ln=38
That seems to be a sys call to here:
http://chiselapp.com/user/pnr/repository/Spider/artifact/2c7d65073a7cb0a5?ln=474,524
Could that be the tiu sys call (#45) in the sysent.c table for V4-V6?











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

end of thread, other threads:[~2017-05-29  9:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-26 19:08 [TUHS] Early Unix Spider network Paul Ruizendaal
  -- strict thread matches above, loose matches on Subject: below --
2017-05-29  9:54 Paul Ruizendaal
2017-05-27 13:52 Noel Chiappa
     [not found] <mailman.880.1495676169.3779.tuhs@minnie.tuhs.org>
2017-05-25 19:31 ` Paul Ruizendaal

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