个人头像

虚拟文件管理系统

发表于2017-06-30 | 分类于

一、实验题目

设计一个简单的多用户文件系统,模拟文件系统工作原理,磁盘块分配与管理

二、实验目的

深入了解文件管理系统,初步掌握文件管理系统的实现方法,加深理解文件系统的内部功能及内部实现。

三、实验环境

操作系统:deepin 15.3 桌面版
编译器:gcc version 5.3.1
语言:C语言

四、实验内容

1.需要实现的功能

login:登录
register:注册
open:打开文件
read:读取文件数据到屏幕
write:写文件,分为cover和append两种类型;cover是覆盖原数据,append是在不改变原始数据的基础上进行增加。
close:关闭文件
create:新增文件
delete:删除文件
exit:退出程序
help:帮助

2.设计思路

模拟文件系统,使用文本来当作磁盘,使用了空闲块记录表,目录,i-node等数据结构来辅助文件系统的运作。
磁盘:一个名为blockDisk的文件,里面含有256个数据块。每个数据块的长度为1024,可存储1024个字符。
I节点:包含文件名,文件保护码,文件长度,文件存放位置。
目录:一个链表,记录了i节点。
空闲块记录表FBT:用于记录磁盘块使用情况,0表示未使用,1表示使用。
数据块:保存了文件的数据,一个数据块至多存放一个文件。
数据块使用情况:用于记录文件使用数据块的情况。存放在I节点的fat数组中。
文件:一个文件最多占用两个数据块,即长度至多为4028.

五,源代码

https://github.com/nicahead/Virtual-file-management-system.git