Hi,
I'm looking into FUSE in genode.
Since there is hardly any documentation I am having trouble understanding what exactly is going on. Especially I have trouble understanding where and how FUSE interacts with genodes VFS.
Do you have any tips where to look?
For better understanding I made a chart of the dependencies I found: http://fs5.directupload.net/images/160119/7ejysxf7.jpg
Kind regards Hall Samuel
Hello Samuel,
* Samuel Hall <sammy.hall@...381...> [2016-01-19 01:21:07 +0100]:
I'm looking into FUSE in genode.
Since there is hardly any documentation I am having trouble understanding what exactly is going on. Especially I have trouble understanding where and how FUSE interacts with genodes VFS.
Do you have any tips where to look?
There is a draft of an article [1] that explains how FUSE comes together on Genode in more detail. Be aware though, that it is not update-to-date and was written at a time when there was no VFS available on Genode.
For better understanding I made a chart of the dependencies I found: http://fs5.directupload.net/images/160119/7ejysxf7.jpg
There a two ways you can use a FUSE based fs on Genode. First by using a file system server, e.g. fuse_ext2_fs, that provides a File_system session. In this case another component can access this server by routing a fs session to the server in its own VFS configuration. The second way is by linking the component against a libc plugin that provides the FUSE based fs, e.g. libc_fuse_ext2. In that case the fs is accessed via the libc plugin API (when the component wants to access a file it will call 'open(/foo/bar, ...)' and the libc will query all of the available plugins and than looks if any of them can handle the request).
Since the VFS itself is a plugin in the libc you cannot configure the FUSE fs in the '<vfs>' node when it is used via libc plugin.
Regards Josef