欢迎来到天天文库
浏览记录
ID:9797967
大小:87.50 KB
页数:8页
时间:2018-05-10
《模拟仿真unix文件管理系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机系网络工程专业操作系统课程设计题目:模拟仿真UNIX文件管理系统班级:网络工程06103姓名:唐锦涛学号:06同组人姓名:起迄日期:2008.12.22—2008.12.31 课程设计地点:A513 指导教师:贺玉才评阅意见:成绩评定:评阅人:日期:完成日期:2008年12月31日一、设计题目:模拟仿真UNIX的文件管理系统二、题目描述(功能要求)模拟UNIX操作系统下常用文件操作命令,整个系统不能直接在Windows平台下直接进行文件操作(那样实现几乎没有任何意义)。程序必须模拟UNIX系统下的
2、文件结构,可以将整个操作过程以及数据保存在内存中,也可以自己选择自己实现起来比较容易的方式保存。在分析时,应该着重分析UNIX操作系统下的文件特性。在UNIX操作系统中,各个文件的属性以及它们之间的关系十分复杂,我们在设计程序的时候应当尽量地给文件增加多的属性,并对比windows系统下的文件属性,以便于更加真实地模拟UNIX系统中的文件存储,更好地理解windows系统下的文件存储与UNIX系统下的文件存储之间的区别。另外,对文件权限的分配在UNIX系统中有很好的用户体验,这一部分在windows操作系统中只有简单的实现。我们在设计程序时应尽量
3、地模拟实现UNIX系统中对文件的权限分配。程序必须包含的命令有:Dir列文件目录Create创建文件CreateDir创建目录Del删除文件DelDir删除目录Open打开文件Close关闭文件用户登陆以及其他辅助命令有:Help系统帮助Quit退出登陆Exit退出程序Delall删除所有(只限管理员)Cls清除屏幕Cmd调用windows命令三、设计思想说明根据题目的描述,首先我们应当熟悉UNIX系统下的文件结构,这是整个程序编写的核心。其次应考虑的是文件在程序中的存储方式。由于可以整个操作过程和数据保存在内存中,这样我们选取结构体来保存文件信
4、息。确定好结构体后文件的各种属性将保存在结构体中,因而对结构体成员的设置显得尤为重要(也是关键)。我们将整个程序分成几个模块来实现,这样的设计思路更清晰,实现也更容易。这三个模块包括:用户的权限控制、文件的存储结构体、对文件的各种操作。(整个程序用c语言描述)1、用户的权限控制不同的用户在UNIX系统中扮演了不同的角色,不同的角色对文件操作权限也不同。因此我们在设计模拟UNIX文件管理系统时,充分地考虑了不同用户对文件的操作权限,以尽量模拟UNIX系统中对用户的授权机制。经过仔细的分析,为了更加清晰地模拟UNIX中的用户权限以及更加容易地实现程序
5、设计。我们粗略地将用户分为三类:管理员、用户和匿名用户。三类用户分别对文件有不同的操作权限,尽管不能完全地实现UNIX系统的用户授权机制,但还是可以比较好也比较简单模拟UNIX系统中的用户授权机制。我们将具体用户权限分配如下:操作权限管理员用户匿名用户浏览文件有有有新建文件有有无管理自己创建的文件有有无管理其他用户的文件有无无2、文件存储结构体原本考虑为文件和目录建立不同的结构体,后来想到那样设计既烦琐也没有必要。因而将文件和目录用同样的结构体表示,只是用不同的类型作了标识,这样可以更容易也更好地实现各个文件目录之间的关系。文件结构体所包含的成员
6、有:文件类型、文件名、文件内容、属性、创建时间以及文件之间的关系,这一部分将在数据结构部分详细说明。3、各种文件操作用户权限分配好、文件存储结构体确定好之后,剩下的主要工作就是对文件的各种操作了,这是部分实现的难点不是简单地对文件的各种操作,而是在对文件进行各种操作之前对权限的判断。在这一部分,最容易实现的是对文件的浏览,因为每个用户都拥有这个权限,所以不需要控制。首先,我们初步地把对文件的操作函数列了出来:创建文件/目录:create()/createdir()删除文件/目录:del/deldir()列出当前目录文件:dir()转到目录:cd(
7、)打开文件:open()(注:由于创建文件/目录时所分配的资源相同,只是根据类型的不同去存储不同的文件类型,所以只需要一个函数,在调用是使用不同的参数即可。删除文件/目录部分亦如此,详细实现见源代码部分)四、数据结构的说明 1、用户权限控制在系统运行即提示用户选择用户的种类(管理员、用户、匿名用户),然后再根据用户的选择,执行相应的操作(用户登陆,匿名拥护则直接进入),在这一过程中,系统将根据用户类型分配不同的权限(详细实现见源代码部分)。2、文件结构体文件的类型分为两种:常规文件和目录。目录可以进入,并且还可以在其下面继续创建文件;而常规文
8、件则不允许,它们只能作为整个文件系统树的叶子。每个文件以树中结点的形式存在于文件系统中,而在程序里则用结构体来加以定义,各个结构体之间再
此文档下载收益归作者所有