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/… All of my notes are being kept in a Google Doc for now, which is available here: https://docs.google.com/document/d/1g-GIjJRoa7yfOuSjxYG-owBwVh1QaMzOa5i19vVtxUM/edit?usp=sharing -- Joël Franusic joel@franusic.com