Saturday, November 03, 2007

Linux File System Development using FUSE

FUSE (Filesystems in User Space) is an open source project that allows developers to create file systems as user application as against a kernel module (which is the normal case). It is obvious to developers familiar with FS development to notice that ,a filesystem in userspace would mean a significant performance penalty. Certainly there is a performance hit because the filesystem application communicates with the FUSE module which in turn handles VFS communication introducing an extra level of indirection.

So why bother?

FUSE is certainly worth the performance trade-off for a number of reasons :

1.FUSE offers a higher level interface which much simpler than the VFS interface.This forms an excellent starting point for budding file system developers to get the hang of things.
2.FUSE also offers a lower layer interface which is akin to the VFS interface.This allows developers familiar with VFS to test out their File system code in user space before introducing it as a kernel module.Those who know about kernel panics and constant reboots and kernel re-compilation that are part of Linux kernel development will know why this convenience is of such great value.
3.For some file systems where performance is not an issue, developing file systems is not only easier but also a much faster process, because the now the developers have a the whole C library at their disposal which will be linked to their file system application.Means lots of utility functions.

Although, the documentation and tutorials for FUSE are few and far between.And whatever there are, are not easily accessible.So I will try to include a tutorial for FUSE on my blog some time later.No promises..

4 comments:

rajgopalv said...

hey yaar... i'm writing a file system using fuse for my final year project... its really difficult to find help-articles or documentations in fuse... if u could give me some help, it'll be very grateful..
contact: raja.fire@gmail.com

Anonymous said...

Good for people to know.

Unknown said...
This comment has been removed by the author.
Unknown said...

Hey, i m also writing file system using fuse. N stuck up with its implementation.
Plz help me out, or suggest some documents to be reffered.

Contact at : sonam.mundada@gmail.com