Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!dogie.macc.wisc.edu!uwvax!rutgers!att!ulysses!andante!alice!dmr From: dmr@alice.UUCP Newsgroups: comp.unix.wizards Subject: Re: is this wise? Message-ID: <9321@alice.UUCP> Date: 7 May 89 05:05:12 GMT Organization: AT&T Bell Laboratories, Murray Hill NJ Lines: 39 Buda's idea (378@chessene.UUCP) is to embed names of network services into file names, so that open("/dev/hosts/uunet.uu.net/tcp/79", ...) gets you to a TCP/IP connection to the named host on (I guess) port 79. It isn't so far-fetched as some would have it; indeed we very nearly tried it in the Ninth Edition system in Bell Labs research. Some of the objections to it aren't relevant if you arrange things correctly. For example, the kernel need not know how to do the connection dance; instead, the /dev/hosts directory is virtual, served by a user-level program. All the network connection goo can be handled by this server, which returns the descriptor for the completed connection. Examples related to this approach are described in several papers in the Portland Usenix conference proceedings (Summer 1985). However, we somewhat regretfully rejected schemes like Buda's for several reasons. First, each proposed embedding began to get rather ornate. There tend to be options, and different networks have different naming structures. Another thing that weighed heavily was that it was impossible to make the /dev/host directory behave according to expectations one might reasonably form. For example, it is not possible to know all the hosts in any non-trivial network, so what should you see if you list it? Nevertheless, the idea could probably be pushed through. (Indeed, as someone pointed out, it was done in Chaosnet.) In particular, Rick Adams's reductions to absurdity are quite close to things that the Plan 9 system (as opposed to Ninth Edition) actually does; as many of its abstractions as possible are mapped into the file system. Dennis Ritchie att!research!dmr dmr@research.att.com