MacFUSE is an open source project that simplifies the process of adding a file system to Mac OS X. If you’ve ever had an inclination to create a file system, or thought that a file system like “interface” would be an intuitive approach to solving a problem, yet, upon delving into what it takes to create a kernel extension, you opted to rethink your idea (or at least the approach) here’s where MacFUSE comes in, effectively offering an API to implement a file system.
FUSE (file system in user space) was born and bred as a Linux tool. MacFUSE is a port of FUSE to the Mac by Amit Singh. From the highest level, there are two key aspects to FUSE. First and foremost (without it you have nothing) the dynamically loadable kernel extension. This is where all the hard work (aka magic) takes place. The second aspect is the API, not unlike any other API you’ve worked with, the FUSE library offers an interface to communicate with the kernel extension. Using calls such as read, open and write, working with your own file system on FUSE becomes a rather trivial undertaking.
Following are a few examples of application using MacFUSE:
- SpotlightFS: an application that dynamically generates smart folders from Spotlight queries
- SSH FileSystem: file system client based on the SSH
To learn more about MacFUSE, you can watch this video of Amit reviewing his MacWorld 2007 presentation.