I would like to do a piece of software which spans more processes in
parallel, each having its own view on the content of a fuse mount. I would
like to have both the fuse ops code and the processes spawning one in a
Now, I attempted reading docs and examples about fuse, but I still have some
question to spare:
- what is the difference between implementing a fuse fs via standard ops
with respect to low-level ones? Is there any synchronization risk using
- it is not clear to me what is the difference between a session and a
channel. Also, since each spawned process will have a different view on the
fs content, these views are just different channels attached to the same
session, or am I missing the point?
- I see init() and destroy() in low-level ops may receive my userdata. How
can I get this data in other ops?
- What happens when some method is not implemented? In example, I don't care
to implement a write() method. What happens if a process attempts to write
into my implementation of the fuse fs?
- I would like not to use fusermount to mount the fses, but instead use
mount() and, possibly, even unshare()/clone() with CLONE_NEWNS. Is that
- In low-level "mode", do I need to use the fuse_chan_recv() and
fuse_chan_send() library calls, or instead I have yet to rely on