FUSE allows to develop fully functional filesystem in a userspace program. It provides,
1. Simple library API
2. Simple installation (no need to patch or recompile the kernel)
3. Secure implementation
4. Userspace - kernel interface is very efficient
5. Usable by non privileged users
6. Runs on Linux kernels 2.4.X and 2.6.X
7. Has proven very stable over time
[above items are extracted from http://fuse.sourceforge.net/]
Recently (after spending almost 2 weeks) I completed an assignment for Operating System class which needed an implementation of filesystem that follows FAT concepts. Inevitably I stick to FAT12/16 paradigm because it was easy to (kinda :-)) implement and simulate it. I didn't implement every little fine grained part of it, but for me it was quit a exhilarating assignment and I am happy with it. This assignment had forced me to teach a lot of C stuff. I believe, now I have a relatively good understanding of how to tame this beast.
So, why am I interested in FUSE anymore. Don't know whether this is feasible, but just hear me out. I am thinking of a concept of "mounting" a Web service. It's like you mount a disk and do all sort of operations and we kind a write a FILESYSTEM that would follow the same semantics of Web services, but in the context of file system paradigm. Ex: one could create a file say "foo.txt", but now this will be a Web service which will be exposed by this FILESYSTEM. Another thing I could think of is a directory, which is a grouping of web services. These are just wild thoughts. Since I'm now a die heart fan of C, I would like to give a "hello world" try to this idea in December using Axis2/C.
Hence, when you mount a disk which will adheres to this FILESYSTEM it will mount Web services. And of course you could umount the FILESYSTE anytime you want. Let me see whether I could come up with something useful and feasible and post the results. Anyway...
What you guys think ? Am I going crazy of what :-)