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.
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.
Posted by: John H. Dystra | 05/02/2007 at 12:29 AM
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 freedesktop.org be involved in this?
Also, even now some GNOME apps don't let me save to a network location with gnomevfs, like Deluge torrent..
Posted by: Jerry | 05/02/2007 at 02:43 AM
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).
Posted by: Vivien | 05/02/2007 at 09:09 AM
@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.
@Jerry:
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.
@Viven:
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.
Posted by: Alberto Ruiz | 05/02/2007 at 10:11 AM
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.
Posted by: Vivien | 05/02/2007 at 10:22 AM
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.
Posted by: michel | 05/02/2007 at 02:09 PM
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...
Posted by: Joseph | 05/02/2007 at 03:25 PM
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)
Posted by: Felipe Contreras | 05/03/2007 at 08:48 PM