gnome-vfs和gio/gfvs是两个不同的概念,也许在不久的将来gnome-vfs应该会被gvfs所取代
GVFS是GNOME新一种虚拟文件系统。GVFS是用来代替过时的Gnome VFS虚拟文件系统。GVFS算是Gnome 2.22中一个比较大的改动,也Gnome 2.22中一个主要的新特性。
GVFS 是一个带有诸如 SFTP, FTP, DAV, SMB, ObexFTP 等协议后台的用户空间虚拟文件系统。GVFS 是 GNOME-VFS 的替代品。GNOME-VFS 将不再被赞成使用,开发者也不应在新的应用程序中继续使用。
GVFS 包含两个部分:
* GIO,作为 GLib的一部分的新共享库,提供了 针对 GVFS 的 API;同时
* GVFS 本身,是一个包含多种文件系统和协议(如SFTP, FTP, DAV, SMB 和 ObexFTP)支持的后台软件包。
GVFS/GIO
致力于提供一个现代的,易用的 VFS 系统。它的目标是提供一些列 API 给开发者,以是他们不再使用原始的 POSIX IO
访问。它提供了一个更高级的以文件为中心的接口,而不仅仅是 POSIX IO 的复制品。除了文件的读写支持外,GIO 还提供了文件监视工具,异步
IO,和文件名完成功能。
GVFS 通过运行一个单独的主守护进程 (gvfsd) 来工作,它保证了对当前的 GVFS
挂载的跟踪。每一个挂在都有独立的守护进程。(一些挂载也会同时共享一个进程,但多数情况下不会这样。) 客户端通过一个联合 D-Bus
会话来与这些挂载通信(在会话总线上,但是使用点对点
D-Bus),同时用一个用户协议来进操作文件内容。通过进程进行后台传递大大简化了程序的依赖关系,使整个系统更加健壮。
GVFS 也提供了在 ~/.gvfs/ 提供了一个 FUSE 挂在点,这样可以使得 GVFS 挂载可以被传统的使用标准 POSIX IO 的应用程序使用。
不同于 GNOME-VFS,GVFS 中的连接是有状态的。这意味着用户仅仅需要输入一次密码,而不是每次成功的连接都需要一次次地重复输入。
因为转为使用 GVFS,自动挂载和自动运行现在已经直接由 Nautilus 完成而不再使用 gnome-volume-manager。
为什么现在的发行版中同时包括 GNOME-VFS和GVFS?
因为,目前很多程序使用的仍然是
GNOME-VFS。
网络访问方面,gvfs通过gvfs-fuse-daemon 把 gvfs 上的文件挂载到 ~/.gvfs目录下。
ls 了一下gvfs的相关包,可以看出gvfs支持的各种vfs模块。有回收站的,FTP,SFTP,SMB等等。
还有硬件监视的gvfs-hal-volume-monitor等。
rpm -qlv gvfs
/usr/libexec/gvfs-gdu-volume-monitor
/usr/libexec/gvfs-hal-volume-monitor
/usr/libexec/gvfsd
/usr/libexec/gvfsd-burn
/usr/libexec/gvfsd-cdda
/usr/libexec/gvfsd-computer
/usr/libexec/gvfsd-dav
/usr/libexec/gvfsd-dnssd
/usr/libexec/gvfsd-ftp
/usr/libexec/gvfsd-http
/usr/libexec/gvfsd-localtest
/usr/libexec/gvfsd-network
/usr/libexec/gvfsd-sftp
/usr/libexec/gvfsd-trash
/usr/share/dbus-1/services/gvfs-daemon.service
/usr/share/dbus-1/services/org.gtk.Private.GduVolumeMonitor.service
/usr/share/dbus-1/services/org.gtk.Private.HalVolumeMonitor.service
rpm -qlv gvfs-smb
/usr/libexec/gvfsd-smb
/usr/libexec/gvfsd-smb-browse
/usr/share/gvfs/mounts/smb-browse.mount
/usr/share/gvfs/mounts/smb.mount
GNOME 2.22 发行注记
http://library.gnome.org/misc/release-notes/2.22/index.html.zh_CN
解答Ubuntu 8.04 中gvfs-fuse-daemon的疑惑
http://www.lupaworld.com/22802/viewspace-53130.html
为 GNOME 2 作好准备,第 1 部分
在最初的几篇文章中,我们将讨论 GNOME 2 和 GNOME 1 之间的差异, 以使您掌握最新的 GNOME
知识。这些文章对于想要开始创建 GNOME 应用程序的那些开发人员来说将是一个理想的介绍, 而且对于需要将现有应用程序从 GNOME 1
移植到 GNOME 2 的那些开发人员也有很大帮助。
首先,我们将讨论基础知识。然后,当每个人都充分了解 GNOME 2 的基本原理之后,
我们将提供更深入的知识,向您演示如何充分利用 GNOME 2 平台中的很酷的新库。到本系列的末尾, 您将编写了您自己的 Nautilus
视图、创建了面板 applet 和其它更多东西。
http://www.ibm.com/developerworks/cn/linux/guitoolkit/gnome/gnome2/part1/index.html
http://www.ibm.com/developerworks/cn/linux/guitoolkit/gnome/gnome2/part2/
编写 GnomeVFS 模块
GnomeVFS 包括若干个模块,如smb 、http、ftp和tar。本文介绍如何生成一个简单的“tutorial:///”模块。
http://www.ibm.com/developerworks/cn/linux/l-gnvfs/index.html
GNOME VFS中smb模块编码转换分析
介绍增加smb模块的编码转换
http://blog.openrays.org/blog-htm-do-showone-tid-479.html
利用 GNOME 库来简化应用编程
gnome库将glib和gtk库封装了一下,老实说,也许不那么好用,也许没glib的好用?
http://www.ibm.com/developerworks/cn/linux/guitoolkit/gnome/gnome-programming/index.html
http://www.ibm.com/developerworks/cn/linux/guitoolkit/gnome/gnome-2/index.html