On Tue, Jun 21, 2022 at 05:56:02PM -0600, Jacob Moody wrote:
I recently stumbled across the existence of datakit
when going through the plan9foundation source archives.
Would be curious to hear more about its involvement
with plan9.
There are at least 2 versions of Datakit. I my current understanding there are “Datakit”
which is the research version, and “Datakit II” which seems to be the version that was
broadly deployed into the AT&T network in the late 80’s -- but very likely the story
is more complicated than that. Plan9 is contemporaneous with Datakit II.
In short, Sandy Fraser developed the “Spider” network in 1970-1974 and this was actively
used with early Unix (at least V4, maybe earlier). Sandy was dissatisfied with Spider and
used its learnings to start again. The key ideas seem to have gelled together around 1977
with the first switches being available in 1979 or so. The first deployment into the Bell
system was around 1982 (initially connecting a handful of Bell sites).
In 1979/1980 there were two Datakit switches, one in the office of Greg Chesson who was
writing the first iteration of its control software, and one in the office/lab of
Gottfried Luderer et al., who used it to develop a distributed Unix.
Datakit at this time is well described in two papers that the ACM recently moved from
behind its paywall:
https://dl.acm.org/doi/pdf/10.1145/1013879.802670 (mostly about 1980 Datakit)
https://dl.acm.org/doi/pdf/10.1145/800216.806604 (mostly about distributed Unix)
The Chesson control software was replaced by new code written by Lee McMahon around 1981
(note: this is still Datakit 1). The Datakit driver code in V8 is designed to work with
this revised Datakit. Three aspects of Datakit show through in the design the V8-V10
networking code:
- a separation in control words and data words (this e.g. comes back in ‘streams')
- it works with virtual circuits; a connection is expensive to set up (‘dial’), but cheap
to use
- it does not guarantee reliable packet delivery, but it does guarantee in-order delivery
Probably you will see echoes of this in early Plan9 network code, but I have not studied
that.