Re: My thoughts on the future of Gnome-VFS

Lennart has posted about the possibility of use a mix of DBus + FUSE to replace the VFS layer of GNOME.

My first point on this is, as said by people on some of your comments, Alex is already working on gvfs, the Gnome VFS replacement, and his work looks promising, and the most important, it’s usable already.

The second point is, FUSE is not an option, GNOME is a cross platform development platform, or at least, it tries to be as cross platform as possible. Initiatives like GMAE, are based on that fact, GNOME should be everywhere.

FUSE is now working on Linux, yes, but it’s far from being API stable (ask FUSE modules maintainers about that issue). It’s not ported to as much systems, just FreeBSD and port in progress for OpenBSD (there are some people working on porting them to other projects, but we cannot make decisions based on that).

Portability is a big value for GNOME, and we shouldn’t focus on Linux only. Right now, the POSIX marriage of GNOME-VFS is what kept some projects out to use it since they want their apps to work on as much systems as possible (see inkscape, gimp). A portable VFS is what we need, if we loose portability, we loose the chance to be the platform of choice for people out there.

Another problem is,  FUSE is  on the user space, that means, that for every I/O operation, there is a context switch, which burns out your laptop/mobile battery. Do we want a VFS layer that would be unusable on GMAE friendly devices? Again, choosing FUSE, make GNOME a less appealing choice.

Does this means that we should forget FUSE? Nope. I don’t know if Alex has plans on this, but it would be great if gvfs could take advantage of fuse modules in a transparent fashion, so we can reuse existing code (which is the good point of your post Lennart), but I think that we should encourage the writing of portable plugins for WebDAV, SSH, Tar, Bzip2… etc. So I can write my app once and run it everywhere.


8 thoughts on “Re: My thoughts on the future of Gnome-VFS

  1. Not like it really matters, GNOME isn’t portable anyways – it’s riddled with very GNU and Linux specific code, it’s an utter mess that noone can easily make work on other platforms. OpenBSD’s GNOME port is 2.10, because everything since has been too much work to port, so much so that it’s been deemed a waste of time to try.


  2. But it sounds like it’s just repeating the same problems. It won’t be accesible from a terminal or from KDE or Motif applications. SHouldn’t be involved in this?
    Also, even now some GNOME apps don’t let me save to a network location with gnomevfs, like Deluge torrent..


  3. I believe it could be possible to use the existing FUSE modules without any modification, by writing some code to “emulate” the interface libfuse uses with the kernel, or by re-writing some parts of libfuse itself to remove the kernel/user space dialog protocol altogether.
    That way the new VFS layer could use natively fuse on OSes where it’s available, and use that “emulated” interface where it’s not (of course that interface could also be used anywhere if we want everything in user space).


  4. @John
    Do you realize that you’re complaining about an issue I’m already saying in this post that’s being solved? Do you realized that I’m trying to encourage others to care about portability?
    Because if you do, I don’t get the point of your comment.
    if you want file system on user space support, to be able to use it on a terminal, just use fuse, that’s what it is for. KDE has its own IO already.
    And gvfs pretends to fix the problem of network locations.
    If it would that easy, it would be ports of FUSE to all the platforms already. But again, that’s not the only problem of the VFS implementation for GNOME, API usability is another issue, and good async and callback support. That doesn’t come out of the box with fuse and we still have a problem of portability.


  5. I did not say it was easy, but it’s not the same problem as writing some kernel code to port FUSE to other kernels, as it would all be user-space. Also I don’t say that it should be the _only_ way of accessing files in the VFS.


  6. fuse is already functionnal (and well) on os X.

    I don’t think Gnome should be concerned by others os than Linux and Solaris. you cannot be everywhere.


  7. I think it’s silly to prrtend to be ultra-portable anb be in all platforms, it’s slowing us down instead of selecting a target audience (or a few ones) and pushing for it…


  8. I’m not exactly sure what’s the advantage of using FUSE if this is going to be an only GNOME thing. If this is going to be fd then it’s different.
    Anyway, I agree that FUSE should not be required for GVFS to work, but if there are advantages why not exploit them? (optional functionality)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s