Thursday, August 16, 2007

User-mode File Systems with Mono

Yet another thing calling for me to waste my time...

I found a post by Miguel de Icaza talking about writing user-mode file systems in Linux using Mono and C#. (For those who don't know, de Icaza heads-up the Mono project for Novell.) The idea is intriguing to me for two reasons.

First, it's just cool! Think about using cd and cp and vim to browse and modify your application's object model, or your email, or your router settings, or whatever else you decide to expose. I don't know how useful it would be, but it sure sounds fun.

Secondly, though, it might actually be very useful. I'm definitely turning into a fan of C# on Linux, with a special interest in the architecture of large applications. I have long known that data-level and protocol-level integration seem to be the best guarantee of interoperability long-term, since they transcend even the language and/or runtime used to implement them. But now there's another option: file-system-level integration. FUSE presents an option for application integration that is both interactive and intuitive. Imagine having all the customers in your contacts database show up as folders under a mount point, with all their properties (name, email, phone) exposed as text files that you can edit or copy between contacts. While actually storing the data in the file system is probably unwise (although ReiserFS could change that), using FUSE allows the "file system" metaphor for interaction with your indexed, multi-user database.

I'll have to give it a try at home (since I have nothing else to do ;-) and post my conclusions later.

No comments: