FUSE

用户态文件系统框架

1. 系统支持FUSE:

FUSE简介:

FUSE 是Linux Kernel的特性之一:

一个用户态文件系统框架,a userspace filesystem framework。

形象的说就是可以在用户态运行一个程序,程序暴露出一个FUSE文件系统,

对这个文件系统进行的读写操作都会被转给用户态的程序处理。

FUSE由内核模块 fuse.ko 和用户空间的动态链接库 libfuse.* 组成,

如果要开发使用fuse的用户态程序,需要安装 fuse-devel

yum install fuse-devel

Fuse control filesystem

加载fuse.ko后,可以用下面的命令加载fusectl fs:

mount -t fusectl none /sys/fs/fuse/connections

每个使用fuse的进程有一个对应的目录:

$ ls  /sys/fs/fuse/connections
38  42

fuse提供了 fusefuseblk 两种文件系统类型,

可以作为mount命令的 -t 参数的参数值, 文档给出的挂载选项:

2. 使用libfuse挂载用户态文件系统

FUSE开发用户态文件系统接口

把客户端源码克隆到本地:

编译libfuse到当前的ubuntu

Once you're strong enough, save the world:

BFS中fuse_main的输入参数: argc、argv,命令行参数

挂载参数,有参数值,BFS中设置的参数是:

BFS中fuse_main的输入参数:op,文件操作函数

fuse_operations 在文件 /usr/include/fuse3/fuse.h 中定义。

FUSE版本和支持的命令行参数

3. 参考文章

c. use文件系统分析(一)

d. 用户态文件系统fuse学习

e. FUSE协议解析

f. 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战

g. Linux下使用fuse编写自己的文件系统

h. Fuse文件系统优化方案

Last updated

Was this helpful?