简单多用户文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单多用户文件系统
目录
一、课程设计任务描述 (2)
二、设计思想说明 (2)
2.1对该任务的理解分析 (2)
2.2设计任务剖析 (3)
2.3程序设计环境及工具选择 (4)
2.4函数层次图(即模块关系图) (5)
三、EXT2文件系统简介 (5)
3.1文件系统概述 (5)
3.2EXT2文件系统简介 (5)
四、数据设计与表示 (7)
4.1头文件说明 (7)
4.1.1 头文件:types.h (7)
4.1.2头文件:filetype.h (7)
4.1.3头文件:sys.h (8)
4.2数据结构说明 (8)
4.2.1 超级块(super block) (8)
4.2.2 组描述符 (8)
4.2.3 磁盘索引节点 (9)
4.2.4内存索引节点 (10)
4.2.5磁盘目录项结构体 (10)
4.2.6当前目录结构体 (11)
4.2.7用户打开文件表结构体 (11)
4.2.8系统打开文件表结构体 (11)
4.2.9用户结构体 (12)
4.3宏定义说明 (12)
4.4主要函数列表 (13)
4.5算法流程图 ................................................................................................ 错误!未定义书签。
五、数据分析........................................................................................................ 错误!未定义书签。
5.1输入数据 .................................................................................................... 错误!未定义书签。
5.2输出数据分析 ............................................................................................ 错误!未定义书签。
六、使用说明........................................................................................................ 错误!未定义书签。
6.1欢迎界面..................................................................................................... 错误!未定义书签。
6.2用户登陆界面 ............................................................................................ 错误!未定义书签。
6.3系统使用界面 ............................................................................................ 错误!未定义书签。
6.4创建目录及显示目录界面 ........................................................................ 错误!未定义书签。
七、课程设计总结................................................................................................ 错误!未定义书签。
7.1与给定文件系统的对比分析 .................................................................... 错误!未定义书签。
7.2未完成部分及改进方法 ............................................................................ 错误!未定义书签。
7.2课程设计总结 ............................................................................................ 错误!未定义书签。
八、参考文献........................................................................................................ 错误!未定义书签。
九、程序源代码及注解........................................................................................ 错误!未定义书签。
一、课程设计任务描述
为LINUX设计一个简单的二级文件系统。要求做到以下几点:
1、可以实现下列几条命令
Login 用户登录
Dir 列文件目录
Create 创建文件
Delete 删除文件
Open 打开文件
Close 关闭文件
Read 读文件
Write 写文件
2、列目录时要列出文件名、物理地址、保护码和文件长度。
3、源文件可以进行读写保护。
二、设计思想说明
2.1 对该任务的理解分析
一个文件系统从功能上划分程序为四个部分,第一部分是有关高速缓冲区的管理程序,主要实现了对硬盘等块设备进行数据高速存取的函数;第二部分代码描述了文件系统的底层通用函数,说明了文件索引节点的管理、磁盘数据块的分配和释放以及文件名与i节点的转换算法;第三部分程序是有关对文件中数据进行读写操作,包括对字符设备、管道、块读写文件中数据的访问;第四部分的程序与文件的系统调用接口的实现有关,主要涉及文件打开、关闭、创建以及有关文件目录操作等的系统调用。
由于我们不能亲自设计驱动程序,所以我们要模拟文件系统的设计、实现和功能,就不能把它直接做为操作系统实际的文件系统进行挂接。鉴于此,我们就有两个思路来完成该任务,一是在实际的硬盘上创建一个文件,把它做为磁盘进行各种对磁盘的模拟操作,这样做的好处是可以对它进行连续操作,只要在退出文件系统时,及时保存它的状态,当我们下次启动程序时,就能继续以前的操作,相比而言这更接近于实际;二是在内存中开辟一块空间,譬如1M或2M大小,继而对这块内存区域模拟磁盘操作,操作灵活但这样需每次开辟空间,极有可能隐藏一些需要关闭文件系统才能发现的错误,也就是说这样做不易于排错。在本次