From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Russ Cox" To: 9fans@cse.psu.edu Subject: Re: [9fans] heterogeneous cpu servers? MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Message-Id: <20010114195506.8DAA5199E1@mail.cse.psu.edu> Date: Sun, 14 Jan 2001 14:54:47 -0500 Topicbox-Message-UUID: 4c5914ec-eac9-11e9-9e20-41e7f4b1d025 There's not a lot to say about cpu. The best explanation of what's going on is section 5 of the manual (the 9P descriptions). Clients connect to cpu servers and after an initial handshake the clients turn into 9P servers, serving the terminal's entire namespace. The cpu server then mounts this service on /mnt/term, binds /mnt/term/dev/cons* into /dev, and then executes a shell with input/output redirected to/from /dev/cons. Two years ago I wrote such a server for Unix. It had a user-level implementation of a 9P mux, it "mounted" the client connection in memory, connected fd 0,1,2 to pipes to processes ferrying the appropriate data to/from /dev/cons, and exec'ed a shell. It was neat but not useful, since it did nothing more than ssh does. Instead, it sounds like all you need to do is run ssh or telnet or con in an acme win to connect to your Unix box and run javac in that window. It's not as elegant as the native setup, but it's mostly what you'd have with a cpu-style connection. Combine that with running u9fs and you should be all set. If you don't want to run u9fs as an rhosts-style daemon (e.g., you're not behind a firewall), I have some diffs to u9fs that let you run a personal one within an ssh session. I did some jini development using such a setup last spring and it was quite pleasant. I think that the java compiler already outputs plumbable error messages. Russ