FUSE + VFS

Josef Söntgen josef.soentgen at ...1...
Tue Jan 19 20:45:58 CET 2016


Hello Samuel,

* Samuel Hall <sammy.hall at ...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

[1] http://usr.sysret.de/jws/porting_fuse/porting_fuse.html




More information about the users mailing list