Dial is actually from research Unix. Wnj and Sam Leffler were doing the socket stuff while I was at UCB. It was not bad considering they were starting from scratch and other interfaces were just as awkward. Binary addresses didn't seem so bad when all addresses were 32 or 48 bit numbers. However, I couldn't ever remember how to do anything and always got the dance wrong. It also had a bad effect of making every program very network and often byte order specific. When I came to the labs, research Unix was using the Datakit network instead of ethers and IP (we bell heads spent a long time denegrating ethernets and IP before were beaten into submission but that's another story). Datakit used relative hierarcical string addresses (things like "mh/astro/r70"). They already were using a dkdial() call that looks pretty much like the dial() in Plan 9. The interface for datakit was file system based, also very much like the Plan 9 one is now. When rtm ported the 4.1c BSD IP code into research Unix, we adopted the datakit model rather than sockets because it was, we thought, easier to deal with. The Plan 9 interface is just a continuation along the same lines. Thank Lee McMahon, Sandy Fraser, and Greg Chesson for the nicer model that came with the Datakit. We just recognized the elegance of their work and expanded it. At a programming interface level, that can be said of Plan 9 in general. Research Unix experimented and Plan 9 generalized. Similarly, Rob's Blit work was the seed for the Plan 9 look and feel user interface look and feel. The only things original are the maleable process specific name space and the implementation.