项目简介
本项目是基于Rust和C++实现的EXT2文件系统,主要用于教学,旨在帮助理解文件系统的工作原理。项目结合了Rust和C++的优势,实现了文件系统的基本功能,并借助FUSE框架进行挂载和操作。
项目的主要特性和功能
- 文件系统初始化与销毁:支持对文件系统进行初始化和销毁操作。
- 文件与目录操作:可进行创建文件、目录,读取目录内容,获取文件属性等基本操作。
- 文件读写:支持文件的读写操作,不过部分功能(如大于16MiB的文件读写)尚未完全测试。
- 文件系统格式化:支持使用系统的
mkfs.ext2
工具或程序内部逻辑进行格式化。 - 调试信息输出:通过环境变量
RUST_LOG=debug
可输出详细调试信息。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 编译依赖库
先将ddriver
编译为静态库libddriver.a
,再编译Rust部分的rfs_bind
,生成librfs_bind.a
和lib_rfs_bind_lib.a
。
2. 编译并运行Rust实现
shell
cd rfs
cargo run -- --help
3. 编译并运行C++实现
shell
cmake -B build -S .
cmake --build build
./build/rfs_drv --help
4. 挂载文件系统
使用Rust实现挂载
shell
cargo run -- --mkfs -d disk ~/mnt
使用C++实现挂载
shell
./build/rfs_drv ~/mnt
5. 卸载文件系统
使用fusermount
命令卸载文件系统:
shell
fusermount -u ~/mnt
通过以上步骤,可成功编译、运行并挂载本项目实现的EXT2文件系统,进行文件和目录操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】