MacFUSE Explodes Options for Mac File Systems
With Amit Singh’s release of MacFUSE at Macworld Expo 2007, the Mac now embraces a much broader array of file systems, improving cross-platform compatibility, network connectivity, security, and convenient integration with a variety of online services. In short, MacFUSE promises to let Mac users access foreign file systems – such as NTFS, Flickr, Gmail, or even an RSS feed – as though they’re normal disks in the Finder. To see MacFUSE in action, watch Amit’s video demonstration.
File Systems Are Deep Magic — As a general rule, accessing disks and managing files on them (via partitions and file systems) is considered low-level operating system technology, and restricted from “normal” (non-root) users. In Unix terms, file systems are superuser (root) territory. With one-person systems (including most Mac OS X computers), working with file systems can be more trouble than it’s worth, especially since kernel programming is a great deal more demanding than writing normal (“user-space”) programs. While Mac OS X and Linux offer multiple ways for users to work with file systems, they’re still nowhere near as common or easy to develop as applications.
The FUSE (Filesystem in USErspace) project was created to alleviate these problems on Linux. FUSE comes in two parts: a kernel module to handle the privileged operations, and a simple non-kernel API to host plug-in file system modules. FUSE/MacFUSE by itself does nothing – it just provides the kernel plumbing for hosting file systems and the API for its plug-ins. The various FUSE modules provide compatibility with a bewildering wealth of file systems, including sshfs (enabling SFTP servers to be mounted directly on the Desktop), NTFS-3g (providing full read/write access to Windows partitions, as opposed to Tiger’s built-in read-only NTFS support – yes, this includes Boot Camp), and dozens of others.
WARNING: MacFUSE is still very much beta software, so you shouldn’t use it unless you’re prepared for problems. In other words, make sure you have two backups before you begin! That said, reports to date have been consistently positive.
The MacFUSE project uses a Mac kernel extension instead of the Linux kernel module, and the same module API as its Linux cousin, so Mac users can take advantage of existing FUSE modules. In addition to the aforementioned sshfs and NTFS, modules tested with MacFUSE include WebDAV, FTP, Beagle, SpotlightFS, and the CryptoFS and EncFS encrypted file systems. Additional modules (not yet tested with MacFUSE) offer access to Sun’s ZFS, music on an iPod, iTunes & iPhoto shares, Flickr, GMail, wikis, blogs, etc.
If you’re intrigued by the concept of mounting remote file systems as disks but not ready to install a beta kernel extension on your Mac, Interarchy may be a better option. Its FTP Disk technology includes bidirectional synchronization, enabling Interarchy to simulate a MacFUSE-style file system mount for FTP, SFTP, and WebDAV (HTTP and HTTPS) servers, appearing on your Desktop just like an AppleShare or Samba file server.
Getting the Goods — Despite having been out for only a couple weeks, MacFUSE has already generated considerable interest – there are several different efforts under way to provide graphical interfaces to MacFUSE and various file system modules. Hopefully it will be possible to use MacFUSE file systems from Apple’s Connect To Server dialog, but Apple doesn’t currently support this.
MacFUSE Core – comprised of the kernel module, user-space support files, and header files needed for building additional modules – is available in both binary and source code formats (binary is recommended; compiling from source requires Apple’s Xcode Tools, available free from the Apple Developer Connection site). Most FUSE plug-ins currently require compilation by the end user, often with tweaks for differences in MacFUSE, although over time these fixes should get built into the official FUSE plug-ins so they require no special treatment on the Mac. SpotlightFS and sshfs are currently also available as installers; additional plug-ins should follow.