欢迎来到天天文库
浏览记录
ID:51469460
大小:37.50 KB
页数:6页
时间:2020-03-25
《Linux二级文件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、文件系统的设计及实现内容要求:为Linux系统设计一个简单的二级文件系统。要求做到以下几点:1.可以实现下列几条命令:login用户登录dir列目录create创建文件delete删除文件open打开文件close关闭文件read读文件write写文件2.列目录时要列出文件名,物理地址,保护码和文件长度。3.源文件可以进行读写保护。程序设计1.设计思想:采用两级目录,其中第一级对应于用户账号,第二级对应于用户账号下的文件。2.主要数据结构:(1)i节点structinode{structinode*i_forw;structinode*i_back;chari_flag;unsign
2、edinti_ino;unsignedinti_count;unsignedshortdi_number;unsignedshortdi_mode;unsignedshortdi_uid;unsignedshortdi_gid;unsignedintdi_addr[NADDR];(2)磁盘i节点structdinode{unsignedshortdi_number;unsignedshortdi_mode;unsignedshortdi_uid;unsignedshortdi_gid;unsignedlongdi_size;unsignedintdi_addr[NADDR];}(3)
3、目录项结构structdirect{chard_name[DIRSIZ];unsignedintd_ino;}(4)超级块structfilsys{unsignedshorts_isize;unsignedlongs_fsize;unsignedints_nfree;unsignedshorts_pfree;unsignedints_free[NICFREE];unsignedints_ninode;unsignedshorts_pinode;unsignedints_inode[NICINOD];unsignedints_rinode;chars_fmod;};(5)用户密码str
4、uctpwd{unsignedshortp_uid;unsignedshortp_gid;char*password[PWDSIZ];};(6)目录structdir{structdirectdirect[DIRNUM];intsize;};(7)查找内存i节点的hash表structhinode{structinode*i_frow;};(8)系统打开表structfile{charf_flag;unsignedintf_count;structinode*f_inode;unsignedlongf_off;};(9)用户打开表structuser{unsignedshortu_d
5、efault_mode;unsignedshortu_uid;unsignedshortu_gid;unsignedshortu_ofile[NOFILE];};3.主要函数(1)i节点内容获取函数iget()(2)i节点内容释放函数iput()(3)目录创建函数mkdir()(4)目录搜索函数namei()(5)磁盘块分配函数balloc()(6)磁盘块释放函数bfree()(7)分配节点区函数ialloc()(8)释放i节点区函数ifree()(9)搜索当前目录下文件的函数iname()(10)访问控制函数access()(11)显示目录和文件用函数_dir()(12)改变当前目
6、录用函数chdir()(13)打开文件函数open()(14)创建文件函数create()(15)读文件用函数read()(16)写文件用函数write()(17)用户登录函数login()(18)用户退出函数logout()(19)文件系统格式化函数format()(20)进入文件系统函数install()(21)关闭文件函数close()(22)退出文件系统函数halt()(23)文件删除函数delete()4.主程序说明BeginStep1对磁盘进行格式化Step2调用install(),进入文件系统Step3调用_dir(),显示当前目录Step4调用login(),用户注册
7、Step5调用mkdir()和chdir()创建目录Step6调用creat()创建文件0Step7分配缓冲区Step8写文件0Step9关闭文件0和释放缓冲Step10调用mkdir()和chdir()创建子目录Step11调用creat(),创建文件1Step12分配缓冲区Step13写文件1Step14关闭文件1和释放缓冲Step15调用chdir()将当前目录移到上一级Step16调用creat(),创建文件2Step17分配缓冲区Step18调用
此文档下载收益归作者所有