项目简介
本项目基于Go语言和FUSE实现用户态的Minix文件系统,旨在帮助开发者学习文件系统的设计原理。通过重新实现Minix文件系统,能让开发者更深刻、快速地掌握文件系统相关概念。
项目的主要特性和功能
- 核心功能实现:包含文件系统初始化、文件创建、删除、读写等Minix文件系统核心操作。
- FUSE技术运用:借助FUSE,使用户空间程序可作为文件系统服务提供者,并将接口映射到内核。
- 简单操作接口:提供打开、读取、写入、删除文件等简易操作接口。
- 挂载卸载支持:支持文件系统在Linux系统上的挂载与卸载。
- 测试工具提供:可对文件系统的创建、删除、读写等操作进行性能测试。
安装使用步骤
环境要求
需使用centos 8.5最小化安装系统,下载地址: centos8.5。
安装步骤
编译并安装minix驱动
shell
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum install -y vim
wget https://vault.centos.org/8.5.2111/BaseOS/Source/SPackages/kernel-4.18.0-348.el8.src.rpm
rpm -ivh kernel-4.18.0-348.el8.src.rpm
cp./rpmbuild/SOURCES/linux-4.18.0-348.el8.tar.xz.
xz -d./linux-4.18.0-348.el8.tar.xz
tar -xvf./linux-4.18.0-348.el8.tar
cd linux-4.18.0-348.el8/fs/minix/
yum install -y kernel-devel
cp -rf * /usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64/fs/minix/
yum install gcc -y
yum install make -y
yum install -y elfutils-libelf-devel
make CONFIG_MINIX_FS=m -C /usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64 M=/usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64/fs/minix
cd /usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64/fs/minix
insmod./minix.ko
mkfs.minix /dev/sdb
mount /dev/sdb /mnt/
yum install -y fuse3
安装golang 1.18版本
shell
wget https://go.dev/dl/go1.18.10.linux-amd64.tar.gz
tar -zxvf./go1.18.10.linux-amd64.tar.gz
echo "export GO111MODULE=on" >> ~/.bash_profile
echo "export GOPROXY=https://goproxy.cn" >> ~/.bash_profile
echo "export GOPATH=/root/gopath/" >> ~/.bash_profile
echo "export GOROOT=/root/go" >> ~/.bash_profile
echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin" >> ~/.bash_profile
source ~/.bash_profile
运行步骤
shell
dd if=/dev/zero of=/dev/vdb bs=1M count=1024
mkfs.minix /dev/vdb
mount /dev/vdb /mnt
touch /mnt/111
echo "222" >> /mnt/111
umount /mnt/
./minix_fuse /mnt /dev/vdb
操作使用
- 通过命令行参数指定挂载点和文件系统名称,启动文件系统服务。
- 使用常规的Linux文件系统操作命令(如ls、cd、cat等)来访问和操作文件系统。
- 使用测试工具对文件系统进行操作,验证文件系统的正确性和性能。
注意事项
- 项目需在Linux系统上运行,因FUSE技术主要用于Linux。
- 需安装golang 1.18版本,项目基于Go语言编写。
- 运行项目前,确保minix驱动已正确安装和配置。
- 进行性能测试时,需保证测试环境的硬件和操作系统配置合适,以获取准确结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】