已阅读5页,还剩58页未读, 继续免费阅读
(计算机系统结构专业论文)linux文件系统应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 对于特定的应用系统,为完成某些特殊功能如文件加密、文件压绵以及文件保护等功能, 既可以采用编制特定应用程序的方式,也可以在操作系统层而进行修改或建立新的文件系统 方式来实现。 如果采用以应用程序在用户层面来解决如上所举例的问题,有一些明显的缺点:首先, 对用户不透明,用户需要掌握相关的应用程序来完成任务;其次程序问的配合交百性不好, 对于几个应用程序来说,利用文件交换数据将非常复杂;另外对外部很难制定统一的标准 接口,升级与扩展将影响到应用系统的其他方方而面。 而在操作系统层面来解决特定问题,则有很多好处:首先,由于在系统底层完成相应功 能,上层的应片j 程序调用的系统接口没有发生任何变化,这样就丈现了对用户透明,并且原 有的应用程序不需要进行任何变化就可以利用系统底层改变带来的好处;其次,只要遵循操 作系统的系统调用接v i 不变,可以在其他任何条件f 进行功能扩展和升级,不需要担心造成 上层应用程序无法使用;而且,对于一个复杂的大型系统来说,将部分普遍使用的关键功能 转移到系统底层来实现,可以大大简化系统设计的复杂度,并降低开发维护成本。 本文以多用户层叠文件系统( n e c f s ) 和目标压缩文件系统( t c f s ) 的设计实现为例, 介绍在l i n u x 系统中修改和建立文件系统的方法,并给出性能测试数据,来证明在系统底层 文件系统层次米解决特定的实际应用问题,要优越于在应用层次来实现。 关键词:l i n u x ,v f s ,文件系统,层叠文什系统,压缩文什系统 a b s t r a c t f o rs o m es p e c i a la p p l k ds y s t e m ,s u c ha sf i l ee n c r y p t i o ns y s t e m ,f i l ec o m p r e s s i o ns y s t e ma n d f i l ep r o t e c t i o ns y s t e m ,c a nb ei m p l e m e n t e da ta p p l i c a t i o nl a y e ra l s oc a nb ei m p l e m e n t e da to s l a y e l i fi ti m p l e m e n t e da ta p p l i c a t i o nl a y e r , o b v i o u s l yh a ss o m ed i s a d v a n t a g e s :t h s t ,i ti sn o t t r a n s p a r e n tt oo t h e ru s e ra p p l i c a t i o n ,u s e rn e e dt oh a n d l er e l a t e dt a s kh a n d l y ;s e c o n d ,i ti n v o l v e s m o r ec o m m u n i c a t i o ne f f o r tb e t w e e na p p l i c a t i o n s ,m a k e sd a t ae x c h a n g em o r ec o m p l i c a t e d ;f i n a l l y , i tc a nh a r d l ye s t a b l i s has t a n d a r di n t e r f a c eb e t w e e na p p l i c a t i o nm o d u l e s w h i c ha f f e c tm a n ym o r e d i f f i c u l t i e so ns y s t e me x t e n s i o na n du p g r a d e b u ti fb r i n gt h e s ep r o b l e m si n t oo sl a y e r , i tw i l lc o m eu pw i t hs o m ea d v a n t a g e s :f i r s t ,i ti s t r a n s p a r e n tt ou s e r sb ym a i n t a i nt h ei n t e r f a c eb e t w e e ns y s t e mc a l la n da p p l i c a t i o n s ;s e c o n d , s y s t e me x t e n s i o na n du p g r a d eb e c o m em o r ee a s i l yb yk e e pt h es y s t e mc a l li n t e r f a c eu n m o d i f i e d ; a n dm o r eo v e rac o m p l i c a t e ds y s t e m ,p u t t i n gs o m ek e yf u n c t i o n a l i t i e si n t oo sl a y e rm a k e si t p o s s i b l e t or e d u c et h eo v e r a l is y s t e me o m p l e x i t y , w h i c hl e a dt oal o w e rd e v e l o p m e n ta n d m a i n t e n a n o ec o s t s t h i st h e s i sp r o v e dt h a ti ti sb e t t e rt oi m p l e m e n ta p p l i c a t i o ni no sl a y e rf o rs p e c i a lp r o b l e m b ye x a m p l e so f i m p l e m e n t a t i o n o f a m u l t i - u s e r m u l t i - l a y e r f i l es y s t e m a n da t a r g e tc o m p r e s s e d f i l e s y s t e m ,a n da l s op r o v i d e dp e r f o r m a n c ed a t at os u p p o r tt h i s k e y w o r d s :l i n u x ,v f s ,f i l es y s t e m ,o v e r l a yf i l e s y s t e m ,c o m p r e s s e df i l e s y s t e m 2 第一章绪论 1 1 背景及意义 l i n u x 自1 9 9 1 年诞生至今,以其稳定、高教、源码开放和广泛支持而在研究和商业上 得到大量的推广和应用。在服务器领域,l i n u x 系统的市场占有率已经颇具规模;而在桌面 系统当中,l i n u x 也逐渐占有一席之地:值得一提的是,在嵌入式领域,嵌入式l i n u x 以及 其变体正逐渐发展,在越来越广泛的嵌入式实时或非实时的系统中发挥着至关重要的作用。 l i n u x 操作系统同任何其他商业操作系统一样,有着完整的内存管理,进程管理,存储 器管理等重要模块。由于l i n u x 是源代码开放的操作系统,使得开发者可以在了解内核运行 机制的基础上,方便的对系统进行修改或定制,甚至可以编写核心代码实现如执行特定进程 选择算法的进程调度器,或者是针对某个应用的更高效的内存分配管理器,亦或是针对超大 文件或者媒体文件进行存储优化的特殊分布式文件系统。 本文着重介绍l i n u x 文件系统方面的一些研发工作,利用l i n u x 操作系统提供的基础结 构和设施,在v f s ( 虚拟文件系统) 架构上对l i n u x 的文件系统进行特定的应用开发,来解 决一些特定需求的问题。 1 2 问题解决方案与开发模型讨论 一般来说,对于问题的解决方案大体上可以分为三种:1 ) 在应用程序层面解决相关问 题,利用操作系统提供的系统调用接口作为最底层实现基础;2 ) 在操作系统层面解决相关 问题,以操作系统内部各个模块接口为最底层实现基础;3 ) 将问题进行抽象,提取出基本 接口放到操作系统层进行实现,对外提供一致的系统调用接口,其他功能模块利用应用程序 解决。 对于大部分问题来说,编制特定的应用程序已经能够完成要求,将问题完满解决,但对 于一些特定的问题,采用后两种方案更能够简化系统复杂程度,降低开发维护的成本。咀开 发版本控制系统为例,对于完全从应用层面进行模块划分设计的一种可行方案如下图所示: 匪圃 图1 1 应用层实现方案 所有问题在应用层进行解决,用户权限与文件、目录的版本信息都需要应用程序自己进 行解决,系统的结构相对复杂。 4 蓦一 而采用在系统层面进行解决的一个可能的方案如下图所示 图1 2 系统层实现方案 只要在操作系统的文件系统层创建个支持多用户的重叠文件系统,在文件系统中直接 处理文件与目录的版本信息,然后利用操作系统本身提供的用户帐户管理策略功能可以实现 上述问题描述的功能。 从以上的讨论中可以看出,对于一些特定的问题,经过分析最大限度的利用操作系统已 有的功能,在操作系统内部层面上进行解决,是简化系统设计开发复杂度的一个非常有力的 方法。 1 3 特定问题提出 1 3 1 文件保护 在一些应用系统当中,需要对重要的系统文件进行保护同时又允许用户对该文件进行 虚拟的修改,并且还可能要求每个用户制对同一份文件有着不同的视图。在成熟的版本控制 系统中这些是很常见的基本要求。 以版本控制系统为例,既可以采用在用户态程序中记录跟踪用户文件操作的方法来实现 以上功能要求,也可以利用多用户重叠文件系统来达到相同的目的。如果采用用户程序方案, 需要维护大量的用户信息,并在跟踪用户操作过程中需要进行准确的文件操作记录,并对文 件的访问控制需要相应的模块来实现;而如果采用在文件系统层次来实现,则可以利用文件 系统已有的访问控制机制,用户只要使用原有的应用程序即可。 1 3 2 文件系统效率 所谓文件系统的效率包括空间利用率与文件系统读写速度这两个方面。在嵌入式系统当 中,往往采用压缩文件系统来提高存储器空问使用效率,但是针对数据流速度要求比较高的 应用,如视频播放等,由于c p u 速度的限制,在实时解压数据文件并进行解码播放过程中 会出现停顿抖动、声音视频不同步等现象。为了在空间利用率与实时性能之间得到一个良好 的平衡,提出目标压缩文件系统的概念,即对特定的文件不进行压缩处理,这样在读取的时 候也不需要进行解压缩;而同时对其他文件进行压缩,节省存储空间。 采用目标压缩文件系统,用户不必干预哪些文件进行了压缩,而解压过程也不需要用户 进行处理,由文件系统自动的完成;而如果利用应用程序来解决该问题,用户不但需要手动 的进行压缩处理,同时在使用文件的时候。必须手动的进行解压缩,十分的不方便。 1 4 论文主要内容 本篇论文以l i n u x 文件系统融用为核心主题,通过介绍l i n u x 文件系统的相关概念,实 现手段等内容,并结合2 个文件系统多用户层叠文件系统和目标压缩文件系统的实 现展现在l i n u x 系统下利用文件系统实现特定功能的能力,并给出实际的测试数据,束证 明在系统底层解决实际问题在软件一致性和软件性能上的优越性,最终进行简单总结;对于 一些特定的问题在系统层面进行开发解决比较合适。 论文的内容组织如下: 奉章( 第一举) 主要介绍本篇论文的主趣和内容纲要,提出了需要解决的特定问题; 第二章对背景知识进行介绍,包括l i n u x 文件系统的实现原理,l h m x 文件系统的 简单分类等等: 第三章介绍了两个特殊的文件系统:层叠文件系统概念与压缩文件系统的相关知 识; 第四章案例l :利用增强的层叠文件系统进行文件保护。介绍原理以及实现,并 给出测试数据; 第五章案例2 :利用修改的压缩文件系统进行文件保护。介绍原理以及实现,井 给出测试数据 第六章总结:做简要概括 第六章总结:做简要概括。 6 第二章背景知识 2 1l i n u x 文件系统基本概念 l i n u x 中用户能看到的文件空间是一个单树状结构的,该树的根在顶部,称为根目录 ( r o o t ) ,用“”表示。文件空间中的各种目录和文件从树根向下分支。 对用户而占,该目录树就象一个无缝的整体,用户能看见的是紧密联系的目录和文件。 实际上,文件树中的许多目录存放在一个磁盘、不同磁盘甚至不同的计算机的不同分区中。 当磁盘分区之一被“m o u n t ”到文件树中称为“安装点”( m o u n tp o i n t ) 的目录上时,就成为 了该目录树的一个组成部分。 圈 图2 1l i n u x 文件系统示意图1 例如;当w i n d o w s 中的c :盘( 假定为f a t 3 2 文件系统) 未被安装时,l i n u x 文件系统中 的m n t w i n c 目录是根文件系统中的一个普通子目录( 格式可能是l i u u xe x t 2 3 ) ,里面可 以为空或存放任何数据。而w i n d o w s 上f a t 3 2 格式的c 盘卜的数据独:于l i n u x 系统,不 能被l i n u x 系统所读取。咀超级用户身份执行m o u n i - tv f a td e v h d a l m n t w i a c 命令后,就将w i n d o w s 操作系统下的c 盘安装( m o u n t ) 到安装点m n t w i n c 上了,安装点原来的的数据就被f a t 3 2 文件系统所屏蔽,用户就可以看到w i n d o w s 系统下 c 盘f a t 3 2 文件系统中的数据,只有将该文件系统卸载之后,m n t w i n c 中原有的数据才会 出现,建不会丢失。 7 国国 uu 圈罡凰 图2 2l i n u x 文件系统示意图2 l i n u x 正是通过这种将不同文件系统装配在一起的技术,实现了文件系统之间的无缝连 接,为用户的操作提供了极大的方便,用户也不用费心思去考虑光盘驱动器的盘符是什么了。 l i n u x 系统启动时,必首先装入“根”文件系统,然后根据e w f s t a b 中的设置,逐个建 立文件系统。此外用户也可以通过m o u n t 、u m o u n t 操作,随时安装和卸载文件系统。 当装入一个文件系统时,应首先向系统核心注册该系统及其类型。当卸载一个文件系统 时,应向核心申请注销该系统和类型。文件系统的注册和注销反映在以v f s m n l i s t 为链头, v f s m n t a i l 为链尾,以v f s m o u n t 为节点的单向链表中。从链表的每一个v f s m o u n t 节点可以找 出一个已注册的文件系统的信息。文件系统类型的注册和注销反映在以f i l es y s t e m s 为链头, 以f i l es y s t e m为节点的单向链袭中。链表中的每一个节点描述了一个_type f i l e _ s y s t e m - t y p e 已注册的文件系统类型。 2 2l i n u x 文件系统分类 文件系统大体j = = 可以分为基于磁盘的文件系统、基于网络的文件系统以及其它一些特殊 用途的文件系统等。 2 2 1 磁盘文件系统 文件系统针对的是直接或者间接连接到计算机的存储设备,负责管理这些设备中的可用 存储空间。某些磁盘文件系统还具有日志或者版本控制的功能,常见的磁盘文件系统有: l i n u x 使用的文件系统,比如广泛使用的e x t 2 文件系统( s e c o n de x t e n d e d i l l e s y s t e m ) ,e x t 3 文件系统( t h i r de x t e n d e df i l e s y s t c m ) ,还有r e i s e r 文件系统等。 u n i x 家族的文件系统,比如s y s v 文件系统、m i n 文件系统、b s d 的f f s ( f a s t f i l es y s t e m ) 、u f s ( u n i xf i l es y s t e m ) 等 微软的v f a t 、n t f s 等文件系统 i s 0 9 6 6 0c d - r o m 文件系统、u d f ( u n i v e r s a ld i s kf o r m a t ) 的d v d 文件系统 其它的诸如i b m 的j f s 、s g i 的x f s 等文件系统 2 2 2 网络文件系统 网络文件系统也称作分布式文件系统,它通过网络管理和访问文件,可以为潜在的众多 访问用户服务。在理想状况下,访问一个网络文件系统对每个访问用户来说都是透明的( 就 如同访问本机的磁盘文件系统一样) 。一些著名的网络文件系统有: n f s ( n e t w o r kf i l es y s t e m ) ,最早由s u n 公司开发的一套协议,目前的最新版本 是v e r s i o n4 ,在u n i x 世界应用最广泛的网络文件系统 s m b ( s e r v e rm e s s a g eb l o c k ) , 用在m i c r o s o f t 的w i n d o w s 操作系统和i b m 的 o s 2 操作系统上,进行共享文件、打印机的文件系统 c o d a 由c a r n e g i em e l l o nu n i v e r s i t y 开发的一个分布式文件系统 g f s ( g l o b a lf i l es y s t e m ) 是一个共享存储的、支持日志功能的分布式文件系统, 目前主要由r e dh a t 公司进行开发和管理 2 2 3 数据库文件系统 基于数据库的文件系统是文件系统设计的新兴领域,它不采用传统的层次结构的文件系 统组织模式,所有的文件都被赋予一定的特征,比如文件的类型、文件的话题、文件的作者 以及其他一些类似的元数据。对于文件的查找就转换为s q l 查询语句或者自然语言搜索。 这类文件系统的代表是g n o m es t o r a g e 和m i c r o s o f t 将在w i n d o w sl o n g h o r n 中使用的 w i n f s 文件系统。 2 2 4 特殊文件系统 特殊文件系统并h i 管理磁盘空间( 无论是磁盘的还是在网络上的) ,它们在u n i x 操作 系统上大量使用。这些文件系统通常由系统内核或者应用程序动态管理,以达到反映系统运 行状况、进行进程间通讯、获取临时文件空间等目的。常见的这类特殊文件系统有:p m c 文件系统、t m p f s 文件系统、d e v f s 文件系统、r o o t f s 文件系统等。 2 3l i n u x 文件系统结构 一个文件系统包括其非运行状态下的存储在磁盘上的元数据及文件目录等,同时也包括 在运行时刻操作系统为管理并操作文件系统所必须构建的数据结构。对于非运行状态下元数 据的存储安捧,文件与目录等数据的存储设计,可以称之为文件系统的物理结构;而运行时 9 刻操作系统在内存中构造的映射文件系统物理结构并提供给操作系统管理接口的部分,称之 为逻辑结构。 2 3 1 物理结构 所谓文件系统的物理结构,也即f i l e s y s t e mp h y s i c a ll a y o u t 是根据不同的文件系统而各不 相同的,在深入理解一个文件系统,或者重新设计一个文件系统的过程中,首先应根据文件 系统自身的特点来设计文件系统的物理结构。 真正实现一个新的文件系统时,在进入到编码测试阶段,首先就需要编写一个格式化程 序,将初始的磁盘分区按照文件系统的物理结构进行初始化,然后才能进行以后的m o u n t 、 r e a d 、w r i t e 和u n l i n k 等测试。在l i n u x 系统中。这个格式化程序往往以r a k x x f a 来命名。 e x t 2 文件系统的物理存储结构是多级树状结构而r e i z e r f s 文件系统的物理存储结构则 是一个平衡树结构,造成这种区别的原因在于文件系统设计的不同,这种不同必然体现在文 件系统的物理结构上。 2 3 2 逻辑结构 所谓文件系统的逻辑结构,即将文件系统物理结构的内容映射到内存数据结构当中,并 咀一定的规则进行访问。 在l i n u x 操作系统中,为支持多种文件系统,并保持接口韵一致性,通过引入v f s 层 来对文件系统逻辑结构的组织与访问接口进行统一。不同的文件系统町以有不同的物理结 构,但无论是怎样的物理结构,最终一定要映射成为v f s 子系统中的s u p e r 、i n o d e 、d e n t t y 等数据结构。 2 4l i n u x 文件系统实现原理 l i n u x 支持众多的文件系统,以及支撑这些文件系统的存储设备。在l i n u x 系统中,支 撑文件系统的底层设备由块设备驱动层进行抽象,而多种类型的文件系统则统一通过v f s 层进行管理。整体结构如下图所示: 曰日园 日日囤 图2 3l i n u x 文件系统实现层次 1 0 2 4 1 块设备驱动 块设备驱动层为v f s 层提供了基础而重要的功能,包括一致的访问界面、预读支持以 及缓存策略等。对于文件系统常用的块设备主要有磁盘块设备,闪存块设备等。 2 3 1 1 磁盘块设各 磁盘块设备是l i n u x 系统中最常用的块设备。磁盘块设备驱动中一般包括了磁盘控制器 驱动以及相关的总线传输协议驱动。 磁盘块设备的特点是利用磁头读写盘片数据,因此最好能将数据存储在相邻的地方以方 便读写,降低时间提高效率。文件系统在设计阶段就要考虑到这个特点,来尽量降低磁头的 寻道时间。 2 3 1 2 闪存块设备 提到基于闪存的文件系统,则不能不提到m t d 。与传统的磁盘设备不同,闪存的读写 操作有很多不同,为了让磁盘文件系统能够在闪存设备上使用,一个很自然的作法就是将闪 存设备“模拟”成为一个昔通的块设备,而m t d 则实现了这一功能。 在l i n u x 系统中编译并加载配置好m t d 相关驱动模块后,我们就可以如同操作普通块 设备一样利用m k f s x x x 来创建一个文件系统。 2 3 1 3 其他块设备 u s b 设备更类似于一种闪存设备,不同的是u s b 设备通过主机上的u s b 控制器传输 数据。m a s s - s t o r a g eu s b 设备在l i n u x 系统中以块设备的形式操作,因此我们可以对u s b 存储设备进行格式化并创建文件系统。 2 4 2v f s v f s 是物理文件系统与服务之问的一个接口层,l i n u x 系统中的用户可以不必知道数据 在文件系统中如何存储、可以不依赖具体的文件系统类型丽实现对文件的访问,这就要求操 作系统要对文件系统作较高级别的抽象。l i n u x 的v f s ( v i r t u a l f i l e s y s t e m 一- 虚拟文件系统) 为用户程序提供了一个统一的、抽象的、虚拟的文件系统界面,这个抽象的界面主要由一组 标准的、抽象的文件操作构成,以系统调用的形式提供给用户程序。这样,用户程序就可以 把所有的文件都看作一致的、抽象的v f s 文件,通过系统调用对文件进行操作,而无需关 心该文件属于哪一类文件系统以及该文件系统是如何设计和实现的。我们可以将v f s 看作 是处理通用任务的软件层,当v f s 接收到用户的系统调用时,便将调用传递给下面的依赖 于特定文件类型的具体软件层,下图显示了通用v f s 层和特定文件系统软件层之间的关系。 臌问阿函订臻禳戮慧爹浆隰 。一一,一。一一! : 记录可用的文件系统的类型 将设备同对应的文件系统联系起来 处理一些面向文件的通用操作 涉及到针对文件系统的操作时,v f s 把它们映射到与控制文件、目录、以及i n o d e 相关的物理文件系统。 2 3 2 1 超级块对象及其操作( s u p e rb l o c k o p e r a t i o n s ) 超级块对象由s u p e rb l o c k 结构组成,其中的主要字段有: s t r u c t s u p e rb l o c k s t r u c t1 i s th e a d sl i s t ;指向超级块链表的指针+ k d e vtsd e v ;,设备标识符, u n s i g n e dl o n g sb l o c k s i z e ;严以字节为单位的块小+ , u n s i g n e dc h a r sb l o e k s i z eb i t s ;* 以位为单位的块大小, u n s i g n e dc h a r sd i r t ;,修改( 脏) 标志+ u n s i g n e dl o n gl o n gs _ m a x b y t e s ; ,文件的最大长度+ s t m c tf i l es y s t e m 盟n e s ,文件系统类型,_ t y p e ; s t r u c ts u p e ro p e r a t i o n s + so p ; ,超级块操作函数指针+ s t r u c td q u o to p e r a t i o n sd qo p ;,磁盘限额函数指针, g 女q 逝l lq p _struct s _ q c o p ; u n s i g n e dl o n gs _ f l a g s ; 严安装标志+ , u n s i g n e dl o n gs _ m a g i c ; ,文件系统的魔数+ s t r u c td e n t r xsr o o t ;严安装目录的目录项对象, s t r u c tr ws e m a p h o r esu m o u n t ;产卸载所用的信号量+ s t r u c ts e m a p h o r e sl o c k ;+ 超级块信号量+ , i n tsc o u n t ;产引用记数+ a t o m i ct sa c t i v e ;p 次级引用记数+ 1 2 ) u ; s t r u c t ! i 鞋b a 4 s t r u c tl i s th e a d s n u c tl i s th e a d s t r e e t b l o ,c k d e v i 、c e s t r u c tl i s th e a d s t r u c tg 女q 纽i n ! j u n i o n s _ d i r t y ;严己修改索引节点的链接表+ s _ l o c k e di o o d e s ;,涉及f o 的索引节点链接表 s t i l e s ; 严分配给超级块的文件对象的链接表+ , + s _ b d e v ;,指向块设备驱动程序描述符的指针+ , s _ i n s t a n c e s ;指向给定文件系统类型的超级块对象 的链接表 sd q u o t ; 磁盘限额选项+ s t r u c t 丑! n i 5 bi 旦! i s t r u c t e x t 2 ,s 。b i n 一f o s t r u c te x t 3 ,s b ,i n f o s t m o t h e 鱼出i n 鱼 s t x u c t 丑照也鱼 s t r u c t m s d o s ,s b ,i n f o s l x u c ti s q 垒出i n 鱼 s t r u c t n 垒出i 地 m i n i xs b ; e x t 2s b ; e x t 3 _ s b ; h p f s _ s b ; m f s _ s b ; m s d o ss b i s o f ss b ; n f ss b : ,具体文件系统信息 s t r u c t 墨呈璺型也噬sv f sr e n a m es e m ; s t r u c ts e m a p _ _ h 噬s _ n f s d _ f i e e _ p a t h _ s e m ; ; 所有的超级块对象都以双向循环链表的形式链接在一起,链表的第一个元素用 s u p e r _ b l o c k s 变量来表示,而超级块对象的s j i s t 字段存放指向链接表摺邻元素的指针。联 合体字段u 包含具体文件系统的超级块信息。 超级块对象的操作( s u p e r b l o c ko p e r a t i o n ) 是由数据结构s u p e r _ o p e r a t i o n s 来描述的,该结 构的地址存放在超级块结构的指针so p 中。每个具体的文件系统都可以定义自己的超级块 操作。下面简要介绍一下超级块操作。 s t r u c ts u p e ro p e r a t i o n sl s t r u c ti n o d e * ( * a l l o c 心s t r u c as u d e rb l o c k + s b ) : v o i d ( + d e s t r o yi n o d e x s t r u c ti n o d _ _ _ g e + ) ; v o i d ( + r e a d _ i n o d e ) ( s t r e e ti n o d e ) ; v o i d ( r e a d _ i n o d e 2 ) ( s t r u c ti n o d e + ,v o i d + ) ; v o i d ( d i r t y i n o d e ) ( s t r u c ti n o d _ _ _ e e + ) ; v o i d ( + w r i t e i n o d e ) ( s t r e e ti 燃,i n t ) ; v o i d ( * p u t _ i n o d e ) ( s t r u ai n o d e + ) ; v o i d ( d e l e t e _ i n o d e ) ( s t r u c ti 壁立盘) ; v o i d ( + 壁煎丛牮曼 ( s t r u c t 丛p 曼坠! q 坌k ) ; v o i d ( + w r i t es u p e r ) ( s t r u c ts u p e rb l o c k ) ; h a t ( + s y n e _ f s ) ( s t r u c ts u p e rb l o c k + ) ; v o i d ( w r i t es u p e r _ l o c k f s ) ( s t r u c ts u p e rb l o c k ) ; v o i d ( * u n l o c k f s ) ( s t r u c ts u p e rb l o c k + ) ; i n t ( 塑! 鱼) ( s 仇l c t 蛆丛b ! q 然+ ,s t r u c t 世i + ) ; i n t ( r e m o u n t _ f s ) ( s 仃u c ts u p e rb l o c k ,i n t + ,c h a r ) ; v o i d ( + l i n q d ) ( s t r u c ti n o d e x v o i d ( + u m o u n t b e g i n ) ( s t r u c ts u p e rb l o c k + ) ; s t r u c td e n t 聪+ ( + l ht o _ d c n t r y ) ( s 们c ts u p e r _ b l o c k + s b ,+ 鱼,i n t 蛔,i n tt h t y p e , h a tp a r e n t ) ; i n t ( d e n t r y _ t o _ t h ) ( s t r u c t 盘n 蜮+ ,旦丝+ 鱼,i n t l e n p ,i n tn e e d j o a r e n t ) ; i n t ( + s h o wo p t i o n s ) ( s t r u c ts g ! i l + ,s t r u c t v f s m o u n t + ) ; ; 其中: r e a d _ i n o d e ( i n o d e ) 用来填写索引节点对象中的字段,索引节点对象的地址作为参数从磁盘上传递。 d i n y i n o d e ( i n o d e ) 当索引节点标记为修改( 脏) 时调用。对于象e x t 3 这样的磁盘文件系统用它来 更新磁盘上的文件系统日志。 w r i t ei n o d e ( i n o d e ,i n t ) 通过传递参数指定的索引节点对象的内容来更新一个文件系统的索引节点。i n t 参数表 示i 0 操作是否应当同步。 p u t - i n o d e ( i n o d e ) 释放指定的索引节点对象,但释放一个对象并不意味着释放内存,因为其他进程可能 仍然在使用这个对象。 d e l e t e _ i n o d e ( i n o d e ) 删除包含文件、磁盘索引节点及v f s 索引节点的数据块。 p u ts u p e r ( s u p e r _ b l o c k ) 当相应的文件系统被卸载时,释放参数指定的超级块对象。 w r i t e _ s u p e r ( s u p e r _ b l o c k ) 用指定对象的内容更新文件系统的超级块。 w r i t e _ s u p e r _ l o c k f s ( s u p e r _ b l o c k ) 阻止对文件系统的修改进行更新,并用指定对象的内容更新超级块。该函数由l v m 驱 动程序调用,目前还没有使用。 t m l o c k f s ( s u p e 0 取消由w r i t e _ s u p e r _ l o c k f s ( s u p e r ) i 委数对文件系统更新的阻止。 s t a t f s ( s u p e r b l o c k ,s t a f f s ) 返回文件系统的统计信息。 1 4 r e m o u n t _ f s ( s u p e r _ b l o c k ,i n t ,c h a r ) 用新选项重新安装文件系统。 c l e a r _ i n o d e ( i n o d e ) 与p u t _ i n o d e 类似,但释放索引节点所对应的文件占用的所有页。 s h o w _ o p t i o n s ( s e q _ f i l e ,v f s m o u n t ) 用来显示具体文件系统特定的选项。 2 3 2 2 索引节点及其操作( i n o d e & o p e r a t i o n s ) 文件系统处理文件所需的所有信息都放在索引节点这一数据结构中。对一个文件来说, 文件名可以随时更改,但相应的索引节点是唯一的,并且随文件的存在而存在。内存中的索 引节点对象都会复制磁盘上索引节点包含的一些数据。 s t r u e ti n o d _ _ 理e s t r u c t ! 鲢h 鲤i _ h a s h ;p 散列链接表的指针+ s t r e e t ! 熊h i a 4 i l i s t ;索引节点链接表的指针+ s t r u c tl i 塾b 烈 i _ d e n t r y ;p 目录项链接表的指针 s t r e e t ! 地b a d id i r t yb u f f e r s # 修改过的缓冲区链接表的指针, s t r u c tl j 匹b 鲤 id i r t y _ d a t a _ b u f f e r s ;* 修改过的数据缓冲区链接 表的指针t u n s i g n e dl o n g a t o m i ct k d e vt u m o c l et u n s i g n e dl o t u i dt g 熊_ 主 k d e vt l o f f t t i m et t i m et t i m et u n s i g n e di n t u n s i g n e dl o n g u n s i g n e dl o n g u n s i g n e dl o n g u n s i g n e ds h o r t s t r e e ts e m a p h o r e s t r u c tr w s e m a p h o r e s t r u c ts 地p b q 丝 i i n o ; p 索引节点号+ ic o u n t ; ,引用记数+ i _ d e v ;,设备标识符+ im o d e ; 严文件类型与访问权限+ i n l i n k ; ,+ 硬链接数目+ i u i d ;,+ 所有者标识符+ i _ g i d ;,章组标识符+ , ir d e v ; ,实设备标识符+ i s i z e ;,文件的字节数+ i _ a t i m e ;,上次访问文件的时间+ , im t i m e ; p 上次写文件的时问+ i _ c t i m e ; ,上次修改索引节点的时间+ ib l k b i t s ; ,+ 块的位数+ , ib l k s i z e ;+ 块的字节数+ i b l o c k s ; ,+ 文件的块数+ i y e r s i o n ; + 版本g - * i _ b y t e s ; i s e r e ;严索引节点信号量+ i _ a l l o c _ s e m ; iz o m b i e ; p 删除或更名索引节点时的次索引节点 信号量 s t r u c ti n o d eo p e r a t i o n s + l o p ; 牛索引节点的操作+ s l t u c tf i l eo p e r a t i o n s i _ f o p ; p 缺警文_ 绛操辑挣, s t r u c ts u p e rb l o c k + i _ s b ;p 索引节点所属的超级块+ , 塑g 畦g 坠丛量h 鲤!i _ w a i t ; 严索引节点的等待队列 s t r u e tf i l e l o c _ _ _ k k+ i _ f l o c k ; 指向文件锁链接表的指针+ s t r u e ta d d r e s s s p a c e + i _ m a p p i n g ;,指向地址空问对象的指针, s t t u c ta d d r e s ss p a c e l 垂g 鱼; p 用于块设备文件的地址空间对象+ s t r u e t 亟l 丛匹+ i _ d q u o t 【醚嚣q ! ! q 王翻;p 索引节点磁盘限额 s t r u e t ! 选b 烈 i _ d e v i e e s ;p 块设备文件索引节点的链接表的指针 s t r u c tp i p ei n o d ei n f o + i j i p e ; ,如果是管道情况时使用+ s t r u c t b l o c k d e v i c e+ i _ b d e v ; ,+ 块设备驱动程序的指针+ , stmctchard e v i c e + i _ e d e v ;,字符设备驱动程序的指针+ u n s i g n e dl o n g 、童蟠y j 吣p8 录通知事孛 的位撼码, s t r u c t d n o t i f ys t r u c t i d n o t i f y ; 严精于譬录事件 u n s i g n e dl o n g i s t a t e ; ,索引节点的状态标志+ , u n s i g n e di n t i f l a g s ; p 文件系统的安装标志, u n s i g n e dc h a r is o c k ;如果文件是一个套接字时( 非0 ) 使用+ , 堑q 也i li _ w r i t e c o u n t ;+ 用于写进程的引用记数+ u n s i g n e di n ti _ a t t r _ f l a g s ;严文件创建标志+ , u 1 2 2 i g e n e r a t i o n ; p 索引节点版本号( 某些文件系统 使用) + , u n i o nf 产具体文件系统信息+ s t r u c tm i n i xi n o n em i o s t r u e te x t 2i n o d ei n f o s t r u e te x t 3i n o d ei n f o s t r u c th p f si n o d ei n f o s t r u c tn t i si n o d ei n i o s t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐东县中级注册安全工程师职业资格考试(安全生产法律法规)练习题及答案(2026年)
- 兵团2025年通信工程师考试高、中级(通信专业实务传输与接入)题库及答案
- 中国精算师职业资格考试(准精算师精算数学)复习题库及答案(吉林2026年)
- 海南省琼中县海港引航员适任考试(船舶操纵)备考题库含答案(2026年)
- 红牛杯花式羽毛球精英赛策划方案
- 机械设计试题及答案第九章蜗杆传动
- 营销模式分析模板
- 人教精通版英语六年级上册期中巩固训练(含听力原文含答案)
- 无机推断题课件
- 心力衰竭的监测及护理
- 塔吊司索工考试题库及答案2026
- 2026人教版五年级数学上册第五单元第1课《用字母表示数量关系》课件
- 2026年滴滴出行司机管理岗竞聘模拟题
- 2026年远程客服兼职合同协议
- 梦幻交易账号合同
- 妇产科操作院前急救流程规范化与转运风险防控
- 路基施工安全教育
- 2025年中国建设银行小微企业借款合同范本
- 中医康复演讲稿范文
- 消防安装工程监理细则范文
- 无锡二手房买卖合同
评论
0/150
提交评论