




已阅读5页,还剩68页未读, 继续免费阅读
(计算机应用技术专业论文)基于数据库的一个文件系统的移植.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
培于数据库的一个文件系统的移植摘要 摘要 本文介绍了将一个基于数据库的文件系统移植到l i n u x 操作系统上 的设计与实现,该方案在不改变传统文件系统的命令访问接口和应用程 序接口基础上,使用兼容p o s i x 标准的接口,为移植后的文件系统提供 了更多、功能更强的文件系统访问接口,并支持区域访问。 论文首先给出了课题背景和意义,并简要叙述了文件系统、基于数 据库的文件系统和课题涉及的相关技术。在此基础上,通过分析研究 l i n u x 虚拟文件系统v f s 的功能、实现和典型的区域访问方案网络文件 系统n f s ,使用c o r b a 分布式对象访问技术,将基于数据库的文件系 统( o r a c l e9 i f s ) 移植到l i n u x 虚拟文件系统下,并给出了几组体现新文 件系统优势的访问接口。本文详细讨论了相关实现细节,为了体现移植 后的新文件系统功能,文章最后给出了一些使用命令接口访问移植后的 文件系统的实例。 关键字:基于数据库的文件系统、v f s 、c o r b a 、移植、p o s i x 标准 作者:张步忠 指导老师:吕强 垒! 塑! !里! 堕! ! g ! ! ! ! ! ! ! ! ! ! 翌壁! ! 盟! ! 里! ! ! ! ! 些 p o r t i n gaf i l es y s t e mb a s e d o l ld a t a b a s e a b s t r a c t t h i sp a p e ri n t r o d u c e sh o wt op o r taf i l es y s t e mb a s e do nd a t a b a s et o l i n u xo p e r a t i n gs y s t e m ,i n c l u d i n gi t sd e s i g na n di m p l e m e n t a t i o n k e e p i n g c o m p a t i b l ew i t ht h ec o n v e n t i o n a lf i l es y s t e mi n t e r f a c e ,t h i ss o l u t i o ne n h a n c e d o u rn e wf i l es y s t e mw i t hs o m es e m a n t i cf e a t u r e sm a dr e g i o n a la c c e s si s s u p p o a e d t h i sp a p e rf i r s tb r i n g sf o r w a r dt h eb a c k g r o u n da n ds i g n i f i c a n c eo fo u r w o r k ,f o l l o w e db yt h ep r i n c i p l eo ff i l es y s t e m ,f i l es y s t e mb a s e do nd a t a b a s e a n do t h e r a s s o c i a t e d t e c h n i q u e s a f t e ra n a l y z i n g a n d s t u d y i n g t h e i m p l e m e n t a t i o n ,f u n c t i o no fl i n u xv f s ,t h er e p r e s e n t a t i v er e g i o n a la c c e s s f i l e s y s t e m ,n a m e l y ,n f sn e t w o r k f i l es y s t e m ,af i l es y s t e mb a s e do n d a t a b a s e ( o r a c l e9 i f s ) i sp o r t e dt ol i n u xv f sb yu s i n gc o r b at e c h n i q u e ,o n t h en f sf i l es y s t e m sf o u n d a t i o n s o m ee n h a n c e m e n t sw h i c hc a nf e a t u r ef i l e s y s t e mb a s e do nd bc h a r a c t e r i s t i c sa r eg i v e n l a s tp a r to ft h i sp a p e ri s t h e d e m o n s t r a t i o no ft h en e wp o r t e df i l es y s t e m k e y w o r d s :f i l es y s t e mb a s e do nd b ,v f s ,c o r b a ,m i g r a t i o n ,p o s i x s t a n d a r d i i w r i t t e nb yz h a n gb u - z h o n g s u p e r v i s e db yl vq i a n g y 7 8 1 6 1 1 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究t 作所 取得的成果。除文中已经注明引用的内容外,本论文不合其他个人或集体已经发表或 撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书而使用过的材 料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承 担本声明的法律责任。 研究生签名: ;丝垒s 日期:签丝 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、中国 社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文档,可以采 用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论 文的全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:燃日期: 导师签名:皿日期: 争、况 l 沈 堆于数据库的一个文件系统的移植第一章结论 1 1引言 第一章绪论 当今人类社会已进入信息时代,计算机已经成为人们管理信息的一 种重要手段。由于内存容量有限,且不能用来长期存储数据,在现代计 算机系统中,人们就将这些数据以文件的形式存放在辅助存储器中,在 需要时再调入内存,并由文件系统负责对文件的管理和提供给用户访问 的接口。 文件系统解决了数据以文件的形式存储、文件在存储介质上的管理 等超爨,怒久粕信息篱毽手段酶一大进步。其孛,应瘸簸广泛、影瞒最 深的是树状层次结构的文件系统,w i n d o w s 、u n i x 、l i n u x 等操作系统的 文件系统都是采用层次型结构。如最典型的u n i x 下的文件系统,文件内 容与文锌瘸链分舞存储,文传震性惩索弓| 节惑i n o d e 硌】存储,文锌名毒文 件属性分歼存储,对文件名进行索引,访问文件时用文件名作为访问入 日,使用文件名快速定位索引节点,有着“按名存取”、不同路径下的文 佟是许重名、易于共事、存储离效、管理物溪文锌方硬等优点,褥筠了 广泛应用: 但是几十年来,文件系统的文件存储方式、用户访问手段却点没 有太大变纯,提供绘波题程彦戆a p i 接瑟依l 瓣是o l i n 、r e a d w r i t e 、c l o s e 等f 1 6 】【i 。】。用户若要根据文件的内容等信息访问( 检索) 文件,则根据检 索条件,逐个目录文件线性查找。在设计层次型文件系统的年代,需要 管理窥将瑟管理麴是m b 、1 0 2 m b 瓣数据,这静策略蔻缀有效的。随着 硬件性能不断提高,存储容量也越来越大,人们存储的信息也更多,今 天,即使一个普通用户,其存储的数据都是以1 0 2 g b 计,这些访问接e 1 瞧疆蓝不缝满足援户鹃霉要,覆线蛙查我的散搴也有德提高。 针对传统文件系统的缺点,人们提出了许多改革方繁:d a v i d g i f f o r d 提出的语义文件系统在传统文件系统之上扩展功能的h a c p 】、s e d a r f ”, 擞骏握遗豹在文簿系统中鸯l 入索孳l 功能赡w i n f s 驻”,缝合数磊瘴技术的 基于数据库的一个文件系统的移植 o r a c l ei f s t l 】等。 1 2课题的内容与意义 基于数据库的文件系统( d a t a b a s e b a s e df i l es y s t e m ,d b f s ) 结合了文 件系统技术和数据库系统技术,在拥有传统文件系统的特性同时,扩展 出一些新的特性:文件内容、文件属性都以记录等形式存储在数据库中; 可扩充、自定义文件的属性;海量存储;更强的并发控制与协同控制的 能力;更多的访问手段等,极大的方便了用户的使用。 但是有着强大功能的基于数据库的文件系统与传统的文件系统之间 接口并不兼容。以典型的d b f so r a c l e9 i f s 【l 】【1 4 】为例,有两种访问方式可 以充分体现9 i f s 的强大功能,一种是通过浏览器访问,w e b 服务器再将 用户请求传达给文件服务器;另一种是9 i f s 提供的程序接口一一 s d k ( s o f l - w a r ed e v e l o p m e n tk i t ,s d k ) 开发包,但是j a v a 语言的开发包接 口是面向对象的。用户还可以通过n f s 等分布式文件系统访问9 i f s ,但 在这种方式下,只能把9 i f s 当成传统的文件系统一样访问,而不能使用 9 i f s 扩展出的更多功能。因此基于p o s i x 标准i s 的u n i x 类操作系统上, 操作系统提供的文件访问接口( 应用程序接口、命令接口) 与9 i f s 提供 的两种访问方式都不兼容,也就无法像使用其原有的文件系统一样充分 使用9 i f s 提供的功能。 本课题目在解决这兼容性的问题。在计算机行业中都有向下兼容的 摸镶,翔i n t e l 薪c p u 酶指令蠢下兼容,嚣为挞弃暴蠢翡一锈,按灏懿 架构设计代价太大。 本课题中,我们将一个现有的d b f s 移植到源代码开放的g n ul i n u x 麓v f s - f ,使褥: 1 、用户访问移植厢的文件系统如同访问l i n u x 原有的文件系统一般, 用户完全感受不到其中的差别。 2 、薪懿文件系统1 2 f s 提供给耀户麴聪考访凌接嗣都蹩潦自操俸系统 层,以系统调用的形式提供给应用程序,基于l i n u x 已有的系统调用接 口,并兼容p o s i x 标准。 精于数据库的一个文件系统的移植 第一章绪论 3 、扩展v f s 的用户接口,将d b f s 支持的新增功能的a p i 接口提 供给应用程序,如基于内容分类、关联访问、基于内容的访问、新的文 件组织形式、版本控制等。 4 、兼容原有的文件系统应用程序接口、命令接口,原有的应用程序、 用户命令无需修改就可运行。 5 、在v f s 层次上的应用程序可以透明地访问基于数据库的文件系 统。 6 、作为一种区域存储方案提供给用户。通过网络,用户能够访问 d b f s ,并使用上面的提供的接口访问文件系统。 将d b f s 移植到l i n u x 下,其意义在于: 1 、解决了使用传统的文件系统接口访问d b f s 的兼容性问题。 2 、扩充了传统的文件系统,为数据的分布式存储和海量存储提供了 种解决方案。 3 、为上层的应用程序提供接口,对上层应用系统而言,它只需在当 前操作系统的文件系统上进行开发,无需知道底层的存储结构。 4 、兼容并扩充了p o s i x 标准,为新的文件系统接口标准提供了借 签。 5 、丰富了用户访问管理数据、信息的手段,使信息作为企业的资产 的效能得到更有效的发挥。 本课题的创新点在于: 1 、解决了传统的文件系统和d b f s 之间接口的兼容、相互访问的问 题。使用传统的文件系统接口,用户可以透明的访问d b f s 。 2 、将d b f s 移植到l i n u x 内核下,并为用户提供了更多的功能强大 的访问接口。 3 、兼容p o s i x 标准定义的接口,并对其进行了扩展。 4 、将l i n u x 内核中一块内存作为字符设备,并为之编写驱动,用户 通过l i n u x 统一的设备文件访问接口访问该内存,用来作为内核空间和 用户空间通信之用。 5 、解决了在l i n u x 内核中调用面向对象语言编写的符合c o r b a 规 第一乖缔论 肇于数据库的一个文件系统的移植 范的程序,使之能够在内核态访问远程计算机。 6 、扩展了n f s 网络文件系统,丰富了n f s 的访问手段。 1 3国内外的现状 层次型文件系统是按照计算机的“思维方式”设计的,这在当时来 看解决了有无的问题,并是一种很先进的设计。但这种访问方式与人的 思维方式并不一致。与人的思维更接近的是按照内容访问、管理文件, 对层次型文件系统改进的方案也多向此靠拢。 其中,对层次型文件系统的一个重大变革是d 州dg i f f o r d 提出的语 义文件系统嘲( s e 咖l 石cf i l es y s t e m , s f s ) 。他认为:对文件、目录的自动 索引被称之为语义,通过转换器( t r a n s d u c e r ) 自动对文件、目录抽取属性, 用户以关联访f 司( a s s o c i a t e a c c e s s ) 的形式访问s f s 的内容。s f s 的一个重 大特色就是关联访问,而不再是传统的“按名存取”,并提出了基于内容 访i n ( c o n t e n t - b a s e d a c c e s s ,c b a ) 的思想。但是s f s 也有其缺陷: 虽然支持区域访问如n f s ,但是不能将基于内容访问的信息共享。 通过虚拟目录来兼容层次型文件系统,但是瘟拟目录不是实际存在 的。 其查询总是以“属性值”的形式,没有更多的基于内容的访问手 段。 还有一种是在层次型文件系统之上,加强用户的访问手段,如 h a c t 3 ( h i e r a r c h ya n dc o n t e n t ) 文件系统,在u n i x 文件系统之上进行扩 展,提供基于语义访问的功能。但其“本”还是层次文件系统。 另一种对层次型文件系统的突破就是基于数据库的文件系统。将数 据库技术与文件系统融合,以求突破层次型文件系统的缺陷,o r a c l e9 i f s 、 m i c r o s o f tw i n f s 即是代表。 在本文成文时,还没有微软公司对w i n f s 的详细描述的官方文档, 因此w i n f s 与传统文件系统的关系就不得而知。而已经发布的o r a c l ei f s 中,当前最新版9 0 3 的开发包依然是j a v a 的s d k 。但是体现其强大的 区域访问功能的两种方式:浏览器访问方式、面向对象的a p l 接口与现 壮于数据库的一个文件系统的移植 有文件系统接口依然不兼容。 1 4本文主要工作和内容安排 本课题是1 2 f s 文件系统的一个子项。文章详细描述了该d b f s 向 l i n u x 操作系统平台移植的实现思路和实现方法,为1 2 f s 文件系统提供访 问接口,以便用户在l i n u x 下能够访问1 2 f s 文件系统、并为应用程序的 开发提供接口。 本文第二章介绍了课题的背景知识和涉及的相关技术。其中包括对 文件系统的介绍、l i n u x 操作系统下的虚拟文件系统v f s 的架构、l i n u x 系统调用的流程、n f s 网络文件系统以及c o r b a 中间件技术等。 在第三章中我们详细描述了d b f s 移植的目标、开发方案的设计, 基于c s 的多层架构,d b f s 用已有的o r a c l e9 i f s ,操作系统平台用源代 码开放的l i n u x ,中间层采用c o r b a 分布式对象访问技术;然后给出了 兼容p o s i x 的1 2 f s 文件系统接口的功能和详细说明。 然后,在第四章我们重点介绍了d b f s 移植的实现过程,分服务器 端、中间层和客户端三块介绍:基于o r a c l ei f ss d k 的开发实现,为了 节约连接时间丽实现的一个会话连接缓冲池:介绍了采用c o r b a 技术 的分布式对象访问的实现,中间层服务器端j a v a 语言实现,中间层客户 端c + + 实现;接着介绍了l i n u xv f s 下的基于n f s 的逻辑文件系统的实 现过程,l i n u x 系统调用的扩展,内核对用户空间的c o r b a 程序的调用 和利用字符设备实现内核态与用户态之间的通信等。 文章第五部分描述了如何运行移植后的文件系统,并示范了用s h e l l 命令访问1 2 f s 文件系统。 最后,在第六章结束语部分,我们总结了本文完成的主要工作以及 这些工作成果的价值和实际意义,指出了课题一些的不足之处和可以开 展的后继工作,并对文件系统的发展趋势做出了一些展望。 第二毒相关拄求菸础基于数据库弱一个文件系统的移植 第二章相关技术基础 2 1基于数据库的文件系统 2 1 1 文件系统 传统意义下,文件是数据的一种组织形式,文件系统是指文件和对 文件进行操纵和管理的软件,向用户提供文件访问接1 3 的集合【博1 。为方 便对文件的管理,文件应具有一些属性,如:文件类型、文件长度、文 件物理位置、文件建立时间、文件访问的控制等。相应的对文件的操作 有:创建、删除文件,读写文件,截断文件等。图2 - 1 是文件系统的模型 图: 对文件 操纵和蕾 理的较件 文件系统接口 逻辑文件系统 基本g o 蕾理程序文件组j 鬟摸块) 基本文件系统物理g o 层) 与礤件设备无关 瑚2 - l 文件系统梗型 文件、目录及其属性说明 文件、目录等都是文件系统直接管理的对象,这也是文件系统的目 的所在。 对文件、目录操纵和管理的软件集合 这一集合是文件系统的核心部分,文件系统大部分功能都在本部分, 按功能可划分成四个层次。最底层的是存储器的驱动程序层,主要完成 对设备的i o 操作等:基本的文件系统层,主要负责处理内存和辅助存储 器之间的数据块交换,控制驱动程序读写数据。基本i o 管理程序处理与 i o 相关的事务:确定文件所在的设备,文件逻辑块号到设备块号的转换、 空闲空间的管理,i o 缓冲区的设定等。逻辑文件系统处理的是与文件和 记录相关的操作,如用户用文件名访问文件中的数据。该层已与具体的 硬件设备无关。 基十数据库的一个义件系统的移植 第一二章相关技术基础 文件系统接口 如同其他的搡作系统接口一样,为了方便用户使用文件系统,一般 向用户提供两种方式的接口:命令接口和程序接口,程序接口通过系统 调用取得相应文件系统提供的服务。 2 1 2 数据库系统 数据库系统对数据的管理是将数据统一存放在数据库中,并用数据 模型( 关系、面向对象模型等) 描述数据本身和数据之间的关系【l 引。 数据由数据库管理系统进行统一管理,数据与程序的独立性都很高。 数据冗余度底,可共享;由数据库管理系统对数据的安全性、完整性和 并发性进行控制,同时负责数据受到损害后的恢复;对数据的查找、分 析优势明显。 但是,数据库需要操作系统的支持,没有操作系统的支持,数据库 软件是无法安装、运行的。数据库系统还依赖于具体的软件产品。对数 据库访问的应用程序也没有文件系统的丰富,比如声音、视频文件的播 放、处理等。 2 1 3 基予数据库的文件系统 现代社会,很多数据并不是全部存放于数据库中,如网页、邮件、 电子合同、音乐数据等。在大量的文件中,找出用户所关心的文件和数 据,层次型文件系统是很困难的。但是这些却是数据库的长处。 基于数据库的文件系统( d b f s ) 综合了文件系统和数据库系统的优 点:在传统文件系统功能的基础上,将数据库系统强大的数据管理功能 引入,文件内容、文件属性都以表记录的形式存放在数据库中;文件的 存储格式统一,如二进制数据文件、多媒体文件、流媒体文件统一存储; 可以使用元数据( m e t ad a t a ) 来描述文档的属性,并可扩充、自定义文件的 属性;支持海量存储,更强的并发控制与协同控制的能力等,访问非常 方便。 d b f s 可轻松对关键字等信息加以索引,并可突破层;欠文件系统中文 1 笫二章相关技术基础基于数据库的一个文件系统的移檀 件属性扩展性差【1 6 】【1 01 的缺点,能够用更多的信息描述文件,提供更多的 对文件描述的信息:关键词、中心词、文档的摘要、作者等等,以及更 多的关于文件逻辑使用上的信息,直接面向该文件的最终使用者,将会 更有效、更方便用户的使用,充分体现了基于内容访问的性能。 2 1 4o r a c l e9 i f s o r a c l ei n t e r a c tf i l es y s t e m ( i f s ,我们使用的版本为9 ) 是o r a c l e 关系 数据库管理系统的拓展,它不仅具有o r a c l e 数据库的高可靠性、可用性 和可伸缩性,还具有标准文件系统的常见特性和易用性。它能够保存各 种文件,并提供各种客户端,支持s m b , r r r i ef t p 等多种协议。在o r a c l e 9 i f s 中,将所有数据统一存储在单个的信息库( r e p o s i t o r y ) q b 。9 i f s 扩展 了数据库平台,把文档作为文件和文件夹显示,用户可以通过熟悉的界 面例如、矾n d o w s 、w e bf f i r r p ) 和f t p 来访问它们。o r a c l e9 i f s 还在 系统外为用户提供强大的版本控制、检出检入和统一访问等功能。 图2 - 2o r a c l e9 i f s 系统架构 图2 2 是o r a c l e9 i f s 的系统架构图,各部分分别是: o r a c l e9 i 数据库 在9 i f s 中,文件系统的所有内容都存储在数据库中,包括文件、义 赫十数据库的一个文件系统的移撞第二章相关技术基础 件属性、用户和组等信息。为了方便检索,数据库中还可以对存储的内 容加以索引。o r a c l e9 i 数据库中还存放t 9 i f s 的文件系统模式( 表、字段 的集合) 。 信息库( r e p o s i t o r y ) 信息库管理所有同数据库的交互。从功能上看,信息库只是一种机 制,完成将数据库中的行、表的内容转换成文件、目录、用户、组等对 象。从开发者的角度看,信息库实际上有两部份:用于访问数据库的j a v a a p i 、o r a c l e9 i 数据库的实例模式。储存器的j a v a 类执行存储对象、访问 控制、内容管理、文件系统的操作转换成对数据库的底层操作等任务。 数据库的会话由信息库提供缓冲机制、配额。 扩展层 9 i f s 一个非常突出的优点就是可以个性化、可扩展。在9 i f s 文件系统 开发包提供了一些组件,开发人员可以通过予类、关联类( t i ec l a s s ) 、分 析器( p a r s e r s ) 、解释器( r e n d e r e r s ) 、服务器( s e r v e r s ) 、重载类、s c r v l e t s 和j s p 等扩展定制自己的文件系统。 o 服务器 在栈式结构图中最前一层是协议服务器,提供给用户访问文件服务 器的协议服务器集合。客户端通过h t t p 、w m d o w s 浏览器、n f s 、f t p 、 m a c i n t o s hd a v e 以及e m a i l 客户端访问储存器中的对象。根据不同的协 议,文件、目录也以不同的形式出现在终端用户面前。 2 2l i n u x 虚拟文件系统 l i n u x 除了支持e x t 2 文件系统外,还支持萁他不同的文件系统。要实 现这一目的,就需将番种不同的文件系统的操作和管理纳入到一个统一 瓣框絮中,纛拟文锌系统v f s ( v i r t u a lf i l es y s t e ms w i t c h ) 裂实现7 这一 功能。 v f s 将实际的文件系统从操作系统和系统服务之间分离开来,在萁之 阕增热了一个接墨层。它蘑蔽了不目的文 宰系统薛实现缨节,为震户提 供了一个统一的、抽象的、虚拟的文件系统界面,这一界面由纽标准 基于数据库的一个立件系统的移植 的、抽象的文件系统操作构成,以系统调用的形式提供给应用程序,如 r e a d ( ) 、w r i t e ( ) 等,同时还支持多种逻辑文件系统之间的相互访问和内核 其他予系统的操作请求。 应用程序( 进程) 孳竺i l : 哩l 妻s i 竺i o ,4 ,田” | :i 占i 。ii 设b | 出 图2 - 3v f s 与具体文件系统的关系不慈图 v f s 如同接口卡,它定义了提供给应用程序的接口,也规定了和具 体文件系统之间的接口。文件系统要挂载在l i n u x 操作系统上,就必须 遵循这些接口。其主要的一些数据结构有:f i l eo p e r a t i o n s 、f i l es t r u c t 、 i n o d e 、d e n t r y 、d e n t r y _ o p e r a t i o n s 、i n o d e _ o p e r a t i o n s 等( 详见源代码 i n c l u d e l i n u x f s h ) 。 l i n u x 操作系统c p ,磁盘上的文件、设备、特殊的文件统一以“文件” ( f i l e ) 表示,在v f s 巾,露索弓l 节点i n o d e 表示它麓物璎痿惠。弱糕,我 们这里说的文件、目录等也是用i n o d e 表示的。对于i n o d e 而言,黢熏要 的操作莫过于i n o d e了,主要功能是将对的操作转_ o p e r a f i o n sv f s i n o d e 换夷对逻辑文箨系统栩痤楚瑾嚣数处瑾。 从逻辑意义上描述文件的文件名等属饿的是目录项d e n t r y ,个文件 只有一个i n o d e ,但可能有多个d e n t r y 指向该文件。 每个文 孛罄毒索譬| 节点窝嚣秉矮存储在磁盘土,只窍在霈要孵才在 内存中为之建立对应的d e n t r y 和i n o d e 数据绺构。 v f s 中还有重要的数据结构就是f i l e ,用户打开的所有文件v f s 中 都矮f i l e 接逑。v f s 与特定文件系统熬关联点就怒对f i l e 翡操作 f i l e _ o p e r a t i o n s 。 v f s 只存在于内存中,在系统启动时建立,系统关闭时消亡。 l n 姥干数姑库的一个文件系统的移植 第二章相关技术基础 l i n u x 内核在编译时,就需要确定支持哪些文件系统,在系统引导 时文件系统向v f s 注册。另外一种文件系统加载的方式就是将文件系统 作为一种内核可加载模块,在实际安装时进行注册,在模块卸载时注销。 注册时,v f s 要填写f i l es y s t e m 的数据结构:_type s t r , d df i l e _ s y s t e m _ t y p e e o n s tc h a rn a m e ;,文件系统的名称,如e x t 2 ,v f a t 等 i n tf s _ f l a g s ;* m 数,用来区分文件系统, s t r u c ts u p e rb l o c k ( * r e a ds u p e r ) ( s t r e e ts u p e r _ _ b l o e k ,v o i d + ,i 1 1 1 ) ; ,+ 文件系统挂载时v f s 调用该函数读取、填充超级块 s t r u c t m o d u l e * o w n e r ;, s w a c tf i l es y s t e m _ t y p e n e x t ; ,+ 指向下一个结构体, s t m c tl i s t h e a df s _ s u p e r s ; ; 注册时调用r e g i s t e r _ f i l e s y s t e m ( s t r u c tf i l e _ s y s t e m _ t y p e 奎) 向内核注册 文件系统。如果用户要使用某种文件系统,还需要超级用户( r o o t ) 将注册 后的文件系统挂载。通过s h e l l 层的m o u n t 命令把挂载参数:文件系统名 称、设备名、挂载点、附加信息等传递给m o u n t 系统调用,由它完成逻 辑文件系统的挂载: 在f i l es y s t e m 链表中根据文件系统名称查找对应文件系统。_type 如果找到,说明内核支持该文件系统,否则v f s 请求内核装载该文件 系统模块,并注册、初始化之。 v f s 检测给定的设备是否已安装。 查找新文件系统安装点目录的v f s 索引节点( d e l l t r y ) 。 v f s 为安装的文件系统分配超级块( s u p e r ,将安装信息传递给 该文件系统的超级块读取函数他_ ,b l 由o c 该k ) a d 函数将文件系统的信s u p e r ) 息填充到超级块中。 最后成功挂载的文件系统由v f s m o u n t 结构描述,它们被排入 v f s m o u n t l i s t 指向的链表中。 如果文件系统正在被使用,是不能卸载的。卸载时,内核根据文件 系统所在设备的标识符,检查是否有来自该文件系统的v f s 索引节点, 如果有,且使用计数不为0 ,则文件系统在被使用中。否则,再检测对应 超级块,如果超级块标志“脏”,就必须将超级块信息写回磁盘。上述过 程结束后,对应的v f s 超级块被释放,v f s m o u n t 结构也从v f s m o u n t l i s t 第二章相关技术基础熬于数据库的一个文件系统的移德 链表中断开释放。 2 3l i n u x 系统调用 l i n u x 操作系统采用类u n i x 内核方式,把操作系统分成系统状态和 用户状态。l i n u x 下每个进程都有4 g 的虚拟空间,但这4 g 的空间分成 两部分,0 3 g b 部分称为用户空间,它是用户进程的私有空间。3 4 g b 成为内核空间,由所有进程及内核共享使用。内核空间保存的是内核的 代码和数据,用户空间保存的是用户代码和数据。进程管理、设备管理 等操作系统关键模块放在系统状态即内核中,加强了操作系统的安全。 由于保护级别的不同,用户进程不能直接访问内核的数据,也不能 直接调用内核的函数。但是用户进程经常要访问内核的数据并调用内核 提供的函数,要求内核提供一些服务,因此操作系统提供了一种用户使 用内核服务的机制,即系统调用。l i n u x 内核中设置了一组用于实现各种 系统功能的子程序,并将它们提供给用户调用。在用户需要访问系统内 核管理的资源时,用户进程将被挂起,内核检验用户请求的合法性,尝 试执行,并把结果反馈给用户进程,然后用户进程重新启动。l i n u x 系统 调用由两部分组成内核函数和接口函数。接口函数是提供给用户态的应 用程序接口,一般以c 形式的库函数给出。通过8 0 h 陷阱指令,接口函 数将转到内核态,运行内核中的相应处理函数,即内核函数。 l i n u x 中每个系统调用都有一个唯一的编号,称为系统调用号,这也 是系统调用在入口地址表中位置的序号。 在用户程序调用系统调用时,系统调用程序通过8 0 h 中断指令,穿 过陷阱门,由用户态切换到系统态,到达所有系统调用的总入口程序 s y s t e mc a l l ,在此,保存系统调用号,检查系统调用号是否“超标”,然 后在系统调用跳转3 菱( s y s _ c a l l _ t a b l e 【】) 中找到相应内核函数指针,通过寄 存器,将用户入口参数传入,跳转到相应函数执行。执行完毕后到达 r e t _ f r o ms y s _ c a l l ,恢复用户使用系统调用的现场,回到用户程序中,调 用返回值仍通过寄存器传到用户空间。 相关代码和具体过程如下: 蕉塑塑壁塑二尘塞壁墨丝塑堡堕 e n t r y ( s y s t e mc a l l ) # a r c h i 3 8 6 k e m e l e n t r y s p u s h l e a x # s a v eo r i g _ e a x 第二章相关技术基础 s a v e a l l g e - rc o r r e n t ( e b x ) t c s t b $ 0 x 0 2 , t s k _ p t r a c e ( e b x ) # p tt r a c e s y s j n ei r a e e s y s c m p l $ ( n r _ s y s c a l l s ) , e a x j a eb a d s y s c a l l * s y m b o l _ n a m e ( s y sc a l l _ t a b l e x , e a x , 4 ) m o v l e a x ,e a x ( y , e s p ) # s a v et h er e u l n lv a l u e e n t r y ( m t _ f r o m _ s y sc a l l ) e l i徉n e e dr e s c h e da n ds i g n a l sa t o m i ct e s t c m p l $ o , n e e d _ r e s c h e d ( c b x ) 扣【em s c h e d u i e e m p l $ o s i g p e n d i n g ( e b x ) j n es i g n a l _ r e t u r n r t c c e _ a ! l : 购唧m r 调用宏过程”s a v ea l l i 保存现有通用寄存器值,寄存器值的压栈不 但可以保存系统调用前_ 寄存器中的数据,而且提供了一种传递参数的方 法( e a x 存放系统调用号,曲x 、e c x 、e d x 、e s i 、e d i 分别为 参数l 5 ,故系统调用最多可带五个参数) 。堆栈中的结构,与该过程 所要传递的p t结构类型的参数结构一致。在该宏中,还使ds和rcgs e s 指向内核的数据段,使f s 指向用户的数据段,使进程进入核心态。 g e t宏调用是取得当前进程的 结构,寄_ c u r r e n t ( e b x ) t a s k s t r u c t 存器c b x 存放t a s ks t r e u t 结构的指针。 ”t e s t b $ 0 x 0 2 ,t s k _ p t r a c e ( e b x ) ”检测当前进程是否正跟踪系统调用,如 果不是,直接调用该系统调用函数,执行完后直接返回。 然后检查e a x 中的系统调用号是否超出范围。i n c l u d e l i n u x s y s h 中 定义为2 6 0 个。如果是正常的系统调用,后面的c a l l 指令以s y s c a l lt a b l e 为基地址,e a x 寄存器中的内容( 即系统调用的序号) 乘以4 为偏移量( 因 为l o n g 型为3 2 位即4 字节) ,即得到所需调用的系统调用函数的入口地 址,调转到相应的系统调用,执行系统调用。 执行完毕,m o v l e a x ,e a x ( e s p ) 将服务程序执行的返回值存在e a x 中,通过e a x 传到用户空间。 函数返回以后,流程进入r e t _ f r o m _ s y s _ c a l l ,该过程内处理一些系统 调用返回前应该处理的事情,如检测b o t t o mh a l f 缓冲区,判断c p u 是否 第二章相关技术草础 基于数据库的一个文件系统的移植 需要重新调度等,之后,系统调用返回。 ”r e s t o r e a l l ”是s y s t e m c a l l 的退出点,到此调用宏,使进程离 开核心态,恢复各寄存器值并返回到用户调用时状态。 弄清楚系统调用的原理和过程后,我们就可以增加、修改自己的系 统调用了。也可以编写新的内核函数,在系统调用跳转表中增加新的表 项,再重新编译内核,使新的系统调用生效,用户程序就可以调用了。 2 4n f s 网络文件系统 在计算机行业中,有着广泛影响和应用的分布式文件系统,当首推 1 9 8 5 年s u n 公司推出的网络文件系统( n e t w o r kf i l es y s t e m , n f s ) 。n f s 最主要的功能是u n i x 计算机能够对远程u n i x 文件系统进行透明存取, 将远程文件系统挂载( m o u n t ) 至t 本地系统上,就如同操作本地文件系统一 般操作远程文件系统。n f s 采用的是c s 模式,客户机与服务器之间通 过远程过程调用r p c ( r e m o t ep r o c e d u r ec a l l ,r f c1 0 5 7 洲) 进行通信,数据 表示采用x d r 外部数据表示( e x t e r n a ld a t ar e p r e s e n t a t i o n ,r f c l 0 1 4 i i i j ) 。 由于r p c 使用3 2 位二进制数标识一个r p c 程序,t c p ( u d p ) 端 口号为1 6 位,为了客户机程序能够访问r p c ,就得通过某种方式将r p c 表示号映射到端口上,即r p c 端口映射机制。服务器端r p c 运行时,分 配了一个本地协议端口,将( r p c 程序号,协议端口号,版本号) 注册 到端口映射器中( r p cp o r tm a p p e r ) ,客户机调用r p c 向端口映射器发 送一个请求找到对应协议端口,就可实现调用。 n f s 中,服务器导出一个或多个可供远程客户端共享的目录,用户 将服务器输出目录挂载( m o u n t ) 到本机,实现文件的共享。在n f s 的 服务器端,服务器上必须运行p o r t m a p 、m o u n t e d 、n f s d 三个守护进程,其 中p o r t m a p 负责监听固定的端口并提供相应的r p c 服务,当一个客户端 需要产生一个r p c 时,它首先需要与p o r t m a p 守护进程通讯,获得所需 服务的r p c 端口号。 n f s 客户端需要m o u n t 服务器的文件系统时,首先客户端的m o u n t 进程给具有固定端口号的p o r t m a p 守护进程发送一个消息,请求服务器 姥于数据库的一个文件系统的移植第二二章相关技术基础 m o u n t d 端口号的地址:p o r t r n a p 守护进程返回m o u n t d 的端口号返凹客尸 端。客户端的m o u n t 进程给服务器的m o u n t d 进程发送它需要m o u n t 的 文件系统的路径:服务器的m o u n t d 进程取得请求文件系统的m o u n t 点 的文件句柄,如果请求成功,发送文件旬柄给客户端的m o u n t 进程,否 则,返回错误的信息给客户端。如果以上请求成功,客户端m o u n t 进程利 用得到的文件旬柄产生一个m o u n t 调用,整个m o u n t 过程结束。 到目前为止,n f s 协议已发展到第4 版。l 3 版服务器端都是无状 态的。无状态性即客户在服务器上的位置和操作是不记录的,优点是 客户机崩溃或重起对服务器不会有影响,但缺点是不能对文件锁定等( 版 本4 服务器已变为有状态的) 。 本课题研究基于l i n u x2 4 内核,该内核尚不支持n f sv 4 ,故在使用 广泛的l f sv 2 ( n e t w o r kf i l es y s t e mp r o t o c o ls p e c i f i c a t i o n ,r f c l 0 9 4 川) 基 础上扩展,以下是n f sv 2 定义的一组文件操作方法: p r o g r a m n f sp r o g r a m v e r s i o nn f sv e r s i o nt v o i dn f s p r o c + n u l l ( v o i d s 0 扩测试溅务器琵否响应+ a t t r s t a tn f s p r o c _ g e t a t y r ( f l m n d l e ) = 。1 取文件属性+ a t t r s t a t n f s p r o c _ s e t a t t r ( s a t l r a r g s ) = ? ;,喀户机设置文属性 v o i d n f s p r o gr o o 叫v o i 扛3 李版率中毫坪用,被安装协议( m o u n t ) 取代吖 d i r o p r e sn f s p r o cl o o k u p ( d i r o p a r g s ) = 4 : ,在菜个目录中搜索文件,成功返回文件属性及旬 丙, r e a d l i n k r e sn f s p r o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年北交所招聘面试高频题库解析
- 2025届德阳市罗江区中考数学押题试卷含解析
- 2025年宠物训导师笔试重点复习题集
- 2025年妇联笔试高频题解析
- 投资合作协议细则
- 2025年高空作业登高架设考试试题及解析
- 2025年植保无人机面试高频问题集
- 2025年滑雪中级指导员考试要点与模拟题
- 2025年安全生产安全操作规程试题集
- 2025年品质检测员执业考试试题及答案解析
- 2025年电气系统故障排查与维修技能考核试卷及答案(全新)
- 模拟联合国社团课件
- 2025-2026学年统编版(2024)小学语文二年级上册教学计划及进度表
- 2025湖南湘潭湘乡市融媒体中心招聘事业单位工作人员10人笔试备考题库及答案解析
- 县级医院骨科发展路径规划
- 健康管理师二级《理论知识》模拟考试试卷附答案
- 2025湖南省全日制用工劳动合同书
- 食品合规管理课件
- 疼痛健康教育
- 羊驼介绍课件
- 全科医学病例讨论
评论
0/150
提交评论