Re: FUSE merging?

Eric Van Hensbergen
2005-09-03T13:29:55Z

On 9/3/05, Miklos Szeredi <miklos@szeredi.hu> wrote:
>
> > I agree that lots of people would like the functionality. I regret that
> > although it appears that v9fs could provide it,
>
> I think you are wrong there. You don't appreciate all the complexity
> FUSE _lacks_ by not being network transparent. Just look at the error
> text to errno conversion muck that v9fs has. And their problems with
> trying to do generic uid/gid mappings.
>

While FUSE doesn't handle it directly, doesn't it have to punt it to
its network file systems, how to the sshfs and what not handle this
sort of mapping? Not really a criticism, just curious. This doesn't
so much relate to FUSE, but I've been wrestling with what to do about
this chunk of (mapping) code -- it seems like it might be a good idea
to have some common code shared amongst the networked file systems to
handle this sort of thing. The NFS idmapd service seems
overcomplicated, but something like that in the common code could
provide the same level of service. What do folks think? Should
someone (me?) take a whack at a common id mapping service for the
kernel (or just extract idmapd from NFS) -- or is this something
better implemented filesystem-to-filesystem?

> > there seems to be no interest in working on that.
>
> It would mean adding a plethora of extensions to the 9P protocol, that
> would take away all it's beauty. I think you should realize that
> these are different interfaces for different purposes. There may be
> some overlap, but not enough to warrant trying to massage them into
> one big ball.
>

A very good point. I toyed with the idea of looking at creating a
FUSE-API-compatible v9fs file server library - but there are a good
deal of features (like extended attributes) that we don't have
provisions for in the protocol -- and most likely a good deal of
complexity supporting some of these features that we may not want to
deal with just yet.

Miklos is right, for the moment FUSE and v9fs have some overlap, but
they remain very different things. FUSE is far more focused on
delivering user-space file servers, and as such has a better solution
for developing user-space file servers. We are still focusing on
getting the core of v9fs worked out, when we eventually have that
working smoothly, I like to think we'd be able to spend some time
developing a file server SDK as rich as FUSE (perhaps something
API-compatible as I mentioned before) -- but we want to focus on
getting the core protocol implementation right first - since it has
uses beyond user-space file servers.

-eric