Linux的虚拟文件系统中数据结构的研究.pdf

上传人:asd****56 文档编号:70340679 上传时间:2023-01-19 格式:PDF 页数:4 大小:144.81KB
返回 下载 相关 举报
Linux的虚拟文件系统中数据结构的研究.pdf_第1页
第1页 / 共4页
Linux的虚拟文件系统中数据结构的研究.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《Linux的虚拟文件系统中数据结构的研究.pdf》由会员分享,可在线阅读,更多相关《Linux的虚拟文件系统中数据结构的研究.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第2 1 卷第3 期2 0 0 1 年9 月湛江海洋大学学报J o u r n a lo fZ h a n j i a n gO c e a nU n i v e r s i t yV o J 2 1N o 3S e p 2 0 0 1L i n u x 的虚拟文件系统中数据结构的研究沈玉利(湛f t 海洋大学工程学院广东堪江5 2 4 0 2 5抽要:本文从源代码分析人手着重讨论了虚拟文件系统中内存的主要数据结构的掏成其属性的作用,意义及其调用方法美薯词:虚拟文件系统数据结构操作系统中围分类号:F 3 0 1 2 4文献标识码:A文章绾号;1 0 0 7 7 9 9 5(2 0 0 1)0

2、3 0 0 6 0 0 4S t u d yo ft h eD a t aS t r u c t u r e so fL i n u x SV F SS h e nY u l i(C o l l e g eo fE n g i n e e r i n g,Z h a n j i a n gO c e a nU n i v e r s i t y,Z h a n j i a n gG u a n g d o n g5 2 4 0 2 5)A b s t r a c t:I nt h i sp a p e r,t h es t u d yb e g i n sw i t ht h es o u r

3、 c ec o d e s T h em a i nm e m o r yd a t as t r u c t u r e so ft h eL i n u x sv i r t u a lf i l es y s t e ma r ed i s c u s s e d,a n dt h ef u n c t i o n s,m e a n i n g sa n du s i n gm e t h o d so fe a c hs t r u c t u r e sp a r a m e t e r sa r ea l s oi n t r o d u c e d K e yw o r d s

4、:V i r t u a lf i l es y s t e mD a t as t r u c t u r e sO p e r a t i n gs y s t e m自L i n u xT o r v a l d s 在1 9 9 1 年创建以来,由于该系统的源程序可被自由的拷贝、分散和使用,并鼓励其他人进一步对L i n u x 操作系统进行开发。一个通过I n t e r n e t 网络的全球范围内的自发的开发队伍,正在对L i n u x 逐步完善,大有成为主要操作系统之势。本文针对L i n u x 的虚拟文件系统中数据结构进行了较详细的讨论。1V F S 概述由于L i n

5、u x 最重要的特征之一是支持多种不同文件系统。为了能支持多种文件系统,L i n u x 用了一个称为虚拟文件系统(V i r t u a lF i l eS y s t e m)的接口层将实际的文件系统同操作系统分离开来。V F S 也称为虚拟文件交换(V i r t u a lF i l eS w i t c h)。它屏蔽了不同文件之间的差异,使所有文件系统对操作系统的其他部分和用户程序来说都是相同的。L i n u x 目前可以支持E X T 2、E X T、X I A F S、I S O F S、H P F S、M S D O S、U M S D O S、P R O C、S Y S

6、V、M I N I X、S M B、U F S、N C P、V F A T、A F F S 等格式的文件,它们都在L i n u x 内核源程序中提供了支持。V F S 将真实的文件系统从系统服务中分离出来,用户程序利用V F S 的统一操作界面与每一个具体文件系统相交互,而不必去关心具体操作的哪一种文件系统。V F S 实际上是用户进程与实际收稿日期:2 0 0 1 0 3 3 3作者简价:沈玉利(1 9 5 6 一)男在读博士,研究方向:计算机安全、模式识别、图像处理万方数据万方数据第3 期沈玉利:L i n u x 的虚拟文件系统中数据结构的研究6 1文件系统之间的一种接1 2,为了兼容

7、各种文件系统,V F S 定义了一组标准功能,并要求任何一种通过V F S 装的文件系统都必须实现这些功能,这些功能包括三个主要部分:文件系统操作,i 一节点操作和文件打开操作。在L i n u x 操作系统中,对不同设备的访问是通过不同设备标识符实现的,这很类似U N I X 操作系统。在L i n u x 文件系统的d e v 目录下列出了所有设备的标识符。在对不同文件访问时,L i n u x操作系统会将该设备的文件系统安装到文件系统目录上作为一个目录。操作系统对该设备的文件系统的访问就表现在对该目录的访问。V F S 的内核源程序的头文件通常存放在i n c l u d e 目录下以一

8、h 一为扩展名;其源程序则存放在f s 目录下以”C”为扩展名。2V F S 的结构L i n u x 的文件系统结构清晰,在用户进程对文件系统提出操作请求后,V F S 将内存的数据结构与具体文件系统的数据结构关联起来,同时调用具体的文件系统的操作函数,启动设备的输入输出操作,实现设备上文件的读取、写回、查找、更改、更新等操作,即由V F S 提供的内存节点缓冲区,内存目录项缓冲区,数据块缓冲区提供了内存中操作节点、目录、数据块手段,文件系统尽量在内存中处理文件,减少读取外设的操作次数。操作完成之后,文件系统在适当的时机将调用V F S 的更新例程,将改变的数据从内存中全部写回外部设备。3V

9、 F S 的主要数据结构V F S 是L i n u x 文件系统的核心,也是多种文件系统的统一操作界面,V F S 存在于内存中,它用内存中数据结构表示函数例程处理多种文件系统的数据结构和函数例程,故约定对于V F S 的数据结构都称为内存中的数据结构,以与具体文件系统的数据结构相区别。3 1 文件系统类型文件系统类型数据结构用来描述每一个被内核支持的文件系统的数据结构,该数据结s t r u c tf i l e s y s t e mt y p e c o n s tc h a r。n a m e;i n tf sf l a g s;s t r u c ts u p e rb l c o

10、 k(r e a ds u p e r)(s t r u c ts u p e rb l o c k。v o i d+,i n t);s t r u c tf i l es y s t e mt y p e。n e x t;)其中用到的主要属性有:n a m e f sf l a g s 该文件系统的名称及属性。r e a ds u p e r 表示该文件系统的超级块读取倒程函数指针。n e x t 表示在文件类型链表上的后继指针。该属性将文件系统中的所有类型的文件系统连接成一个文件类型链表3 2V F S i-节点文件系统中所有的普通文件,设备特殊文件,链接和目录都用节点唯一表示和标识的,不

11、同类的文件是通过节点的文件类型属性区分。与E X T 2 文件系统类似,V F S 中的每个文件、目录等都用且只用一个V F Si-节点表示。每个V F Si-节点中的信息通过文件系统相关例程从低层文件系统中得到。V F Si-节点仅存在于核心内存只要对系统有用,它们都会被保存在V F Si-节点缓存中。与3 1 所讨论类似内存节点的数据结万方数据万方数据6 2湛江海洋大学学报第2 1 卷构可通过结构类型i n o d e 来定义,i n o d e 结构类型中用到的主要属性有:-iC O U n t ih a s h 分别表示该内存节点使用数目和哈希链表。i s t a t e 该内存节点的

12、状态标志位。有三种状态:ID I R T Y(脏)表示该内存节点修改后还未写回设备,IL O c K(锁定)表示该内存节点将要被写入。一F R E E I N G(自由)表示该内存节点末使用。ia t i m e im t i m e i c t i m e 三种时戳机制。表示该内存节点最后访问时间,最后创建时间。用于跟踪节点使用情况。一一d ev i i n o 分别表示对该内存节点所在设备标识符和该设备上的节点编号。这两项属性唯一表示整个文件系统中的每一个节点。io p is b 分别表示对该内存节点操作的节点操作例程和超级块操作例程的结构体指针。每个内存节点都是通过这两个操作函数指针对该

13、内存节点进行操作的。im o d e in l i n k iu i d ig i d is i z e i t a g s 等属性的意义与E X T 2 文件系统磁盘节点意义相同。3 3 内存超级块内存超级块是磁盘超级块在内存中的存在方式。每一个安装的文件系统都要用到内存超级块,它提供给V F S 各个具体文件系统的多种信息。它的数据结构可通过结构类型S u p e rb l o c k 来定义,其中用到的主要属性有:sd e v 该内存超级块对应的磁盘超级块的设备标识符。u 该内存超级块对应的不同文件系统的磁盘超级块信息数据结构体的联合体。该内存超级块的文件系统类型决定了采用哪一种类型的超

14、级信息结构体实例。5 l i s t s p p 分别表示内存超级块的双向链表及对应的超级块操作函数。sd i r t y st y p e 该文件系统中脏数据链表和类型指针。Sw a i t 操作系统中的等待对列链表。Sr o o t 文件系统的根目录。Sb l o c k s i z e Sb l o e k a i z eb i t s sf l a g s Sm a g i c 这些属性与磁盘超级块相同。3 4 内存且录项该项是设备上的文件系统目录项在内存中的数据结构。该目录项的操作在目录缓冲区进行,内存目录项的数据可通过结构类型d e n r r y 来定义,其中用到的主要属性有:d

15、i n a m e 该数组是目录项内存中的标识符。dc o u n t di n o d e dp a r e n t dh a s h dl r u dc h i l d ds u b d i r s do p ds b 分别表示该内存目录项的使用数目,对应的内存节点,父目录项哈希链,L U R 链表父目录的子目录链表子目录链表,对应的目录项操作结构体指针及对应的超级块指针。dm o u n t s 安装信息。3 s 内存数据块的缓冲区头该项是用来管理内存数据块缓冲区的数据结构。该数据结构将内存块用合理的方式组织起来,以有利于数据块的查找、更新、分配等操作。该数据结构可通过结构类型b u f

16、 f e rb e a d 来定义,其中用到的主要属性有:bs i z e 表示对应数据块的大小。bd e v hb l o c k n r 表示该数据块所在设备标识符和该设备上的块号,这两项属性唯一确定了文件系统的每一个数据块。bs t a t e 缓冲区状态位。万方数据万方数据第3 期沈玉利:L i n u x 的虚拟文件系统中数据结构的研究6 3b n e x t bp p r e v 表示缓冲区头哈希对列上后继的指针和前驱的一重间接指针。bn e x t-f r e e bp r e v-f r e e bd a t a 表示缓冲区头双向链表的后继指针、前驱指针及数据块指针。hl i

17、s t 表示缓冲区头所在子链表类型。缓冲区的类型表示其当前状况,L i n u x 支持以下几种类型的缓冲区:c l e a n:未使用的新缓冲区;l o c k e d:等待写入且加锁的缓冲区。d i r t y:“脏”缓冲区,它们包含新的有效数据;s h a r e d:共享缓冲区;u n s h a r e d:由共享变为非共享的缓冲区。4V F S 的系统调用在L i n u x 的V F S 中提供了具体文件系统统一的操作界面,依赖于V F S 的多种操作函数的数据结构。在这些结构体中,文件系统共用的多个操作函数的函数指针组成结构体。属性的赋值由各个文件系统根据需要进行,以保证不同的

18、文件系统都可以利用该数据结构实现具体的操作。文件操作数据结构是实现对文件的搜索、读写、更新等操作。节点操作数据结构是实现节点的创建、查找、删除等操作。超级块操作函数实现的是超级块的对节点的读取、写回、释放、删除等操作和超级块的释放、写回、获取文件系统状态、再次安装等。目录项操作是目录缓冲区常用的操作函数。L i n u x 文件系统的系统调用实现了用户进程访问文件系统。V F S 提供给用户大量的系统调用,在V F S 的源程序中,系统调用占据了大量的编码。L i n u x 内核源程序提供的系统调用统一的格式为:a s m l i n k g er e t r nt y p es y sn

19、a m e(a r g u m e n t)5结束语本文讨论的对象是L i n u x 操作系统中V F S 的内核源程序,介绍了V F S 的内存的主要数据结构,V F S 与具体的文件系统的接口的数据结构及V F S 的系统调用。V F S 中的数据结构很多,这里我们只讨论内存中部分主要的数据结构。为了节省篇幅,文中未列出的相关的代码和数据结构请在参考文献查阅。L i n u x 操作系统的文件系统经过多年的开发研究在整体上是完备的,没有大的系统漏洞。但它仍存在一些问题如:L i n u x 文件系统内核源程序中的部分代码存在冗余现象;文件系统中还有许多功能尚待扩充;部分功能在数据结构中已

20、提供定义,但并末实现。除此之外还有大量的工作如:文件系统中的缓冲区的流程;可执行文件的格式和实现的方法;系统调用函数及操作系统中进程管理、内存管理、设备管理的内核源程序;网络安全性;支持多处理器等功能的扩展;操作界面更加友好等都待进一步完善。深入地对L i n u x 核心源代码进行分析将有利于L i n u x 的研究、探索、推广和普及。参考文献l 胡晓喇王强L i n u x 接心源代码分析 M 北京;人民邮电出版社2 0 0 0 5 0 1 0 02D a v i dP i t b R e d h a t L i n u x 大全 M 北京一电子工业出版社1 9 9 8 2 3 4 33A I-d 卿T a n e n b a u m 攮作系统设计与宴瑰 M 北京;清华大学出版杜1 9 9 7 3 0 5 5万方数据万方数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com