OpenBSD Journal

OpenBSD adds fuse(4) support for adding file systems in userland

Contributed by tbert on from the short-fuse dept.

With a tiny commit log message, Sylvestre Gallon (syl@) makes a wonderfully huge change. Of course, there were tons of other commit log messages leading up to enabling fuse(4) support in OpenBSD, but this one turned on the lights so to speak. We tracked down Sylvestre to get more information on his efforts...

CVSROOT:	/cvs
Module name:	src
Changes by:	syl@	2013/11/01 07:54:45

Modified files:
	sys/conf       : GENERIC 
	lib            : Makefile 

Log message:
enable fuse.

ok deraadt@

I've always wanted to discover kernel internals in OpenBSD, and wondered about porting a kernel subsystem to OpenBSD. The first project that came to my mind was adding fuse(4) support. It would allow me to discover how a Virtual File System (VFS) works and this code could be helpful for a lot of people. Another pro was that there were already BSD implementations of fuse on FreeBSD and NetBSD. I started from the FreeBSD implementation since it was easier to understand than puffs. After some amount of work, I succeeded in adding a working fuse file system, so I sent my fuse patches to tech@ to see if I should continue my work.

I worried that some people would get mad about the poor quality of my code but instead I got a very good feedback. People like Martin Pieuchot (mpi@) helped me to change my code from a sandbox project to something that could be put into tree. A lot of changes have been done since my first post to tech@. We switched from the gpl libfuse to a rewritten libfuse with an ISC licence, added better kernel structures for fuse messaging called fusebufs and made a lot of of bug fixes. I want to thanks the OpenBSD community for their help and their great hospitality to new comers.

Thank you Sylvestre for writing to tell us the history of your work on adding fuse(4) support to OpenBSD.

(Comments are closed)


Comments
  1. By Anonymous Coward (141.113.85.95) on

    Awesome news, indeed. Thanks!

    Which userland file systems are supported? Is there a list?

    Would be nice to switch to OpenBSD for the occasional NTFS rescue mission...

    Comments
    1. By Stefan Sperling (stsp) on http://stsp.name

      > Which userland file systems are supported? Is there a list?

      The ports tree currently has sysutils/ntfs-3g and sysutils/sshfs-fuse.

      I've got a port of encfs in the works, so perhaps that will show up at some point as well.

      I looked into wdfs-fuse (webdav) but the quality is horrid and it doesn't really offer any advantage over existing webdav clients in the ports tree.

      Comments

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]