FUSE 简介

编译别人改过的一个 OpenWRT ,发现用到了一个叫 FUSE 的包。感兴趣了解一下。

FUSE 是 Filesystem in USErspace 的简称。对于文件系统,经常安装系统、格式化 U 盘的各位都不会陌生,比如 FAT32、hgfs、EXT3等等。我们的具体物理设备,只有经过文件系统的“包装”,才能被操作系统识别使用。虚拟文件系统与这些不一样,实际上,通常情况下,他们并不会直接的对物理存储设备进行操作,它的存在只是为了让用户“看起来像”是在对一个文件系统进行操作。比如,通过 SSH 访问另一台电脑的文件系统,我们通常做法是使用 scp 来进行文件拷贝;如果使用基于 FUSE 的虚拟文件系统 SSHFS,同样通过 SSH 来连接到这台电脑,但是,我们对远程文件的操作,已经变得与对普通 U 盘上的文件操作几乎一样。

作为一个文件系统,它肯定需要内核的支持,然后,既然是用户空间的文件系统,那它就是支持我们自由编程的,所以,一个完整的 FUSE 实现,需要三部分:

 - A kernel filesystem module

 - A userspace library

 - A mount/unmount program

理论上讲,只要是 FUSE 能获取到的资源,都可以被包装成一个文件系统。另外,下面这段来自 wiki:

The original, and commonly used implementation, is implemented as a loadable kernel module. Released under the terms of the GNU General Public License and the GNU Lesser General Public License, FUSE is free software. This implementation of FUSE is available for Linux, FreeBSD, NetBSD (as puffs), DragonFly BSD (as puffs), OpenSolaris, Minix 3, Android and OS X.[1]

看起来还是挺有用的,Linux 内核版本高于或等与 2.4.21 都支持该机制,Debian 早在 05 年就在用了。

 

====

另,好奇搜索了一下 windows 下类似应用。找到类似操作 FTP 的方法:

FTP Drive:http://www.killprog.com/fdrve.html

 

posted @ 2016-01-22 16:07  Biiigfish  阅读(2476)  评论(0编辑  收藏  举报