模拟Unix文件系统实验报告汇总.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟Unix文件系统实验报告汇总实验介绍文件卷结构设计0#1#…K#K+1#K+2#K+3#…n#K=12,n=2048I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址目录结构用16字节表示,其中14字节为文件名,2字节为I节点号用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(文件树结构应与用户相对应:有每个用户的HOME目录)组信息中可只包含组名,组号。实验环境Linux操作系统,标准c89实验设计3.1系统流程输出登录选1,初始化选2输入一个整型ii0? N Yi==2? N Yi==1? N Y是否退出?登录成功?N N Y Y3.2文件结构1.基本思路:用硬盘上的一个文件(funix.txt)来模拟一个文件卷。2.磁盘块的设计:每块512个字节,一共2048块,数据区占用2035块,I节点占用12块,每个i节点占48个字节,一共128个i节点,超级块占第0块。3.空闲磁盘块:采用成组链接法管理。每组10块,格式化时假设所有块都分配了出去,将所有块按从大到小的顺序依次压入。4.I结点管理:采用位示图法,注意此时位示图不表示空闲块,只表示相应的i节点号是否被利用,如果被利用相应的i节点号对应位示图的那一位为1,如果没有被利用则对应的位为0。3.3实现命令操作命令格式ls显示文件目录chmod改变文件权限chown改变文件拥有者chgrp改变文件所属组pwd显示当前目录cd改变当前目录mkdir创建子目录rmdir删除子目录umask文件创建屏蔽码mv改变文件名cp文件拷贝rm文件或目录删除ln建立文件联接cat连接显示文件内容passwd修改用户口令touch创建文件vi编写文件内容四. 数据结构4.1超级块#ifndef SUPERstruct super{unsigned int csize;//文件系统的总块数(4)unsigned short bsize;//每块的字节数(2)unsigned int dsize;//数据块的块数(4)unsigned int dbeg;//数据块的起始块号(4)unsigned int demp;//空闲盘块数(4)unsigned short isize; //i节点块的总块数(2)unsigned int ibeg;//i节点的起始块号(4)unsigned short inum;//i节点的个数(2)unsigned short i[8];//i节点位示图(12)unsigned short iclock;//inode锁(2)unsigned int mfsize;//文件的最大所占字节数(4)unsigned short bmf;//文件的最大所占块数(2)time_t bu;//修改时间(8) short dssize;//当前空闲盘块好栈中的空闲盘块数目(2)unsigned int dss[DS_size];//(400)unsigned short dsclock;//成组链接锁(2)}sup;#endif4.2I节点//外存i节点#ifndef INODEstruct inode{unsigned int fsize;//文件大小(4)unsigned short fln;//文件连接数(2)char gid;//文件所属组id(1)char uid;//文件拥有者id(1)int fmode;//文件的类型和权限(4)time_t itime;//文件最后修改时间(8)unsigned int addr[6];//文件地址(24)};#endif//内存i节点#ifndef MINODEstruct minode{int iid;//i节点号struct inode in;//读入内存的外存i节点/char chflg;//是否被修改unsigned short mico;//(未用到)进程连接的个数};#endif4.3目录//目录#ifndef LISTstruct list{char ls_name[14]://文件或目录名;unsigned short ib;//对应的i节点号/};#endif4.4用户文件表#ifndef LS_MINODEstruct ls_minode{unsigned int f_offest://文件相对起始位置的偏移;int f_flag://文件的存取权限;unsigned short f_count://打开这个文件的操作的个数;struct minode* mi://内存i节点;}f_inode[50];#endif4.5用户和组外存用户信息#ifndef USERstruct user{c

文档评论(0)

你好世界 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档