littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Rust和C++的EXT2文件系统实现

项目简介

本项目是基于Rust和C++实现的EXT2文件系统,主要用于教学,旨在帮助理解文件系统的工作原理。项目结合了Rust和C++的优势,实现了文件系统的基本功能,并借助FUSE框架进行挂载和操作。

项目的主要特性和功能

  • 文件系统初始化与销毁:支持对文件系统进行初始化和销毁操作。
  • 文件与目录操作:可进行创建文件、目录,读取目录内容,获取文件属性等基本操作。
  • 文件读写:支持文件的读写操作,不过部分功能(如大于16MiB的文件读写)尚未完全测试。
  • 文件系统格式化:支持使用系统的mkfs.ext2工具或程序内部逻辑进行格式化。
  • 调试信息输出:通过环境变量RUST_LOG=debug可输出详细调试信息。

安装使用步骤

假设用户已经下载了本项目的源码文件。

1. 编译依赖库

先将ddriver编译为静态库libddriver.a,再编译Rust部分的rfs_bind,生成librfs_bind.alib_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】