From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 10 Nov 2008 17:00:06 -0800 From: "Roman V. Shaposhnik" In-reply-to: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Message-id: <1226365206.17713.390.camel@goose.sun.com> MIME-version: 1.0 Content-type: text/plain Content-transfer-encoding: 7BIT References: Subject: Re: [9fans] Do we have a catalog of 9P servers? Topicbox-Message-UUID: 3aa5050c-ead4-11e9-9d60-3106f5b1d025 On Tue, 2008-11-11 at 00:14 +0000, Charles Forsyth wrote: > >But wouldn't you agree that files kept on a remote POSIX file system is > >an important and common class of remotes resources for which we don't > >quite have a consensus on how to use 9P? > > yes, but both your examples are things of purely local significance. Sorry I'm confused, which examples are you talking about? Anyway, for the sake of this conversation lets focus on: using 9P as the means to access files on a remote POSIX filesystem. > the symbolic links point to something local (or not), and the major/minor > numbers are decidedly only local (since they index a kernel's data structures!). > sorry, to which they refer. This approach seems to be flawed on two accounts: 1. it forces the server to resolve symlinks and special nodes, without an option for the client to do the same. That prevents cross-tree symlinks and nodes as the points of rendezvous *on the client*. IOW, the following will not work: $ mknod /test p $ echo test >> /test & cat /test I can buy a point of view that reading on a node that happens to be a character device should really bring the data from the remote server's device attached to that node. However, that point of view is much more difficult to sell for FIFOs. 2. It doesn't let manipulate these special files. IOW, readlink(2) fails and so does mknod(2)/symlink(2). For the practical application of 9P a failing symlink(2) is a big source of problems. In fact, "why does my build fail" was the first question that people asked me once I demonstrated my prototype of drawterm written in Java. It fails because it tries to symlink within a tree that is exported. Thanks, Roman.