- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unix文件系统实验报告
浙江工业大学计算机学院模拟Unix文件系统实验报告姓 名 傅攀 学 号 201426810803 班 级 计自1402 教 师 李波 实验介绍本次实验要求完成一个 UNIX文件系统的子集的模拟实现。即通过文件模拟磁盘,在该“磁盘”上通过模拟UNIX文件系统创建文件、分配磁盘块的方式实现一个模拟的UNIX文件系统的子集。它可以完成文件或目录的创建、拷贝、修改、重命名等一系列操作。主要目的是学习操作系统是如何在磁盘上创建一个文件的,如何控制文件类型及权限的,并学习相关的一些数据结构及其作用,了解掌握成组链接法等一些资源相关管理办法。下面是实验具体要求与预期功能:文件卷结构设计盘块管理采用成组链接法。0#块可省略I节点栈及空间为20项块大小为512字节卷盘块数大于100I节点盘块数大于10块I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址目录结构用16字节表示,其中14字节为文件名,2字节为I节点号用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(文件树结构应与用户相对应:有每个用户的HOME目录)组信息中可只包含组名文件树结构除(4)要求外,适当考虑UNIX本身文件树结构实现功能ls显示文件目录chmod改变文件权限chown改变文件拥有者chgrp改变文件所属组pwd显示当前目录cd改变当前目录mkdir创建子目录rmdir删除子目录mv改变文件名cp文件拷贝rm文件删除ln 建立文件联接cat连接显示文件内容passwd修改用户口令可考虑构造一个简单的编辑器,用于创建文件根据上述实验要求明确开发目标,预期实现上述所有功能,但函数具体功能与Unix系统功能可能存在差异。争取完成实验要求的功能(或简单或复杂)。由于所给实验要求较高,所以要实现这样的功能所需的代码量肯定很大,逻辑也不简单,所以在编写代码的时候采用整体思路是逐层次编写,比如先写最底层的块分配等操作,最后编写文件操作等,然后功能逐个添加,包括权限控制等方面。实验环境本次实验的开发环境信息如下:操作系统:Window 10 专业版 64位操作系统开发环境:Microsoft Visual Studio Community 2013开发语言:C++程序类型:Win32 控制台应用程序实验设计文件系统的磁盘结构的设计现在已知,磁盘的第0块为系统的引导块,一般用于系统引导或空闲。第1块为超级块,用于存放文件卷的资源管理信息,包括整个文件卷的盘块数、磁盘索引结点的盘块数、空闲盘块号栈和空闲盘块号栈指针、空闲盘块号栈锁、空闲索引结点栈和空闲索引结点栈指针、空闲索引结点栈锁等。从第2块起存放磁盘索引结点,直到第K块。从第K+1块起及其以后各块,都存放文件数据,直到文件卷的最后一块。所以磁盘结构如下:图1 文件系统磁盘逻辑结构本次实验中要通过文件来模拟磁盘,那么对应的文件所需的数据结构宏观上看可以是连续的block[128]。至于详细的数据结构如何和对应到块呢,这个只需要使用对应的数据结构的类型指针指向对应位置那么内部指针自然就对齐了。如何表示目录提到目录那么必须清楚两个概念目录文件和目录项。目录其实对应着一个文件也就是目录文件,而目录文件又是有目录项组成的好比目录文件是一张表,目录项是一个一个的表项。而目录项对应着一个文件,要是这个文件是目录文件(就是前面提到的那张表)那这个目录项就是一个目录,否则它就是文件。这个问题用文字还是比较难以表达的,还是用图来说明吧。图2 目录文件与目录项可以发现目录项与目录文件存在相互依赖关系,目录项指向目录文件,目录文件又包含目录项。那么最初的目录怎么知道呢?所以就需要一个根目录项“/”,而这个目录项就应当存储在超级块中。如何表示文件如何表示目录只是抽象的描述了一下目录的结构,可以发现创建目录的过程其实已经包含了创建文件,比如建立一个目录(或者说是文件夹)A,那么就必须创建一个目录文件。那么文件又是如何表示的呢?在我们的印象中,文件是由文件名和文件内容即文件数据组成的。那么在磁盘中文件是如表示、存储的呢?在图2中我们可以看到目录项C指向了一个普通文件,其实仅凭目录项是无法直接定位出磁盘中的文件数据的,但是目录项C中存储了文件名和可以指向文件的数据信息。依然是用一张图来说明这个问题。图3 根据目录项取出文件关于超级块上面抽象的介绍了一些结构,下面细化介绍一下超级块内的主要数据及其功能。首先,对于磁盘这种存储介质,我们可以根据
文档评论(0)