清华大学《存储技术基础》2018 课程作业,基于 FUSE 的 FTP 文件系统。
小组成员:
郑远航,陈齐斌,秦一鉴,乔一凡
- Linux (fully)
- BSD (mostly/best-effort)
- For OS-X, please use OSXFUSE
我们已经在 Ubuntu 16.04 LTS 下测试运行成功,推荐在 Ubuntu 16.04 下安装运行。
- libfuse. 我们的项目本身是基于 libfuse 的,工程内已经内置了 libfuse。
- Python 3
- Meson. 工程使用 Meson 和 Ninja 进行构建。我们已经在工程中内置了 Meson。位置在
meson/
- Ninja. 我们需要 Ninja 版本 >= 1.5.1
从官方网站下载并安装 Ninja:
$ sudo apt-get install ninja-build
构建工程:
$ mkdir build; cd build
$ ../meson/meson.py ..
使用 Ninja 编译,测试,安装 FUSE-FTP
:
$ ninja
$ sudo ninja install
我们更推荐使用已经提供的脚本进行编译:
# in $ROOT of FUSE-FTP project
$ bash build.sh
使用工程根目录下的 run.sh
脚本运行:
$ bash run.sh
fuse-ftp
会自动将远程 FTP 服务器根目录映射到本机 /mnt/fuse
目录下。
FUSE-FTP
的核心代码在 example/
下,主要有以下几个文件:
├── ftp-test.c
├── ftp.c
├── ftp.h
├── fuse-ftp.c
├── meson.build
└── util.h
其中:
util.h
定义了一些辅助函数;ftp.[ch]
定义实现了 FTP 有关操作;fuse-ftp.c
实现了 FUSE 部分的用户函数ftp-test.c
中包含了对 ftp 操作的测试