Am 11.08.2022 um 08:04 schrieb Paul Ruizendaal:
MUNIX was an AT&T SVR3.x implementation ...
Are you sure? Could it perhaps be SVR2? (I don’t see any STREAMS stuff that one would
expect for R3).
It is a hybrid system. I found files and similarities in R1, R2 as
well
as R3 - the C compiler (in my queue) for instance is likely derived (and
heavily modified) from a R1 origin, but in this version itself linked
with a C library where parts are newer, namely from a later released
version (in the update 3-3.1 in tape IS0463P) which I'll add in the
future. I am sure that the kernel libs will then reveal the missing
streams stuff.
I think it was a rolling release which also still contains parts of the
older 16 bit MUNIX for a 68010 with Motorolas FFP lib - the kernel still
contains an obsolete module named m68341 which emulates an incompatible
floating point lib. The 32 bit system here demands a 68020/68881
combination. There are also several QBUS I/O drivers which seem to stem
from the 16 bit systems which likely do no longer access real existing
hardware because the newer systems used a communication controller board
named ICC with an own 68010 processor and a highly stripped down
tailored UNIX (?) on it. This is also on my to-do list.
@readers of TUHS: can anyone say something about m68341? There are
Motorola FFP libs elsewhere on the net, but this appears to be a
complete copro emulation which intercepts the line-F interrupt which I
could not locate so far. Internally, it is pretty much optimized - I
doubt it was cooked at PCS itself, so it is likely a Motorola product.
And no, it has absolutely nothing to do with the embedded controller
MC68341.
Currently I am dissecting the also rather unique a68 assembler which is
a modified Trix/Mical assembler; after that, I'll look into the IS0463P
update.
The
interesting feature of this kernel is the integration of the
Newcastle Connection network
One of my interests is Unix (packet) networking
1975-1985 and that includes Newcastle Connection. I’ve so far not dived deep into this,
but your work may be the trigger for some further investigation.
My understanding so far (from reading the paper a few years ago) is that Newcastle
Connection works at the level of libc, substituting system calls like open() and exec()
with library routines that scan the path, and if it is a network path invokes user mode
routines that use remote procedure calls to give the illusion of a networked kernel. I’ve
briefly looked at the Git repo, but I do not see that structure in the code. Could you
elaborate a bit more on how Newcastle Connection operates in this kernel? Happy to
communicate off-list if it goes in too much detail.
Maybe the original NC did so,
but here there are numerous additions to
the kernel, including a new syscall uipacket() which is the gateway into
the MUNET/NC implementation. Stuff is in /usr/sys/munet, the low level
networking is in uipacket.c and uiswtch.c which will process RPC
open/close/read/write/exec etc. calls, as well support master and
diskless nodes). The OS code is full of "if (master) {...} else {...}'
code which then redirects detected access to remote paths to the network
handler.
I note that the repo Readme says that the kernel only does some basic IP networking as a
carrier, but I also see some files in the tree that seem to implement a form of tcp (and
that seem unrelated to the early Unix tcp/ip’s that I have seen so far). Or am I reading
too much into these files?
===
Re-reading the Newcastle Connection paper also brought up some citations from Bell Labs
work that seems to have been lost. There is a reference to “RIDE” which appears to be a
system similar to Newcastle Connection. The RIDE paper is from 1979 and it mentions that
RIDE is a Datakit re-implementation of earlier an earlier system that ran on Spider. Any
recollections about these things among the TUHS readership?
The other citation is for J. C. Kaufeld and D. L. Russell, "Distributed UNIX
System", in Workshop on Fundamental Issues in Distributed Computing, ACM SIGOPS and
SIGPLAN (15-17 Dec. 1980). It seems contemporaneous with the Luderer/Marshall/Chu work on
S/F-Unix. I could not find this paper so far. Here, too, any recollections about this
distributed Unix among the TUHS readership?
Good to mention this. I am interested in
such stuff as well.
Regards
Holger