There was a hacky implementation of TCP/IP which we
didn't really use:
4.Y BSD (I don't know the value of Y) protocol code, wrapped up to
work as stream modules* and shoehorned in, with a custom API quite
different from the BSD one. The work was done by a summer student,
Robert T. Morris, who later became rather famous for a smaller but
rather more troublesome bit of network code. Our production network
was Datakit, which was also implemented as stream devices and modules
(it was the network whose use inspired the stream design, in fact).
I’d love to hear more about that. So far, the only information I have found about
(lowercase) streams and networking - as used at the labs - is the v8 source code and a
1984 message from dmr on a mailing list. The (lower level) v8 networking concepts appear
to carry through to v10 and Plan9.
It is my impression that the unix/datakit tradition essentially views a network connection
as a special kind of device, whereas the unix/arpanet tradition essentially views a
network connection as a special kind of pipe. In both cases this would seem to have been
an accidental choice driven by convenience in early implementations (respectively the
Spider network drivers and NCP Unix from the UoI).
However, that is an impression formed 35+ years after the fact and the contemporary view
may have been very different.
Paul