[Portland] KIO and GnomeVFS integration with Linux-FUSE

Vlad vladc6 at yahoo.com
Thu Jul 6 09:36:31 PDT 2006


Hi,

I’d like to suggest using the Linux Filesystem in Userspace (FUSE)
framework to give ISV, desktop-agnostic, legacy, and shell
applications access to filesystems set up by KDE KIO and Gnome-VFS.
FUSE mounts virtual files and directories as if they are local and
gives them a permanent address relative to the root directory (/). 

The Linux-FUSE website is http://fuse.sourceforge.net  

The advantages to using FUSE are:
(1) No need to modify applications to make them aware of new libraries
such as the proposed libxdg-vfs
  *** Remote files have a fixed location under the root directory (/).
  *** Applications can access the remote files in exactly the same way
they access regular local files.

(2) Complete backward compatibility for legacy applications, such as
  *** The hundreds of shell utilities that come with standard Linux
installations
  *** Motif and Tcl/Tk GUIs
  *** Python, Perl, Ruby scripts 

(3) Improved usability and organization
  *** Data is accessible in standard hierarchical directory
structures.
  *** Users are allowed to arrange and name directories as they see
fit.
  *** Avoids unnecessarily displaying username and complete path on
the remote system (ie.
fish://username@server.company.com/home/username/remote_file.txt),
although the user can still choose to include the username as part of
the local directory name.

(4) FUSE stays true to the UNIX tradition of a single directory root
  *** Avoids multiple roots like fish:/, smb:/, ftp:/, webdav:/, etc. 
  *** Windows Vista will also drop A:\, C:\. D:\ etc in favor of a
single root directory.

(5) Working implementations already exists for both major desktops
  *** KDE Kio-FUSE 
    http://wiki.kde.org/tiki-index.php?page=KIO+Fuse+Gateway
  *** Gnome VFS2 FUSE:
    http://sole.infis.univ.ts.it/~chri/gnome-vfs-fuse-0.1.tar.gz
  *** A full list of FUSE backends can be found at
    http://fuse.sourceforge.net/wiki/index.php/FileSystems

(6) FUSE is already widely available:
   *** Linux kernels 2.6.14 and up
   *** FreeBSD and NetBSD ports

Now there are still some issues to be resolved:
  *** FUSE needs to provide an asynchronous API for data transfers
that take a long time so that applications don’t freeze when trying to
save. Such an API is already present in KIO and GNOME VFS, but it
needs to be exposed through FUSE.  Naturally, legacy apps won’t be
aware of this API, but a way to keep them interactive would be to
immediately save their data to a temporary local file and queue the
network transfer in a separate process or thread.

  *** It would be nice to have an XDG utility to automatically mount
FUSE partitions when the user logs in (or maybe when they access a
FUSE directory). This would be like a per-user fstab for FUSE
partitions.

I think FUSE is an overall better approach than libxdg-vfs, which to
my understanding is simply the lowest common denominator of KIO and
GnomeVFS and which doesn’t address problems with legacy applications,
multiple directory roots and user flexibility in accessing files.

I look forward to finding out what you think of the FUSE approach to
bridging VFS implementations.

--Vlad

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Portland mailing list