模拟Linux文件系统的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:liuhao0760
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: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).
其他文献
摘要:移动互联行业已进入高速发展期,致使开发人才需求急剧增加。该文以常州信息职业技术学院移动互联应用技术专业为例,从移动互联人才的培养模式、课程体系建设和实训基地建设等方面阐述了在工学结合模式下该专业在人才培养方面的探索与实践。  关键词:工学结合;移动互联应用技术专业;人才培养;课程体系  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)10-0106-02  1
摘要:线性代数是理工专业本科学生的基础数学课程,相比其他数学课程,线性代数学习内容抽象、课时少。如何将抽象的理论知识更直观自然地教授给学生是线性代数教学过程中研究的内容,特别针对二本学院学生。该文根据软件学院办学特点,在讨论数字图像原理的基础上,对线性代数教学进行了探讨,并在此基础上给出提高教学效果的一系列建议。  关键词:软件学院; 图像处理;线性代数  中图分类号:G64 文献标识码:A 文章
摘要:随着Internet的出现,网络、计算机、通讯等技术的飞速发展,“数字”一词则进入了各个领域,社会各界通过网络、计算机、移动通讯等方式来传递信息,改变了人们获取信息的方式,促使文献资源的建设、管理、服务、获取信息方式等由纸质型向数字网络化方向转型,数字图书馆成为了未来图书馆的主要发展方向,在文献资源建设中,很多数据库不断涌现。结合作者的实际工作经历,论文以“花卉资源的关联规则算法研究”项目为
摘要:初中生物对将来的生物学习起着地基的作用。教材是课程的依托,是教学和学习的重要参考资料。笔者通过扫描整理得到电子版维吾尔文初中生物四册教材的文本,使用统计软件统计出四册教材中的词汇和词频,经过手工统计得到其中的生物词汇和词频,从中选取高词频的生物词汇,参照国家教育部2011年发布的课程标准,通过专业词汇的词频分析了对初中生物教材知识点的符合程度,结合维吾尔文语言学的特点,针对维吾尔文初中生物的
摘要:大学开放的学习环境以及不逃课就不算上过大学这种错误的思想观念的影响,再加上很多大一新生刚从高中时代那种封闭的学习环境中解脱出来,自身的放松使得他们对课堂学习不重视,玩手机、逃课等现象严重。这使得大学课堂的学习氛围普遍不高,学习效率低下。那么如何调动高校学生课堂学习的积极性呢?该文从学生的角度出发,剖析了当前高校学生课堂学习积极性不高的原因,通过以单片机的学习为例,介绍了课堂理论学习与实验学习
摘要:本系统采用VB 6.0和Access 2000分别作为主要开发工具和数据库,主要实现了对学生的学籍,班级、所学课程、成绩和考勤信息的统一管理,减少了管理方面的工作量。使对学生信息的管理实现了自动化和规范化,并且在实现其功能的基础上,增加了用户的使用权限。系统按功能共分为五部分:学籍管理模块、班级管理模块、课程管理模块、成绩管理模块和考勤管理模块。  关键词:VB 6.0;模块;学生管理系统 
摘要:根据应用需求,基于MATLAB GUI设计了数据格式标准化软件。首先对基于MATLAB GUI的软件设计流程进行了概述,之后对MATLAB GUI 数据传递的关键技术方法进行了介绍,结合对设计软件的主要功能的说明,分析了MATLAB GUI设计的优缺点。  关键词:MATLAB;GUI;数据格式;软件设计  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)01
摘要:該文针对永磁同步电机(PMSM)的矢量控制,针对PMSM在坐标下的数学模型使用扩展卡尔曼滤波方法,根据测量永磁同步电机的电压、转速和转子位置对永磁同步电机三相电流进行观测,最后在Simulink里搭建永磁同步电机的矢量控制模型与EKF电流观测器模型。仿真结果表明电流观测器估计精度较高、运行稳定,动静态性良好。  关键词:永磁同步电机;矢量控制;电流观测器;扩展卡尔曼滤波  中图分类号:TP1
摘要:人脸识别在实际应用中,通常由于光照的影响导致识别率的大幅下降。针对这一情况,该文从人脸图像预处理和特征提取算法两方面进行改进。文章首先采用了基于光照分量的算法进行人脸图像预处理,提高了算法对于光照的鲁棒性,然后提出了改进的结合了Gabor小波和LBP滤波的算法,并在有光照变化的标准人脸库上进行识别率测试。实验结果表明,该文算法对于变化光照的鲁棒性较高,在标准人脸库中的识别率最高可达到98.9
摘要:介绍了Windows NT平台下RootKit实现的基本原理及步骤,探讨了在Windows平台下进行Ring0级编程的实现及如何修改安全参考监视器来彻底突破NT的安全防御系统,并给出了整个RootKit的部分核心汇编源代码。  关键词:RootKit;Windows NT;Ring 0;安全参考监视器  中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)35-255