中北大学操作系统课程设计说明书学院、系:软件学院专业:软件工程学生姓名:徐春花学号:设计题目:基于Linux的模拟文件系统的设计与实现起迄日期: 2014年6月14日- 2014年6月26日指导教薛海丽师:2014 年 6月 26 日前言简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。
这个系统是由世界各地的成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。
用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。
可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。
这对Windows NT、Windows98、MS-DOS或OS2等商品化操作系统来说是无法做到的。
Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。
其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。
在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用IPCHAINSIPTABLE网络治理工具可构建NAT及功能全面的防火墙。
Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。
Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。
它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
目录1需求分析 (3)1.1 功能介绍 (3)1.2 目的及意义 (5)1.2.1 目的 (5)1.2.2 意义 (6)1.3 设计成果 (7)2总体设计 (8)2.1功能介绍 (8)2.2模块关联 (9)3详细设计 (12)3.1用户结构 (12)3.2数据结构说明 (12)3.3主要功能的关键代码 (13)4测试及运行结果 (18)4.1 测试定义 (18)4.2 测试目的 (18)4.3 测试结果 (19)4.3.1 文件测试 (19)5心得 (23)1需求分析1.1 功能介绍基于Linux的模拟文件系统的设计与实现完成以下功能:(1)创建用户:手动的创建10个用户,都在界面上完成,输入用户名;每个用户最多可以保存10个文件。
(2)用户登录:手动的登录已经创建的用户,正确输入用户名即可成功登录。
(3)显示所有用户:首先会创建很多用户,为了清晰、便捷的查看用户,所以在界面上可以显示所有的用户,这一功能的实现,主要是针对忘记自己用户名的用户,可以通过查看全部用户来查找自己的用户名。
(4)创建二级文件目录(MD):手动的输入目录名称,(即设置主目录(MFD)和用户文件目录(UFD))。
(5)显示目录:将用户创建的目录显示在界面上。
(6)删除目录:手动输入目录的名称即可删除已经创建的目录。
(7)进入目录:进入目录内部,可以进行文件的各种操作。
(8)修改目录:在用户登录后,输入要修改的目录名称,对其进行修改,输入新的目录名并保存。
(9)建立一个文件(create):在目录中手动输入文件名,可以创建新的文件,在创建的同时输入文件的保护码,对文件内容进行保护,防止信息泄露。
(10)打开全部文件(openall):将已经创建的文件夹全部显示在界面上。
(11)删除一个文件(delete):手动输入已经创建的文件的名称,即可删除此文件。
(12)写文件(write):手动的在文件中写入内容。
(13)读文件(read):查看文件中的已经写入的内容。
(14)移动文件:用户可以将某个目录下的文件移动到其它的目录中,只为了整理文件,便于查询,使用。
(15)改文件的保护码(change):手动修改文件的密码(保护码)。
基于以上的功能,可以使用户选择操作,模拟文件系统的设计与实现;此类功能都是在页面上手动操作完成。
1.2 目的及意义1.2.1 目的通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。
基于Linux的模拟文件系统的设计与实现,熟悉基本的网络命令以及他们的使用方法,体会Linux多用户的特点,熟悉网络配置文件的配置方法。
本系统是基于linux 平台运行在终端上的虚拟二级文件管理系统。
模拟真正的文件管理系统,并采用用户登录机制对文件和目录进行创建,增加内容,修改,删除的操作。
对于目录而言,可以进行创建删除新添文件的操作;对于文件而言,可以创建,修改,删除。
删除目录时,同时删除相应目录下的文件以及文件中的内容。
采用用户登录使得用户管理文件更方便,并形成了二级的文件管理模式。
操作系统(OS)是重要的计算机系统软件,同时也是最活跃的学科之一,其发展极为迅速。
它是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
它在计算机系统中占据了特别重要的地位;而其它的诸如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于操作系统的支持,取得它的服务。
操作系统已成为现代计算机系统、多处理机系统、计算机网络、多媒体系统以及嵌入式系统中都必须配置的、最重要的系统软件。
课程设计是学习的总结,通过课程设计温习我们已经学到的知识并加以运用,还可以了解到其它的知识,来充实自己,充分掌握操作系统的基本原理及各方面知识。
1.2.2 意义基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等。
在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。
目前流行的TiVo数位摄影机使用了经过定制化后的Linux。
此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys 的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。
Linux以它的高效性和灵活性著称。
它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。
Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。
Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。
它还包括带有多个窗口管理器的X-Window图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。
另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。
在Linux操作系统中实现文件的各种操作,即创建、删除、修改、写入、读取等。
通过课程设计让我们进一步了解操作系统,学习操作系统的各方面知识,加深对操作系统的认识,温习课上学过的知识,明确操作系统的作用。
可以在不同的角度来观察操作系统的作用。
从一般客户的观点,可把操作系统看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把操作系统视为计算机系统资源的管理者。
另外,操作系统实现了对计算机资源的抽象,隐藏了对硬件操作的细节,使用户能更方便地使用机器。
1.3 设计成果基于Linux的模拟文件系统的设计与实现,实现了采用用户登录机制,可以查看文件信息,管理文件及文件夹。
在界面中用户可以手动的进行操作,每一步都有操作成功或失败的提示,清晰的展示每一步的操作过程,用户可以方便的实现对文件的操作,例如:创建、修改、删除等。
经过几天的努力完成了基于Linux的模拟文件系统的设计与实现这一课题,按照具体的要求,将每个功能实现并附上温馨提示,主要的功能有:展示了添加用户、用户登录、创建二级目录、修改目录名、删除目录、显示全部目录、创建文件、修改文件名、删除文件、写入文件、读取文件、修改文件保护码等功能。
2总体设计2.1功能介绍本系统包括用户管理、目录管理、文件管理共3个模块。
在用户管理模块中,包括创建用户,输入用户名;用户登录等功能。
在目录管理模块中,包括创建二级文件目录,输入文件的目录名称;显示目录,输入文件目录的名字,显示出对应的目;删除目录;进入目录主要是为了操作目录内部的文件。
文件管理模块,包括文件的创建,在进入目录后可以按照提示输入文件的名称,输入密码,创建新的文件并添加文件的保护码;打开一个文件,在目录中按照提示输入文件的名称,便可以打开目录中对应的文件;打开全部文件,进入目录后,按照提示输入相应的操作,即可打开本目录下所有的文件;删除一个文件,进入目录按照提示选择相应的操作,输入文件名称,即可删除此文件;写入文件,在目录中打开一个文件,写入内容;读取文件,在目录中打开文件,查看文件的内容。
修改保护码,进入目录输入文件的名称,按照提示修改文件的保护码。
形象展示见下图2.1图2.12.2模块关联在系统中各个模块之间有着一定的联系,系统中创建10个用户,每一个用户可以创建多个目录,在目录中最多创建10个文件。
用户与目录之间存在一对多的关系,目录与文件之间也存在一对多的关系,用户与文件之间也存在一对多的关系。
具体描述见下图:图2.2图2.3图2.4图2.53详细设计3.1用户结构typedef struct user{char name[10];Content *con;struct user *next;}User;本系统可以创建10个用户,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。
do{printf("输入新用户名:\n");scanf("%s",name);exist=0;;char content[255];fnode *parent;fnode *child;fnode *prev;fnode *next;};a)函数介绍void zengjiayonghu();增加新用户void newfile(Content *con);创建新文件int display_files(Content *con);展示所有文件void dufile(Content *con);读取文件void writefile(Content *con);写入文件void shanchufile(Content *con);删除文件void yidongfile(User *u,Content *con);移动文件int zhankaiallconcent(User *u);展示所有文件void newcontentname(Content *c,char name[]);更改目录名称void newconcent(User *u);增加新目录void shanchuconcent(User *u);删除目录void xiugaiconcentname(User *u);修改目录名称void change_filepassword(Content *con);修改文件保护码int readall_files(Content *con);读取所有文件3.3主要功能的关键代码a)创建文件在用户成功的创建目录后,就可以创建文件了,创建新的文件时首先判断文件名是否已经存在,如果存在则提示重新输入,否则提示“请输入文件保护码!”,在输入文件保护码后,将创建新的文件成功。