# Virtual Filesystem Idea



## BlueCoder (Jan 2, 2013)

I am a programmer so yes I can do this if I really really wanted to but right now I'm just daydreaming and looking for feedback on the idea.

One of the things I distaste is how programs dump their configuration files and directories in home. I'm thinking what if programs each had their own configurable virtual filesystem. They would observe remapped files and directories...

Take my favorite editor "joe" and it's .joerc file in the home directory. I could configure it so that only the program "joe" sees .joerc in my home directory but in actuality really it is in the ".config/joe directory". Likewise with all the other programs and their . files and directories.

It would be higher level of transparent symbolic linking/file rerouting. In fact it could act as a chroot mechanism and virtually remap everything to a directory just like chroot. But with the added benefit of all sort of other remapping. It could even do the equivalent of unionfs. But the difference would be that it would be acting at the "program view" level instead of the true filesystem level.


----------



## ChalkBored (Jan 3, 2013)

Look into Plan 9 namespaces.

http://cm.bell-labs.com/sys/doc/names.pdf It's not the greatest explanation, but it should get you started.


----------



## BlueCoder (Jan 21, 2013)

Thank you very much for the reference.

I'm extending my thinking to file systems without directory hierarchy. Implement the traditional file system hierarchy altogether in user space.


----------



## fluca1978 (Jan 24, 2013)

If I get it right you want a way to remap every single part of the tree so that a means /somewhere/b. Assuming that, I don't see the point in developing that instead of using already existing tools, like _unionfs_ and _links_ and, to some extent, _chroot_ and _mount_. 
I believe you have to find some concrete example that cannot be solved with any fancy use of the above tools before you start developing it.

Anyway, the KDE I/O Slave mechanism is something similar to what you want to develop: it provides a platform for making things to appear as file systems, including making filesystems appearing as other filesystems. Of course this is KDE-centric, but is another idea to study for your project.


----------

