什么是 gvfs?为什么我应该在我的系统上使用它?

什么是 gvfs?为什么我应该在我的系统上使用它?

gvfs 在我的 Kubuntu 机器上为我做了什么?为什么 /usr/lib/gvfs/gvfs-gdu-volume-monitor 占用了如此多的 CPU 时间?

顺便说一句:我读过https://en.wikipedia.org/wiki/GVFS但仍然不知道它对我有什么好处,特别是在 KDE / Kubuntu 上。

lsof向我展示了thunderbirdfirefox并且pidgin打开了 gvfs 库,但是有什么功能呢?

答案1

GVFS(GNOME 虚拟文件系统)在您使用的用户应用程序(如 Firefox)下面提供了一个层。这一层称为虚拟文件系统,基本上向 firefox、thunderbird 和 pidgin 提供了一个公共层,允许它们将本地文件资源和远程文件资源视为一组资源。这意味着无论是在本地计算机还是远程计算机上对资源的访问对于用户来说都是透明的。

尽管这一层主要是为了让应用程序开发人员更容易地编写一组接口的代码,而不必区分本地和远程文件系统及其低级代码。

对于用户来说,这可能意味着您用来浏览本地文件的同一个文件管理器也可以用于浏览远程服务器上的文件。作为简化的对比,在 Windows 上,我可以使用资源管理器浏览本地文件,但要浏览 NFS 或 SFTP 服务器上的文件,我需要单独的应用程序。

答案2

它是一个虚拟文件系统,不是真实的文件系统,但看起来很真实。

我自己也遇到过,显示正在使用170G。但如果我检查du -hc它显示0G。所以实际上有 170G 正在使用,但在我家的另一个网络硬盘上,而不是在我正在查看和使用的系统上。

这可能是我从或向其复制文件的 samba 挂载,它显示了远程位置的大小,但查找/disk文件显示正在使用 170G。实际上有些是在缓冲区中使用的,但仅在使用文件时使用。当你断开桑巴(或其他)连接时,它就会消失。

答案3

当我从 PC 上完全删除 GVFS 后,PCmanFM 无法通过 SSH 连接到其他服务器。因此,出于这个原因,我必须保留 GVFS。

第二个原因,我女儿有一部Iphone,我对此很不满意,因为它使用MTP传输文档和照片,所以她又使用PCmanFM连接它。另一方面,她的 PC 上的 RAM 很少,因此 GVFS 守护进程会消耗大量所需的内存。

所以我想到了这个解决方案:我阻止守护进程启动,并在需要时启用它们:

systemctl --user stop gvfs* # stop all services with gvfs
sudo kill $(ps -A | grep gvfs | awk '{print $1}') # to be sure GVFS is not running
sudo chmod 0000 /usr/lib/systemd/user/gvfs* # this prevent GVFS from starting
lsof | grep gvfs # but it has many open files anyway...

当我再次需要 GVFS 时,我运行以下代码并重新启动:

sudo chmod 0644 /usr/lib/systemd/user/gvfs* # this enables GVFS again

也许它也对你有帮助。 :-)

如果 GVFS 可以在没有守护进程的情况下运行,那就更好了——只需按需调用,或者在不需要时退出,不是吗?

答案4

GVFS 对于现代工作流程绝对至关重要,因为它允许您无缝访问远程资源上的文件和文件夹。 KDE 中没有类似的东西:有一个名为 KIO 的部分实现,仅适用于某些应用程序。如果您想像在 Gnome、MAC 以及自 Windows 95 以来的所有 Windows 版本中那样使用远程资源;你将需要 gvfs。

gvfs 允许所有应用程序访问远程资源,例如 sftp 安装或 smb (windows) 文件共享。例如:您想在共享上播放一个多 GB 的视频文件;使用 gvfs 它将立即在任何播放器(视频、vlc 等)上播放。这是KDE无法复制的。作为解决方法,您可以使用 Nautilus(文件)而不是 Dolphin(Dolphin 由于缺乏功能而受到削弱)。

我想说,这可能是 KDE 衰落并且不像 Gnome 和其他环境那么受欢迎的关键原因之一。

相关内容