FUSE - detailed documentation [closed]
Asked Answered
A

1

12

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

Agraffe answered 24/3, 2013 at 21:24 Comment(4)
FUSE is open source, you don't have to guess you can go and find out exactly how and what happens.Juttajutty
I have to concur with Steve-o. I downloaded the latest FUSE source release (2.9.2, posted late last year). The fuse.h file describes poll, ioctl, and bmap. If you have questions about specific functions, post new questions describing the points of confusion. Also, are you certain you need to use those functions? Not all FUSE filesystems will need to use all the functions-- e.g., I have authored a few FUSE modules that only present read-only filesystems, so they are able to desregard write functions.Skat
so, to get the discussion back to what was asked - the answer seems to be "the source code of fuse itself"Agraffe
It has few documents maybe because libfuse is not intended to be used beyond those people who designed and wrote it. It's an open source project, but just only source code is opened without enough documents like most of the open source projects.Quoin
T
14

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

Tennies answered 24/3, 2014 at 15:44 Comment(1)
just for completness the official documentation: libfuse.github.io/doxygen/index.html and fuse project site: github.com/libfuse/libfuseAgraffe

© 2022 - 2024 — McMap. All rights reserved.