-
实现了基本的文件操作和目录操作
-
支持软链接、硬链接
-
支持元信息修改
-
文件索引使用跳表 (skiplist)
-
块分配算法与 Linux 伙伴系统类似
-
能记录日志(是文件系统服务程序的日志,不保存在文件系统镜像中)
-
编译环境:gcc 7.0 以上,cmake 3.10 以上, pkg-config
-
编译选项在 compile_config.h 中
默认编译选项为 RELEASE 和 LOCK。块大小默认 4K,文件系统大小默认 4G。
#define NAIVE // NAIVE 模式静态分配空间
#define RELEASE // RELEASE 模式不会产生 log
#define LOCK // LOCK 模式有全局锁
const size_t block_size = 4096; // 4 k
const size_t block_count = 1024*256*4; // 4 G
-
运行环境:
linux
操作系统 和fuse 2.6
以上 -
实测环境: ubuntu 18.04, gcc 7.3.0, fuse 2.9.7, cmake 3.10.2, pkg-config 0.29.1
-
测试
mkdir cmake-build-debug
cd cmake-build-debug
cmake ../
cd ../test/
./test.sh
test1 测试文件读写 test2 测试目录操作 test3 从github下载本仓库并编译
src/inline_test 文件夹下的测试代码是从 log 中分离出来的,用于在 DEBUG 模式下模拟用户行为
-
不支持读写权限管理
-
不支持用户权限管理