I'm studying the designs used by user level file servers in Plan 9 (acme, factotum, plumb, etc) and would love to talk to people who have opinions about what good "API" design looks like for a Plan 9 file system. For example: "Which file systems do you like?", "Which are worth studying?", "What are some mistakes to avoid?", etc
Ultimately, I'd like to come up with a set of guidelines or principles to follow when writing a file server such that a Plan 9 veteran could mount the provided file system and quickly understand how it works.
For references, here are the "APIs" that I've collected so far, based on what I've found in various research papers:
ACME
/mnt/acme/index
/mnt/acme/new
/mnt/acme/$n/addr
/mnt/acme/$n/body
/mnt/acme/$n/ctl
/mnt/acme/$n/data
/mnt/acme/$n/event
/mnt/acme/$n/tag
Factotum
/mnt/factotum/confirm
/mnt/factotum/ctl
/mnt/factotum/log
/mnt/factotum/needkey
/mnt/factotum/proto
/mnt/factotum/rpc
Plumb
/mnt/plumb/rules
/mnt/plumb/send
/mnt/plumb/edit
/mnt/plumb/web
/mnt/plumb/image
/mnt/plumb/newmail
/mnt/plumb/…
--
Joël Franusic