[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Head Up: Prepare for dropping fuse group in the nearest future



On Thu, 2008-02-07 at 10:29 -0500, Steve Grubb wrote:

> > Now, Gnome (and many other things) start using fuse because it lets you
> > implement very desireable features.
> 
> What are these desirable features? Just curious since I may wind up doing a 
> lot of code review.

There are many cases where you as a user want to access and/or modify
something that contains files. For instance, loopback mounting iso
files, easy access to network files for instance. There are several
libraries that allows access to files in such ways, ranging from
specific libraries like libext2fs.so to generic libraries like gnome-vfs
and kio.

However most apps don't use these interfaces so they can't access files
like this. The standard way to access files is through the syscall
interface, and then things must be mounted, meaning the implementation
generally lives in the kernel with all the issues related to that. Some
things like loopback mounting an iso is possible, but requires root
access, even if the file is readable by the user. Other things are just
not possible.

However, with fuse these things can be solved. The filesystem
implementation runs as the user, and user syscalls are proxied to the
filesystem process via a pipe. This means that anything "filesystem
like" that can be accessed from userspace can be accessed by all
applications. So, for instance, you can get things like remote
filesystem access via ssh, easily mountable network filesystems (smb,
ftp, nfs) and user-mountable loopback mounts.

The specific piece of code I'm using fuse for is gvfs, the replacement
of gnome-vfs. Its a userspace virtual filesystem with backends for
things like sftp, ftp, dav, smb, obexftp, etc. The file manager lets you
easily browse these things, and apps that use the userspace API can load
and save files there. However, if you want to open a file on a dav share
in for instance emacs, then you have to use something like fuse. And in
fact, if fuse is availible, gvfs will transparently convert uris to
paths on a fuse mount to do this.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]