操作系统课程设计报告题目:文件系统模拟实验学生姓名:学号: 200917030133 专业班级:网工 09101 班同组姓名 : 指导教师:熊齐设计时间: 2012.2.13~2012.2.26 指导老师意见 : 评定成绩 : 签名 : 日期 : 一 、 设计目的该实验的目的是通过学习文件系统的模拟实验使我们能够更好的了解与掌握 unix 系统下的文件系统的基本设计原理,及 unix 系统下的基本操作方法, 另外,通过这次实验能够提高我们的实践动手能力,以及团队合作分工能力。 总之,该实验的主要目的是在掌握基本原理及基本方法的情况下,锻炼我们的实际操作能力。二、设计内容(1)概述为 LINUX 设计一个简单的二级文件系统。要求做到以下几点:1、可以实现下列几条命令(至少4 条)。Login 用户登录Dir 列文件目录Create 创建文件Delete 删除文件Open 打开文件Close 关闭文件Read 读文件Write 写文件2、列目录时要列出文件名、物理地址、保护码和文件长度。3、源文件可以进行读写保护。(2)设计原理和系统总体功能框架图设计原理: 首先本文件系统采用两级目录,其中第一级对应于用户账户,第二级对应于用户账户下的文件。另外,为了简单本文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。另外该文件系统依据以下数据结构及主要函数而设计的。【1】主要的一些数据结构1)i 节点struct inode { struct inode *i_forw; struct inode *i_back; char i_flag; unsigned int i_ino; /* 磁盘 i 节点标号 */ unsigned int i_count; /* 引用计数 */ unsigned short di_number; /* 关联文件数,当为0 时,则删除该文件 */ unsigned short di_mode; /* 存取权限 */ unsigned short di_uid; /* 磁盘 i 节点用户 id*/ unsigned short di_gid; /* 磁盘 i 节点组 id*/ unsigned int di_addr[NADDR]; /* 物理块号 */ 2)磁盘 i 节点struct dinode { unsigned short di_number; /* 关联文件数 */ unsigned short di_mode; /* 存取权限 */ unsigned short di_uid unsigned short di_gid; unsigned long di_size; /* 文件大小 */ unsigned int di_addr[NADDR]; /* 物理块号 */ } 3)目录项结构struct direct { char d_name[DIRSIZ]; /* 目录名 */ unsigned int d_ino; /* 目录号 */ } 4)超级块struct filsys { unsig...