With the hopes of playing Go amongst fellow Plan 9 users, I've written a little filesystem[1] which can currently be used for any two-player turn-based games. I'm currently working on Paurea's wonderful goban code, to implement support for reading from and writing to files, so that we have a working interface to use. I also have plans to add the same ability to Mirtchovski's port of GNU Go, so that the antisocial community can play amongst themselves (or oneself). The filesystem is meant to simulate a proper game server, through basic file and permissions operations. Creating a directory in the root of the fs is equivalent to a "game room". The fs automatically creates two files: 'W' and 'B' under the newly created dir, which correspond, respectively, to the positional data of "white" and "black" players. The files, as well as the directory, have uid and gid of the user who created them. When that user wants to play against someone, they set the gid of either 'W' or 'B' to their opponent's uname. To this effect, both files are mode 464. Both files block until new data is written. The fs implements no formatting restrictions to data -- it is left up to clients to agree on a format and use it for the duration of a game. (Oh what fun it might be to map the operations of a Chess game to that of Go....) In this way, the fs implements only one real "rule", which is general enough for any sort of game (in this class): once either 'W' or 'B' is written, a "dirty" flag is set on the file, so it may not again be written to, until the other file has been written. There are a few things left to do still, and they are briefly documented in the NOTES[2] file. I crave feedback, so please do not hesitate. Programming suggestions, fs implementations, and the like, all more than welcome. Privately, or publicly. Best, ak [1] The source can be found in /n/sources/contrib/akumar/á/gofs [2] /n/sources/contrib/akumar/á/gofs/NOTES For convenience, I've attached just the gofs source file to this mail. Let me know if this is undesirable.