一、实验介绍
本实验要求完成一个 UNIX文件系统的子集的模拟实现。实验的提示与要求:
(1) 文件卷结构设计
盘块管理采用成组链接法。
0#块可省略
I节点栈及空间为20项
块大小为512字节
卷盘块数大于100
I节点盘块数大于10块
(2) I节点结构设计
文件大小
文件联接计数
文件地址
文件拥有者
文件所属组
文件权限及类别
文件最后修改时间
其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址
(3) 目录结构
用16字节表示,其中14字节为文件名,2字节为I节点号
(4) 用户及组结构
用户信息中包括用户名、口令,所属组,用户打开文件表
(文件树结构应与用户相对应:有每个用户的HOME目录)
组信息中可只包含组名
(5) 文件树结构
除(4)要求外,适当考虑UNIX本身文件树结构
(6) 实现功能
ls 显示文件目录
chmod 改变文件权限
chown 改变文件拥有者
chgrp 改变文件所属组
pwd 显示当前目录
cd 改变当前目录
mkdir 创建子目录
rmdir 删除子目录
mv 改变文件名
cp 文件拷贝
rm 文件删除
ln 建立文件联接
cat 连接显示文件内容
passwd 修改用户口令
二、实验环境
操作系统 :windows7 64位
开发工具 :vc6.0
三、实验设计
3.1 系统流程
图3.1.1系统流程图
注释:命令执行完毕后将返回输入命令界面
文字说明:
系统开始后进行初始化操作,首先判断模拟磁盘文件是否存在,不存在则初始化一个模拟磁盘,存在则读入超级块、用户、组,初始化当前目录。
接着用户登录,登录成功后进入系统主界面,输入各项命令即可进行各项操作。
3.2 文件结构
图3.2.1文件卷结构
文字说明:
模拟磁盘大小为200KB,每一个盘块大小为512字节,一共400个盘块,其中0号盘块预留,1号盘块为超级块,2~41号盘块为INode节点,42号~399号盘块为Block。
3.3 实现命令操作
本系统主要实现了以下命令:
ls 显示目录文件
chmod 改变文件权限
chown 改变文件拥有者
chgrp 改变文件所属组
pwd 显示当前目录
cd 改变当前目录
mkdir 创建子目录
<