论文部分内容阅读
摘要:C语言作为计算机设计的高级语言,拥有很广泛的用途,该文讲述了使用C语言如何去实现模拟一个简单的Linux文件系统,对于我们学习操作系统知识有很好的借鉴作用。
关键词:C语言;Linux;文件系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)14-0058-03
Linux作为全球目前最大的一个自由免费软件,是一个能够与windows操作系统所能所相媲美的操作系统linux系统的发展是充满传奇色彩的;在1991年,以为来自芬兰的名叫Linus的学生参照Minix,自己重新开发的一个操作系统,他用自己的名字与UNIX相结合起来用来命名他所开发的这个系统Linux。当时他把0.02版的Linux系统放在Minix的新闻组上并呼吁所有与他一样有兴趣的人员一同来发展这个系统[1]。这样,在1994年,Linux1.0版本推出。作为开源式的的操作系统,Linux具有下面这些特点:
1) 它是一款自由的软件,开放源代码,我们可以不用花费任何费用就可以得到它以及它的源代码,并且可以根据自己的需要来对他进行改写;不受任何约束的对其进行传播。
2) 是所有操作系统中运行平台最多的。
3) 能够与UNIX系统兼容,拥有一个非常好的用户群体。
文件系统作为操作系统中最为重要的组成部分之一,它的主要功能就是对文件进行管理。文件系统位于操作系统的顶层[1]。我们日常生活中在使用计算机的时候与文件系统打的交道是做多的,比如我们查找文件,新建文件,清除文件等等。在操作系通的接口中文件系统扮演着十分重要的地位,他把我们使用计算机操作的抽象数据转换为能够在计算机物理设备上存放的具体数据,并且给我们提供访问和谐数据的结构和方法。而在Linux系统中,我们可以通过虚拟文件系统来支持各种各样的文件系统,其中ext2文件系统是使用的最广泛的[1]。而本文就是论述如何使用C语言来实现一个简单的模拟Linux文件系统,文章里面介绍了对于这次设计的设计思想,怎样进行文件系统的实现,以及对这个简单的模拟Linux文件系统的功能描述。
1 设计思想
我们的设计任务是在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟Linux文件系统 。我们为其设计了作为一个文件系统所具有的基本功能;首先,在设计中我们设计了两个用户,一个是普通用户,他可以在系统中进行文件的读写操作,同样也可以读文件进行删除和编辑,但是有权限限制;另一个就是管理员用户,他同样可以对文件进行读写操作,与普通用户不同的是他的权限级别更高,他可以对普通用户所建立的文件进行删除和读写,但是普通用户对他所建立的文件只能读,而不能进行删除;除此之外,对于系统的其他功能设计描述如下,这个简单的模拟linux文件系统主要功能有以下几点,能够显示当前系统中的文件目录,然后能够进入这些目录中去查看目录下的文件,并对这些文件进行操作,比如读文件内容,查看文件属性,对文件重命名,删除文件,当然在进行文件或者目录删除时是有权限限制的,如果该文件属于用户建立那么管理员个用户都可以对其进行操作,如果属于管理员所建立的,那么有些操作用户是不能进行操作的,该权限只属于管理员所拥有;同时系统中我们还可以对文件进行重命名。对于这一切简单功能的实现我们都是基于c语言来实现的,同时对于文件的存储我们使用的数据结构来实现。
2 文件系统的实现
系统通过调用函数实现了用户的登录、创建目录、更改目录、创建文件、修改文件以及用户权限管理等功能。系统主要的数据结构设计有一下几部分,目录结构,超级块结构,读取文件的物理块;对于系统的功能实现我们是通过系统调用相关函数来实现的,对于这个简单的文件系统,我们在其中主要的函数有:文件的创建函数,权限的判断函数,文件删除函数等等。
1)数据结构设计:
3 结束语
在操作系统的学习中,项目设计是该门学科重要的实践教学环节,通过项目设计我们可以更加具体的去理解操作系统的相关知识和理论。这次项目设计的目的有两个方面,一方面是使我们能够更好的理解操作系统中文件系统的基本概念和工作原理,使之更为具体化让我们更能容易理解;另一方面,通过项目的设计来提升我们的动手实践能力,培养我们独立分析问题、解决问题、应用知识的能力和创新精神。在项目设计的过程中,遇到各种各样的困难是在所难免的,同时在项目设计的过程中我们都发现了自己的不足之处,对以前老师所教授的知识理解的不够深刻,掌握的不够透彻;不过最终在老师的辛勤指导下我们终于将项目设计完成。同时,这次项目设计中,我们在老师的身上学到很多实用的知识,再次表示感谢!同时,对给过我们小组帮助的所有同学和各位老师再次表示衷心的感谢!
参考文献:
[1] 任爱华,侯雷.操作系统实用教程[M].3版.清华大学出版社,2010.
[2] 李春葆.数据结构教程[M]. 4版.清华大学出版社,2013.
[3] 张莉莉,王卫华.Linux文件系统的模拟实现[J].软件导刊,2010(11).
[4] 博韦,西斯特. 深入理解LINUX内核[M]. 陈莉君,琼声,张宏伟,译.3版.中国电力出版社,2007.
[5] 王浩亮.模拟Unix文件系统的设计与实现[J].多媒体技术及其应用,2006(08).
关键词:C语言;Linux;文件系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)14-0058-03
Linux作为全球目前最大的一个自由免费软件,是一个能够与windows操作系统所能所相媲美的操作系统linux系统的发展是充满传奇色彩的;在1991年,以为来自芬兰的名叫Linus的学生参照Minix,自己重新开发的一个操作系统,他用自己的名字与UNIX相结合起来用来命名他所开发的这个系统Linux。当时他把0.02版的Linux系统放在Minix的新闻组上并呼吁所有与他一样有兴趣的人员一同来发展这个系统[1]。这样,在1994年,Linux1.0版本推出。作为开源式的的操作系统,Linux具有下面这些特点:
1) 它是一款自由的软件,开放源代码,我们可以不用花费任何费用就可以得到它以及它的源代码,并且可以根据自己的需要来对他进行改写;不受任何约束的对其进行传播。
2) 是所有操作系统中运行平台最多的。
3) 能够与UNIX系统兼容,拥有一个非常好的用户群体。
文件系统作为操作系统中最为重要的组成部分之一,它的主要功能就是对文件进行管理。文件系统位于操作系统的顶层[1]。我们日常生活中在使用计算机的时候与文件系统打的交道是做多的,比如我们查找文件,新建文件,清除文件等等。在操作系通的接口中文件系统扮演着十分重要的地位,他把我们使用计算机操作的抽象数据转换为能够在计算机物理设备上存放的具体数据,并且给我们提供访问和谐数据的结构和方法。而在Linux系统中,我们可以通过虚拟文件系统来支持各种各样的文件系统,其中ext2文件系统是使用的最广泛的[1]。而本文就是论述如何使用C语言来实现一个简单的模拟Linux文件系统,文章里面介绍了对于这次设计的设计思想,怎样进行文件系统的实现,以及对这个简单的模拟Linux文件系统的功能描述。
1 设计思想
我们的设计任务是在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟Linux文件系统 。我们为其设计了作为一个文件系统所具有的基本功能;首先,在设计中我们设计了两个用户,一个是普通用户,他可以在系统中进行文件的读写操作,同样也可以读文件进行删除和编辑,但是有权限限制;另一个就是管理员用户,他同样可以对文件进行读写操作,与普通用户不同的是他的权限级别更高,他可以对普通用户所建立的文件进行删除和读写,但是普通用户对他所建立的文件只能读,而不能进行删除;除此之外,对于系统的其他功能设计描述如下,这个简单的模拟linux文件系统主要功能有以下几点,能够显示当前系统中的文件目录,然后能够进入这些目录中去查看目录下的文件,并对这些文件进行操作,比如读文件内容,查看文件属性,对文件重命名,删除文件,当然在进行文件或者目录删除时是有权限限制的,如果该文件属于用户建立那么管理员个用户都可以对其进行操作,如果属于管理员所建立的,那么有些操作用户是不能进行操作的,该权限只属于管理员所拥有;同时系统中我们还可以对文件进行重命名。对于这一切简单功能的实现我们都是基于c语言来实现的,同时对于文件的存储我们使用的数据结构来实现。
2 文件系统的实现
系统通过调用函数实现了用户的登录、创建目录、更改目录、创建文件、修改文件以及用户权限管理等功能。系统主要的数据结构设计有一下几部分,目录结构,超级块结构,读取文件的物理块;对于系统的功能实现我们是通过系统调用相关函数来实现的,对于这个简单的文件系统,我们在其中主要的函数有:文件的创建函数,权限的判断函数,文件删除函数等等。
1)数据结构设计:
3 结束语
在操作系统的学习中,项目设计是该门学科重要的实践教学环节,通过项目设计我们可以更加具体的去理解操作系统的相关知识和理论。这次项目设计的目的有两个方面,一方面是使我们能够更好的理解操作系统中文件系统的基本概念和工作原理,使之更为具体化让我们更能容易理解;另一方面,通过项目的设计来提升我们的动手实践能力,培养我们独立分析问题、解决问题、应用知识的能力和创新精神。在项目设计的过程中,遇到各种各样的困难是在所难免的,同时在项目设计的过程中我们都发现了自己的不足之处,对以前老师所教授的知识理解的不够深刻,掌握的不够透彻;不过最终在老师的辛勤指导下我们终于将项目设计完成。同时,这次项目设计中,我们在老师的身上学到很多实用的知识,再次表示感谢!同时,对给过我们小组帮助的所有同学和各位老师再次表示衷心的感谢!
参考文献:
[1] 任爱华,侯雷.操作系统实用教程[M].3版.清华大学出版社,2010.
[2] 李春葆.数据结构教程[M]. 4版.清华大学出版社,2013.
[3] 张莉莉,王卫华.Linux文件系统的模拟实现[J].软件导刊,2010(11).
[4] 博韦,西斯特. 深入理解LINUX内核[M]. 陈莉君,琼声,张宏伟,译.3版.中国电力出版社,2007.
[5] 王浩亮.模拟Unix文件系统的设计与实现[J].多媒体技术及其应用,2006(08).