0.适合学完操作系统课程还未做过课设的同学阅读
在优快云上搜索同名文章,大多是一些fuse的介绍,以及各自的复杂fuse和RPC对接实现,初学来看可能还是不知道怎么动手写代码,所以写点自己的理解。本文基于内存文件系统来写,无权限控制,尽可能简化文件系统功能来快速做一个demo。
本科时候用C写过一个完整的文件系统小系统(./a.out执行后才进入文件系统),其功能大致可以分为下图几个部分。
1.FUSE基础知识了解(其他博客)
2.FUSE已经做了什么
对比前后两图,可以看到FUSE已经完成了各级目录的显示输出,已经申明了一些函数接口,即已经告诉你有一些具有特定功能的函数,但是功能的具体实现需要程序员自己设定。定义函数如下:
struct fuse_operations {
int (*getattr) (const char *, struct stat *);
int (*readlink) (const char *, char *, size_t);
int (*mknod) (const char *, mode_t, dev_t);
int (*mkdir) (const char *,