The first thought has to do with the definition of a “filesystem”. I defined it, somewhat circularly, as something that answers to calls such as mount, open, read, write, stat, mmap, etc. – or equivalents for other OSes. A key part of this is that a filesystem is fully transparent and fully integrated with the OS. A file within a real filesystem is indistinguishable from any other file, and is manipulated via the same interfaces. Therefore, anything that requires you to use its own applications, libraries or methods, that requires you to recompile or relink in order to use files stored therein, is not a filesystem. Ext2fs, NFS, Coda, and ISO-9660 are filesystems. Napster, Gnutella, Freenet and Mojo Nation are not filesystems. It would be possible to implement a filesystem interface to something like Freenet or Mojo Nation, although doing single-byte writes to a system based on a write-once file-granularity paradigm raises some serious performance and consistency issues. If this were done, one could call Freenet or Mojo Nation a filesystem (a sucky one), but it hasn’t been done yet and until it’s done they’re not filesystems.