Port fuse from FreeBSD

Tomohiro Kusumi kusumi.tomohiro at gmail.com
Fri Sep 16 03:17:37 PDT 2016


Thanks, I'll eventually need you or marino's help on dports side once
sys/vfs/fuse part starts to work.


2016-09-16 1:01 GMT-04:00 Rimvydas Jasinskas <rimvydasjas at gmail.com>:
> I'm in, let me know what parts you need in dports.
>
>
>
> On Fri, Sep 16, 2016 at 12:59 AM, Tomohiro Kusumi
> <kusumi.tomohiro at gmail.com> wrote:
>> I'm thinking about porting fuse from FreeBSD. Several benefits by doing this.
>>
>> 1. There are some good fuse based fs like sshfs, ntfs-3g and maybe
>> some others I'm not really aware of (like glusterfs if it ever worked
>> on BSD ?).
>>
>> 2. puffs in DragonFly is broken according to other devs/users, and no
>> one is really going to fix it (which is fine with me too).
>>
>> 3. We probably don't need (a broken) puffs if we get (a working) fuse,
>> given the fact that most userspace filesystems are written for Linux
>> fuse, but not for NetBSD puffs. NetBSD puffs seems to provide a some
>> sort of emulation layer for compatibility with fuse, but ours
>> apparently doesn't because it's broken.
>>
>> --
>> I haven't written any code yet, and won't be for another 2-3 weeks,
>> but was looking at fuse (a kernel subsystem in FreeBSD and Linux
>> kernel), libfuse (userspace portion of fuse) and some specific
>> filesystem implementations such as sshfs.
>>
>> The target will be the next DragonFly release which is 4.8. Not sure
>> if I can make it if we're to release 4.8 within 2016 (which is only 4
>> months from 4.6), but I should be able to make it otherwise with good
>> enough stability for the initial release.
>>
>> The difficult part is that it's kinda difficult to tell how long it
>> takes to port fuse, given the concept of the fuse itself. It's easy to
>> imagine some sort of bugs will be exremely difficult to fix or even
>> investigate.
>>
>> I know DragonFly users want ntfs(3g), but the initial release won't
>> target ntfs. In theory, having fuse subsystem with good stability
>> should mean it runs ntfs, but ntfs is probably way too complex to make
>> it reliably work without bunch of try-and-errors within fuse itself.
>>
>> sshfs seems to be a good one for dogfooding the fuse on DragonFly once
>> it starts to work, because sshfs isn't a toy fs (I think it's quite
>> popular among Linux users) yet the code size isn't that huge, plus
>> it's written by the same author as fuse in Linux kernel which
>> guarantees good code quality.
>>
>> If porting a kernel subsystem goes as expected, I'll eventually need
>> marino@ (or someone who is as good) to help with userspace. One of the
>> issue with libfuse is that ./configure doesn't recognize DragonFly as
>> a BSD, probably because our uname doesn't contain "BSD" (see around
>> line 12000 of ./configure), and tries to compile with Linux specific
>> code (e.g. mount(2) with 5 arguments instead of four). I may be able
>> to fix these issues myself, but I doubt I do it in a right way.
>>
>> I'm also willing to fix any issues I may encounter on FreeBSD.
>>
>> If everything goes as expected, we can get rid of puffs in 4.8.


More information about the Users mailing list