File System in Userspace( FUSE)
When we think of file system we think about kernel of the operating system. Any modern filesystem- NTFS (Microsoft), WAFL( NetApp), ZFS ( Sun ), Ext3 (Linux) are indeed part of the kernel. Development of FileSystem is one of the most complex task one can undertake in system software development. Although I have considered windows Kernel as my playing field, but the work has also involved working on the development of Linux Kernel as well as Unix Kernel from time to time, of course mostly related to file system, or should I say distributed file system. While working on the Linux File System piece I came across this beautiful open source project going on called FUSE ( File System in User Space). This project has made life easier for a lot of people, including mine of course. FUSE lets you do a filesystem development without touching the kernel piece. FUSE has two distinct pieces, one kernel and the other one libraries in user space which any binary can link into. FUSE allows trapping the common file system operations like open, close, read , write, getattribute and so on. Although I found FUSE a good effort but I still find it couple of things lacking compared to what Windows IFS kit offers. On the windows side one can further quantify the different open types, from what I have seen so far, FUSE lacks that capability. However this is a very good start and I hope to use FUSE in one of my upcoming projects!!