Unix文件系统代码实现

本文档详述了一个UNIX文件系统的子集模拟实现,包括文件卷结构设计、I节点结构、目录结构、用户及组结构,并实现了ls、chmod、chown、chgrp等基本文件操作。实验在Windows 7环境下,使用vc6.0开发。文件系统采用成组链接法,每个盘块512字节,总共有400个盘块。系统流程包括初始化、用户登录和命令执行。数据结构涉及超级块、磁盘iNode、内存iNode、目录、用户和用户组。
摘要由CSDN通过智能技术生成

点击打开链接获取源代码

一、实验介绍

本实验要求完成一个 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        创建子目录

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值