VFS plug-in that requires early libc initialization (for FUSE)

Norman Feske norman.feske at genode-labs.com
Wed Dec 8 17:48:23 CET 2021


Hi Cedric,

I just noticed that I left one of your questions unanswered.

> Alternatively, I have to wonder whether some runtime loading (instead of launchtime loading)
> of the VFS plug-in would make sense. Generally speaking, Genode supports dlopen()-style loading of .so libraries,
> so I suppose if the VFS server gets fully loaded, and then later its "config" ROM gets amended
> with an extra plug-in, then the plug-in would be initialized with a full LibC context.
> 
> Genode/Sculpt has gotten various "dynamic scenarios" over the years, I wonder if that one is implemented ?
> It might be a "nice-to-have", beyond the immediate problem discussed here,
> since it's nice to be able to try out new FS plug-ins without rebooting Genode.

This comes down to dynamically changing the VFS layout of a component,
which would be really cool. We have indeed contemplated the option to
dynamically reconfigure the VFS in the past. Given the dynamic
re-configurability of most Genode components, this would be a natural
and intuitively expected feature after all.

However, not all parts of this problem are well-enough understood to go
for it right now. One question is: how to create the smallest possible
diff between two VFS configurations? In contrast to, e.g., the init
configuration where each start node has some kind of unique identity
that can be used to find the corresponding nodes in the old and new
config, the VFS configuration is less strict. The diff algorithm would
need to be more complicated than the list model (util/list_model.h) we
normally use.

Also, the potential side effects of a configuration change on the
visibility of files in the union mount are rather complex, which raises
the question: what should happen with open files that belong to a VFS
plugin that disappears or for a file that becomes shadowed by another
VFS plugin in the new configuration?

That's more than enough food to keep the back of the mind spinning. I
think we will ultimately find solid answers to those questions down the
road. But the attempt to answer them today would probably be too
premature to be useful.

Btw, non-structural changes of the VFS configuration can actually be
applied today, e.g., changing the font-size parameter of the vfs_ttf
plugin as used by Sculpt's dynamic font scaling. But that's a very fine
(thin) line to walk on. ;-)

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

https://www.genode-labs.com · https://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list