FUSE - detailed documentation

John Doe picture John Doe · Mar 24, 2013 · Viewed 9.5k times · Source

trying to get my own filesystem working using fuse (filesystem in user space, linux) im really curious on where to get detailed up to date documentation of the operations used?

most time i search for other file system implementations and see what they do, but some operations seem to be not widely used like poll/ioctl or bmap. and the documentation of the fuse api doesnt help much, cause e.g. the parameters and return values of the operations are not documented thus i have to guess how to use em

so the question is where do i get better information about how such exotic operations are supposed to be implemented?

thx

Answer

Peter Teoh picture Peter Teoh · Mar 24, 2014

Yes, you are right, many places you can read that comment saying there is little documentation on FUSE. Perhaps that's because there is so little to document. Or perhaps the implementation is only meant for those who understand the tradeoff of userspace filesystem well enough. So perhaps you can refer to the following documentation, tutorials, slides or even sample codes for more information:

FUSE Design Document (original documentation from Sun?):

http://www.youblisher.com/p/31627-fuse/

http://wr.informatik.uni-hamburg.de/_media/research/labs/2008/2008-03-michael_kuhn-container_library_and_fuse_container_file_system-report.pdf

http://www.oug.org/files/presentations/losug-fuse.pdf

http://sar.informatik.hu-berlin.de/teaching/2013-w/2013w_osp2/lab/Lab-4-FUSE/lab-FUSE_.pdf

http://www.cs.hmc.edu/~geoff/classes/hmc.cs135.201001/homework/fuse/fuse_doc.html (tutorials)

http://www.cs.cmu.edu/~./fp/courses/15213-s07/lectures/15-filesys/index.html

http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/

Sample code:

http://fuse.sourceforge.net/helloworld.html

And perhaps this is more research-oriented:

http://www.msrsas.org/docs/sastech_journals/archives/May2011/2.pdf

https://code.google.com/p/s3fs/wiki/FuseOverAmazon

But generally there is a lot of problems/issues (which may be solved through some complex algorithm) with implementing filesystem in userspace, which is why Linus has commented it as "toy":

https://ceph.com/dev-notes/linus-vs-fuse/

15Apr2015 update:

I just found this (and many other slides - just look at the right hand side of this webpage):

http://www.slideshare.net/adorepump/fuse-developing-fillesystems-in-userspace