FUSE - 详细文档

12

试图使用fuse(用户空间文件系统,Linux)来使自己的文件系统工作,我真的很好奇如何获得详细的最新操作文档?

大多数时候,我搜索其他文件系统实现并查看它们的操作方式,但有些操作似乎并不常用,例如poll / ioctl或bmap。而且,fuse api的文档并没有太大帮助,例如操作的参数和返回值都没有文档记录,因此我必须猜测如何使用它们。

所以问题是,我在哪里可以获得更好的信息,了解如何实现这些奇特的操作?

谢谢


FUSE是开源的,你不必猜测,可以去查找确切的操作和发生的事情。 - Steve-o
1
我必须同意Steve-o的观点。我下载了最新的FUSE源代码发布版(2.9.2,去年晚些时候发布)。fuse.h文件描述了poll、ioctl和bmap。如果您对特定函数有疑问,请发布新问题,描述混淆点。此外,您确定需要使用这些函数吗?并非所有的FUSE文件系统都需要使用所有的函数——例如,我编写了一些仅呈现只读文件系统的FUSE模块,因此它们可以忽略写入函数。 - Multimedia Mike
2
所以,为了让讨论回到问题本身 - 答案似乎是“fuse本身的源代码”。 - John Doe
它的文档很少,可能是因为libfuse并不打算被用于那些设计和编写它的人之外。这是一个开源项目,但只有源代码是公开的,没有像大多数开源项目那样足够的文档。 - xnervwang
1个回答

14

是的,您说得对,很多地方评论称FUSE缺乏文档。也许这是因为需要记录的内容非常少。或者实现仅适用于那些足够了解用户空间文件系统权衡的人。因此您可以参考以下文档、教程、幻灯片甚至示例代码以获取更多信息:

FUSE设计文档(来自Sun?):

http://www.youblisher.com/p/31627-fuse/

http://wr.informatik.uni-hamburg.de/_media/research/labs/2008/2008-03-michael_kuhn-container_library_and_fuse_container_file_system-report.pdf

http://www.oug.org/files/presentations/losug-fuse.pdf

http://sar.informatik.hu-berlin.de/teaching/2013-w/2013w_osp2/lab/Lab-4-FUSE/lab-FUSE_.pdf

http://www.cs.hmc.edu/~geoff/classes/hmc.cs135.201001/homework/fuse/fuse_doc.html(教程)

http://www.cs.cmu.edu/~./fp/courses/15213-s07/lectures/15-filesys/index.html

涉及 IT 技术的文件系统内容。

http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/

关于 FUSE 的教程,FUSE 可以在用户空间实现文件系统。

样例代码:

http://fuse.sourceforge.net/helloworld.html

此处提供 FUSE 的示例代码。

以下内容更多是面向研究的:

http://www.msrsas.org/docs/sastech_journals/archives/May2011/2.pdf

https://code.google.com/p/s3fs/wiki/FuseOverAmazon

以上两个链接都与 FUSE 有关。

但总的来说,在用户空间实现文件系统存在很多问题和难题(这些可能需要通过一些复杂的算法来解决),这也是为什么 Linus 将其称为“玩具”的原因:

https://ceph.com/dev-notes/linus-vs-fuse/

这里提及到了 Linus 对 FUSE 的看法。

2015年4月15日更新:

我刚找到了这个(还有许多其他幻灯片——只需查看此网页的右侧):

http://www.slideshare.net/adorepump/fuse-developing-fillesystems-in-userspace

这是一份关于在用户空间开发文件系统的幻灯片。

1
仅供完整性参考,官方文档请访问:https://libfuse.github.io/doxygen/index.html Fuse 项目网站:https://github.com/libfuse/libfuse - John Doe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接