学习完了fuse的内核实现,我们真实的来看怎么实现一个简单的fuse文件系统,我们还是以之前的例子,对于用户空间需要实现基于libfuse实现的应用程序hello,例子可以参考http://fuse.sourceforge.net/helloworld.html
首先,我们需要编译libfuse,其可以参考下面的github,里面有编译的相关方法
1 libfuse库测试
libfuse的仓库地址为:https://github.com/libfuse/libfuse
使用其方法编译安装完成如下图所示,表示libfuse库已经安装到我们的系统中
libfuse提供了两个APIs:
- 一个“high-level”同步API
- 一个“low-level” 异步API
这两种API 都从内核接收请求传递到主程序(fuse_main函数),主程序使用相应的回调函数进行处理。
- 当使用high-level API时,回调函数使用文件名(file names)和路径(paths)工作ÿ