0

其中一关于高级 linux 编程状态的书:

/proc/filesystems条目显示内核已知的文件系统类型。请注意,此列表不是很有用,因为它不完整:文件系统可以作为内核模块动态加载和卸载。/proc/filesystems列表的内容仅列出静态链接到内核或当前加载的文件系统类型。其他文件系统类型可能在系统上作为模块可用,但可能尚未加载。

我现在有:

➜  ~  ps -C sshfs
  PID TTY          TIME CMD
 8123 ?        00:00:00 sshfs
➜  ~  mount | grep sshfs
root@ss1: on /home/wani/tmp type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
➜  ~  

但 ...

➜  ~  cat /proc/filesystems | grep sshfs
➜  ~  
4

1 回答 1

2

sshfs使用FUSE基础设施在用户空间中实现。内核不知道用户空间文件系统是一个单独的实体。然而,FUSE 内核端基础设施本身内核已知的。在我的系统上:

$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   ramfs
...
        ext4
        cramfs
...
nodev   fuse
nodev   fusectl
...

注意最后两行;内核知道fuse文件系统,它本质上是一个适配器接口,允许用户空间进程提供文件系统服务。

于 2014-08-24T21:02:44.453 回答