2023-06-11
原文作者:奇小葩 原文地址:https://blog.csdn.net/u012489236/category_10976532.html

学习完了fuse的内核实现,我们真实的来看怎么实现一个简单的fuse文件系统,我们还是以之前的例子,对于用户空间需要实现基于libfuse实现的应用程序hello,例子可以参考http://fuse.sourceforge.net/helloworld.html

202306111259051261.png

首先,我们需要编译libfuse,其可以参考下面的github,里面有编译的相关方法

1 libfuse库测试

libfuse的仓库地址为:https://github.com/libfuse/libfuse

使用其方法编译安装完成如下图所示,表示libfuse库已经安装到我们的系统中

202306111259057662.png

libfuse提供了两个APIs:

  • 一个“high-level”同步API
  • 一个“low-level” 异步API

这两种API 都从内核接收请求传递到主程序(fuse_main函数),主程序使用相应的回调函数进行处理。

  • 当使用high-level API时,回调函数使用文件名(file names)和路径(paths)工作ÿ
阅读全文