The FUSE kernel module for the FreeBSD kernel to support file-systems in user-space is -- finally -- nearing completion.
Porting FUSE to a FreeBSD kernel module has been a long-time coming. The FreeBSD FUSE kernel module port originally began as a Google Summer of Code project, but it wasn't successful. In 2011, work on the port was restored via another year with Google Summer of Code, but at the end of the summer the FreeBSD FUSE implementation was still unstable and suffered data corruption issues. Now it seems that FreeBSD FUSE is finally getting hacked into shape and may be committed in the coming days.
Most Phoronix readers should already be very familiar with FUSE, but it allows for file-systems to be run in user-space. FUSE
provides for a simple library API, an efficient kernel interface, support for running file-systems as non-privileged users, and can be quite easy to work with compared to writing a conventional file-system. Running the file-system in user-space can also mitigate some legal concerns for implementing support for a file-system that may be covered by patents or other legal restrictions and a proper native implementation would likely not make it into a mainline kernel. However, Linus Torvalds and others have called FUSE being for toys and misguided people
Among the many FUSE-based file-systems has been Microsoft NTFS
, and even Sun/Oracle ZFS
Written to the freebsd-current list
on Thursday was the following message:
I've taken the GSoC work done with the FUSE kernel module, and created a patch against HEAD which I have now subjected to testing using tools/regression/fsx.
The patch is here: http://people.freebsd.org/~gnn/head-fuse-1.diff
I would like to commit this patch in the next few days, so, please, if you care about this take a look and get back to me.
However, issues with the code have already been raised concerning bugs. Additionally, they're looking for a proper maintainer for FUSE within the FreeBSD kernel. Others meanwhile have called for getting it into the tree and then "thrash it until it's stable." But this also causes some concern, "No, please fix at least the dreadful bugs before committing. We have enough dead and buggy filesystems in the tree already." Let's see what happens but FUSE could be a feature for FreeBSD 10.