> > > > I think this approach would fit nicely into the Hurd's translator > > architecture. However, I'm not sure if I like the directory structure > they > > use. I would think the network interface should be shown like > > > > /net/eth0/tcp/2 > > > > It might be worthwhile--but possible bad style?--to duplicate both > > hierachies so on may browse the connections by device or generally. > > > > Any preferences/comments on this? > > It's clearly a mistake to map the directory tree to the protocols stack. > The TCP implementation is a global layer, it handles network interfaces > internally and must not be bound to any interface (ask yourself how to > implement INADDR_ANY, or IPv4 capable IPv6 sockets). In addition, > separating the network and transport layers implies several problems. > The most obvious one concerns performance. The Mach IPC subsystem > provides nice virtual copy support, but this facility creates an > important overhead that severely impacts high speed connections. > Carefully shared memory between the servers may help though.
I'm not sure what you mean that it's a mistake to map the directory tree to the protocol stack. Do you think the Plan9 implementation, for example, is also clearly a mistake then? I'm not sure if I see the problem. Wouldn't something like INADDR_ANY be a simple hook into the IP layer? From what I understand, a bind on INADDR_ANY locks that port for all interfaces anyway so I don't see why this would be a problem. Just have a special IP binding for getting every interface and that connection is shown in every interface directory. Is the problem here with my implementation or a fault you generally see in the Plan9 implementation? Thanks, Josh