已阅读5页,还剩54页未读, 继续免费阅读
(计算机应用技术专业论文)μclinux文件系统实现策略研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 c l i n u x 是当前最流行嵌入式操作系统之一。专门针对没有m m u 的处理 器而设计,其性能稳定、移植性好、功能强大。文件系统是g c l i n u x 操作系统中 重要的组成部分,在大容量f l a s h 成为嵌入式产品主要存储介质的情况下,更对 g c l i n u x 文件系统提出了针对大容量数据频繁交换的新要求。 # c l i n u x 文件系统在f l a s h 存储设备上的实现通常由v 礴( v i r t u a jf i l e s y s t e m s w i t c h ) ,具体文件系统,m t d ( m e m o r yt e c h n o l o g yd e v i c e ) 和硬件驱动四部分组 成。其中,v f s ,m t d 和硬件驱动的结构通常固定,而具体文件系统的选择却 非常多。t c l i n u x 文件系统性能的差别主要体现在其所采用的具体文件系统上, 实现g c l i n u x 文件系统的关键就是具体文件系统的实现。 目前,# c l i n u x 上最常用的具体文件系统是j f f s 2 ( j o u r n a l l i n gf l a s h f i l e $ y s t e m2 ) ,j f f s 2 采用了新的存储方式和独特的垃圾收集机制,可支持耗损平 衡,具有和断电保护功能。但j f f s 2 设计之初默认嵌入式产品中f l a s h 的容量并 不大,在当前普遍使用大容量h a s h 存储设备的嵌入式系统中,存在着容错校验 效果不理想和启动加载时间较长的缺陷。本文的研究重点是上述缺陷的改进办 法。 针对j f f s 2 容错校验效果不佳的问题,本文分析了j f f s 2 中存储和校验方 式的缺陷,提出重校验海明码的编码和校验机制。与常用的编码校验机制相比, 该机制编解码速度快,数据纠错能力强。本文还根据数据精度要求的不同,提 出分级存储的思想,对精度要求高的数据采用编码存储,其他数据普通存储, 以节省存储空间,提高存取速度。最后,本文对j f f s 2 文件系统做了相应的修 改,更改了j f f s 2 节点的存储结构和存取函数,达到增强j f f s 2 容错校验的效 果。 针对文件加载时间较长的问题,本文通过重新定义新的结点类型,用来描 述f l a s h 擦除块的相关信息。这样,文件系统就可直接读取此类结点,建立相应 的块内存映像。同时,考虑到常见的嵌入式设备在实际使用中对文件的读写操 作相对较少,还可将建立索引结点分布图的操作尽量放到读写文件之前执行, 以减少读取磁盘数据的次数,缩短文件加载时间。 关键字:嵌入式系统,# c l i n u x ,文件系统,闪存 a b s t r a c t p c l i n u xi so n eo ft h em o s tp o p u l a re m b e d d e do si nt h ew o r l d i ti sd e s i g n e df o r n o n m m up r o c e s s o rd e v i c e i ti sf a m o u s 、砘t hi t ss t a b i l i z a t i o na n ds t r o n gf u n c t i o n s a n da l s oc a l lt r a n s p l a n te a s i l y f i l es y s t e mi so n eo fi m p o r t a n tp a r to fp c l i n u x0 s , w h e ni ti su s e do ne m b e d d e dd e v i c e sw i t hl a r g ev o l u m ef l a s hs t o r a g e 1 a r g ed a t a e x c h a n 叠i n gr e q u e s tm u s tb es a t i s f i e d z c l i n u xf i l es y s t e r ni nf i a s hs t o r a g ed e v i c ei sa l w a y sc o n s i s t e db y4m a i np a r t s : v f s ( r t u a lf i l e ss y s t e ms w i t c h ) 。c o n c r e t ef i l es y s t e m ,m t d ( m e m o r y t e c h n o l o g yd e v i c e ) a n dh a r d w a r ed r i v e i nt l l e s e4p a r t s v f s ,m t da n dh a r d w a r e d r i v e ss t r u c t u r e sa r ea l i n e s tf i r m e d ,t h a ti st os a y t h ek e yi sc o n c r e t ef i l es y s t e m a t p r e s e n t j f f s 2 ( j o u r n a l i n gf l a s hf i l cs y s t e m2 ) i sm o s tp o p u l a rc o n c r e t ef i l cs y s t e m 0 1 1p c l i n u x n e ws t o r a g es t r u c t u r ea n ds p e c i a lg a r b a g ec o l l e c t i o na r ea p p f i e di n j 兀1 s 2 ,c o n s u m eb a l a n c ea n db r e a kp r o t e c t i o nf u n c t i o na l ea l s os u p p o r t e db yi t b u ta tt h eb e g i n n i n g0 f j f f s 2d e s i g n , t h ev o l u m eo f s t o r a g ei nt h ed e v i c ea tt h a tt i m e i sn o ta sl a r g ea sn o w a d a y s i fi m p o r ti td i r e c t l yi n t oe m b e d d e do st o d a y , e r r o r c a l i b r a t i o ne f f i c i e n c ya n dl o a d i n gt i m ew i l lb eb i gp r o b l e m s t h e s et w oq u e s t i o n sa r e t h ev e r y k e yp o i n t so fm yp a p e r t ot h ef i r s t q u e s t i o n , r e c a l i b r a t i o nh a m m i n gc o d i n gi s am o r ee f f i c i e n t r e s o l v i n gm e t h o d c o m p a r ew i t ho t h e rm e t h o d s h a m m i n gc o d eh a sh i g h e rs p e e da n d b e t t e rf a u l t ,i b l e r a n c ea b i l i t y d a t ac l a s s i f i c a t i o ni sa l s oa v a l l a b l et o t h i sq u e s t i o n , i f s t o r et h eo r d i n a r yd a t ab yo r d i n a r ys t r u c t u r e ,a n ds t o r ed a t aw i t hh i g hp r e c i s i o n r e q u i r e m e n tb yc o d i n gs t o r a g es t r u c t u r e ,m u c ht i m ea n ds t o r a g es p a c ew i l lb es a v e d t h el a s ts t e pi st oi m p r o v et h ej h 嗒2d o c u m e n t a t i o ns y s t e m i no r d e rt os t r e n g t h e n t h ef a u l tt o l e r a n c ec a l i b r a t i o na b i l i t y , n o d es t r u c t u r ea n di n p u t o u t p u tf u n c t i o na l e r e d e s i g n e d t ot h eo t h e rq u e s t i o n , r e d u c i n gt h eo p o r a t i o nt i m e so ff l a s hr e a d w r i t ea c t o ni s t h eo n l yw a yt og o t or e a l i z ei lr e d e f i n et h es t r u c t u r eo fn o d e sw i l lb eh e l p f u l b e c a u s eb e f o r et h er e a d w r i t ea c t i o nb e i n gc a r r i e do u t , d e v i c ec a nf i n dt h eb l o c k m e m o r yi m a g ef i r s ti n s tl i k et h ef u n c t i o no fi n d e x i nt h eo t h e rh a n d ,b u i l d i n gn o d e s d i s t r i b u t i o nm a pc a nb ea l w a y ss e tb e f o r er e a d w r i t ea c t i o nb e c a u s ei no r d i n a r y o p e r a t i o n , t h e 丘c q u e n c yo fr e a d w r i t ea c t i o ni sl o w e rt h a no t h e ra c t i o n s k e yw o r d s :e m b c d e ds y s t e m ,p c l i n u x ,f i l es y s t e m ,f l a s hm e m o r y , 独创性声明 本人声明,所里交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签辄格日飙删a 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印,缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 期:迎) s 如 武汉理工大学硕士学位论文 1 1 课题背景 第1 章绪论 嵌入式系统是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠 性、成本、体积、功耗等综合性严格要求的专用计算机系统i 。 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备 驱动接口、文件系统、通信协议、图形界面、标准化浏览器等【2 1 。 目前常见的嵌入式操作系统分两类:一类是专门针对嵌入式环境所开发的操 作系统,如w i n dr i v e r 公司的v x w o r k s ,另一类则是根据现有的操作系统专 门定制的系统,如z c l i n u x 。, u c l i n u x 是一个源码开放的免费操作系统,是专为 无m m u ( 内存管理单元) 的微控制器开发的,t c l i n u x 与l i n u x 主要的区别在于 内存管理机制和进程调度管理机制。因为性能优异以及开源和免费的优势, m c l i n u x 被越来越多的嵌入式产品采用。 伴随着嵌入式产品的发展,嵌入式产品对文件系统的要求也从早期的只对少 量控制信息的读取,发展为今天对大量数据的频繁读写。常见的f c l i n u x 文件系 统的实现通常由v f s ( v i r t u a lf i l e s y s t e ms w i t c h ) ,具体文件系统,m t d ( m e m o r y t e c h n o l o g yd e v i c e ) 和硬件驱动四部分组成。其中,v f s ,m t d ,和硬件驱动 的结构通常固定,而具体文件系统的选择却非常多,常见就有e x t ,e 】【t 2 ,r o m f s , c r a m f s ,r a m f s ,t m p f s ,j f f s ,j f f s 2 , y a f f s ,y a f f s 2 ,t f s ,p r o c ,d e v f s , v f a t 等二十多种。因此,m c l i n u x 文件系统性能的差别主要体现在其所采用的具 体文件系统上,实现z c l i n u x 文件系统的关键就是实现具体文件系统。 当前,以使用大容量f l a s h 存贮设备为标志的嵌入式产品渐渐占领市场,由 于f l a s h 存储介质的读写特点,某些传统的具体文件系统己经不适合应用在嵌入 式系统中。例如e x t 2 f s 文件系统,没有提供很好的扇区擦写支持,不支持损耗 平衡,没有掉电保护,也没有特别完美的扇区管理。另一方面,专为f l a s h 存储 介质设计的文件系统功能还不够完善,如当前最流行的j f f s 2 ( j o u r n a l l i n g f l a s h f i l es y s t e m2 ) 文件系统,其在系统挂载速度,容错校验等方面还存在一定问题。 因此,对常用的j f f s 2 文件系统的不足进行一些改进,是对v c l i n u x 文件系统实 武汉理工大学硕士学位论文 现的研究工作中最重要的部分。 本文通过对p c l i n u x 文件系统实现体系和j f f s 2 文件系统的研究,分析了 j f f s 2 的缺陷及其产生原因,提出了有针对性的改进方法,达到提高z c l i n u x 文 件系统应用效率的目的。 1 2j f f s 2 文件系统简介 j f f s 2 是j f f s x 文件系统产品系列的第二代,该系列产品是专为f l a s h 存储 介质设计的。最早由瑞典的a x i sc o m m u n i c a t i o n sa b 公司开发,并于1 9 9 9 年 末发布1 3 1 。由于第一代产品j f f s l 存在严重的设计局限,r e d h a t 于2 0 0 1 年初 开始动手实现闪存文件系统的第二代,即j f f s 2 。j f f s 2 是一个日志结构 ( 1 0 9 - s t r u c t u r e d ) 的文件系统,包含数据和原数据( m e t a - d a t a ) l 拘节点在闪存上顺序的 存储。它具备数据压缩、垃圾回收、断电保护技术。自适应耗损平衡等功能。 由于j f f s 2 文件系统在开始设计结构时,默认了将其应用到容量并不是很大的 h a s h 中去( 近似少于1 2 8 m ) ,这种设计约束决定了当f l a s h 的容量达到一定规 模时,以前设计思想的缺陷就暴露了出来,其最突出的问题表现在容错纠错能 力较差和启动时文件挂载时间过长。 1 3 国内外研究状况 j f f s 2 是目前最常用文件系统,研究j f f s 2 的机构和个人较多,对其缺 陷提出了多种解决方案除去难以获得技术资料的商用解决方案外,常见的解 决方案如下: 1 3 1 容错纠错能力的改进方案 有研究人员使用扩展海明码来提高j f f s 2 的容错纠错能力。这种海明码 通过增加1 个校验位来实现码距为4 的,从而够检验2 位错,并纠正一位错 【3 0 1 。3 2 位的扩展海明码的校验位为p 1 p 6 ,数据位为d 1 d 2 6 ,从高到低依 次排列为: l ! ! :竖l 里! :里堑i 图1 1 :扩展海明码的结构 2 武汉理工大学硕士学位论文 扩展海明码编码时确定校验位的公式( 偶校验) : p 1 = 2 6 0 d 2 4 0 d 2 2 0 d 2 0 0 d 1 8 0 d 1 6 0 d 1 4 0 d 1 2 0 d 1 0 0 d 8 0 d 6 0 d 4 0 d 2 0 d 1 p 2 = d 2 6 0 d 2 5 0 d 2 2 0 d 2 1 0 d 1 8 0 d 1 7 0 d 1 4 0 d 1 3 0 d 1 1 0 d 1 0 0 d 7 0 d 6 毋d 4 0d 3 0 d 1 p 3 = d 2 6 审d 2 5 0 d 2 4 0 d 2 3 0 d 1 8 0 d 1 7 0 d 1 6 0 d 1 5 0 d 1 1 0 d 1 0 审d 9 0 d 8 审d 4 0 d 3 审d 2 p 4 = d 2 6 0 d 2 5 毋d 2 4 审d 2 3 0 d 2 2 0 d 2 1 0 d 2 0 毋d 1 9 0 d 1 1 审d 1 0 毋d 9 毋d 8 o d 7 毋d 6 0 d 5 p 5 = d 2 6 0 d 2 5 审d 2 4 0 d 2 3 0 d 2 2 0 d 2 1 0 d 2 0 审d 1 9 0 d 1 8 0 d 1 7 0 d 1 6 0 d 1 5 0 d 1 4 0 d 1 3 0 d 1 2 p 6 = p 5 0 p 4 p 1 申d 2 6 毋d 2 5 0 0 d 2 0 d 1 扩展海明码解码时校验表达式为: a = p 1 0 d 2 6 0 d 2 4 0 d 2 2 0 d 2 0 0 d 1 8 0 d 1 6 0 d 1 4 0 d 1 2 0 d 1 0 0 d 8 0 d 6 垂 d 4 0 d 2 0 d 1 b = p 2 0d 2 6 0 d 2 5 0 d 2 2 串d 2 1 审d 1 8 审d 1 7 0 d 1 4 0 d 1 3 审d 1 1 国d 1 0 0 d 7 o d 6 0 d 4 0d 3 审d 1 c = p 3 串d 2 6 0 d 2 5 0 d 2 4 0 d 2 3 0 d 1 8 审d 1 7 0 d 1 6 审d 1 5 审d 1 1 0 d 1 0 0 d 9 o d 8 0 d 4 0 d 3 0 d 2 d = p 4 0 d 2 6 0 d 2 5 0 d 2 4 审d 2 3 0 d 2 2 0 d 2 1 0 d 2 0 0 d 1 9 0 d 1 1 0 d 1 0 0 d 9 o d 8 0 d 7 0 d 6 国d 5 e = p 5 串d 2 6 0 d 2 5 申d 2 4 0 d 2 3 0 d 2 2 0 d 2 1 $ d 2 0 0 d 1 9 0 d 1 8 0 d 1 7 0 d 1 6 o d l 0 d 1 4 0 d 1 3 0 d 1 2 f = p 6 0 p 5 0 p 4 p 1 0 d 2 6 0 d 2 5 0 o d 2 毋d 1 扩展海明码使用3 2 位的码字,来存放2 6 位的数据信息,其数据存贮效率 很高,但文件系统在编码和解码时要在2 6 位和3 2 位间进行转换,工作量不小: 更严重的问题在于,从移植性考虑,文件系统使用软件来完成数据校验,扩展 海明码的校验中使用了大量的逻辑运算,造成存取的效率不高。另外,大容量 的r o m 容易出现单个位错误,对于重要的数据来说,每3 2 位只允许出错1 位, 精度要求还不够。 3 武汉理工大学硕士学位论文 1 3 。2 启动挂载过程的改进方案 常见的改进方案是将整个f l a s h 的第一个擦除块单独处理,在其中保存 指向具体数据存储位置的索引信息。当整个文件系统挂载时,系统就先到第 一个f l a s h 擦除块的位置上进行节点的扫描,然后找到相应的节点数据结构, 进而到指定的位置读取相应的信息,最后在内存空间建立相应的数据结构。 这种方案的实质是传统文件系统和日志文件系统的结合。正常情况下, 它按f a t 文件系统处理,先读取索引信息,然后根据信息在内存中建立数据 结构;非正常情况( 断电等原因造成的索引信息未保存情况) 下,按照日志 系统处理,通过扫描全部节点完成内存数据的建立。这种方案的问题在于 索引信息块读取过于频繁,存储平衡的问题未得到解决;另外,如果用来存 放索引信息的第一个擦除块损坏,文件系统将不能正常工作,该方案的安全 性还有待提高。 1 4 论文的组织结构 本文分为七章: 第一章是绪论,点明了研究的目的和要解决的问题。 第二章是u c l i n u x 文件系统,简介了g c l i n u x 文件系统的结构和各部分的作 用。 第三章j f f s 2 的优势,分析了以j f f s 2 作为具体文件系统来实现g c l i n u x 文 件系统的优势。 , 第四章是j f f s 2 文件系统的功能分析,通过研究j f f s 2 内部结构和各部分 工作原理,总结出j h 7 s 2 的不足之处。 第五章是j f f s 2 容错校验机制的改进,提出重校验海明码的编码方式来存 储数据,并修改文件系统中的相应部分,改进了j f f s 2 的容错校验机制。 第六章是j f f s 2 挂载过程的改进,通过增加新的节点类型提供加载信息和 将暂时不需要的数据延迟加载的方法,提高j f f s 2 文件系统的加载速度。 第七章是总结和展望。 4 武汉理工大学硕士学位论文 第2 章p c l i n u x 文件系统 2 1 t c l i n u x 操作系统简介 t c l i n t l x ( m i c r o - c o n t r 0 1 l i n u x ) 名称中的用来表示m i c r o ,它是针对微控制 领域而设计的l i n u x 系统【4 】。它从l i n u x2 。0 2 。4 内核派生而来,沿袭了主流 l i n u x 的绝大部分特性,适合不具备m m u ( m e m o r ym a n a g e m e n tu n i t ) 的微处理 器微控制器。没有m m u 支持是u c l i n u x 与主流l i n u x 的基本差异【5 】。 p c l i n u x 操作系统主要由三个基本部分组成:引导程序,肛c l i n u x 内核和文 件系统。 引导程序就是在操作系统内核运行之前运行的一段小程序。它的作用是初 始化硬件设备、建立内存空间的映射图,为最终调用操作系统内核准备好正确 的环境。 p o i n u x 内核由内存管理、进程管理和中断处理等构成。m c l i n u x 内核结 构如图2 1 【6 】。在内存管理方面,p c l i n a x 采用存储器的分页管理,系统在启动 时把实际存储器进行分页,在加载应用程序时程序分页加载:由于没有m m u 管理,m c l i n u x 采用实存储器管理策略m a lm e m e o r ym a n a g e m e n t ) ,, u c l i n u x 系统 对于内存的访问是直接的,程序中访问的地址都是实际的物理地址:操作系统 对内存空间没有保护,各个进程实际上共享一个运行空间:另外,磁盘交换空 间也无法使用,系统执行时如果缺少内存将无法通过磁盘交换来得到改善。在 进程管理和中断处理方面,u c l i n u x 的进程调度沿用了l i n u x 的传统。 5 武汉理工大学硕士学位论文 幽2 - 1 , u c l i n u x 内核结构 文件系统是指负责存取和管理文件信息的机构,也可以说是负责文件的建 立、撤销、组织、读写、修改、复制及对文件管理所需要的资源( 如目录表、存 储介质等1 实施管理的软件部分。m c l i n u x 的文件系统将在下一节详细介绍。 2 2 z c l i n u x 文件系统的结构和工作原理 肛c l i n u x 操作系统可以支持多种的文件系统,。以f l a s h 为存储介质时,其文 件系统的实现从上到下可分为四个层次,分别为: v f s ( v i n u a lf u e s y s t e ms w i t c h ) 虚拟文件系统、具体文件系统( 这里用j f f s 2 ) 、m t d ( m e m o r yt e c h n o l o g yd e v i c e ) 闪存硬件驱动模块和f l a s h 硬件驱动。如图2 2f 7 1 所示。 图 v f s : j f 鞲2 m 珊 善 闲存娥烈豁幼 6 的实现结构 武汉理工大学硕士学位论文 在这四个层次中,v f s 和m t d 是核心,具体文件系统和f l a s h 硬件驱动随 着存贮设备和挂载的文件系统不同而变化。 2 2 1 虚拟文件系统v f s v f s 是口a i n u x 操作系统的虚拟文件系统,负责与操作系统之间交互,把 文件作为逻辑页面进行操作和维护。v f s 能够对不同文件系统的数据结构进行 抽象,使用户可以通过一个文件系统操作界面对各种不同的文件系统进行操作。 这样就对用户隐去了各种不同文件系统的实现细节,为用户提供了一个统一的、 抽象的、虚拟的文件系统界面。 v 】f s 维持并描述的数据结构是整个虚拟的文件系统和被安装的真实的文件 系统。它具备如下功能:记录可用的文件系统类型;将设备同对应的文件联系 起来;处理一些面向文件的通用操作;涉及到针对文件系统的操作时,v f s 把 其映射到控制文件、目录及索引节点相关的物理系统中。v f s 通过超级块、索 引节点、文件操作等数据结构处理各种文件系统的公共接口嗍。 v 】f s 超级块中包含描述文件系统的f f l c _ _ s y s l c m j y p e 结构指针和该文件 系统根节点指针。不同类型的文件系统所对应的超级块读取例程必须能够理解 实际文件系统的拓扑结构,并且能够将实际的超级块结构映射为v f s 超级块结 构。v f s 超级块包含了文件系统的信息,并且还包含一些完成特定功能的函数 指针。 索引节点是m c l i n u x 管理文件系统的最基本的单位,也是文件系统连接任 何子目录和任何文件的桥梁。v f s 的索引节点同v f s 的超级块一样,是物理 设备上文件或目录在内存中的统一封装,其内容由物理设备上的文件系统指定 的操作函数填写,并且只存在于内存中。其中,联合成员i n o d c 。u 是实现的关键, 它指向某一特定文件系统的索引节点。例如,对于j f f s 2 类型的文件系统,其 闪存上的索引节点信息j f f s 2 i n o d e 复制到内存中就是一个j f f s 2i n o d c结_ i n f o 构,i n o d e u j 西s 2 j 将指向该结构。 v f s 打开具体的文件的过程如下【9 】: 1 系统调用o p c n o 函数将进程从用户空间切换到内核空间并且把控制权 交v f s 。 2 v f s 调用s y s内核函数将首先检查路径名的合法性,同时把文件open0 名从用户区拷贝到核心资料区。 7 武汉理工大学硕士学位论文 3 v f s 调用g e t _ 蛐u s e 邺d o 函数获取一个文件描述符; 4 v f s 调用f i l p _ o p e n o i 函数获得文件对应的f i l e 结构,找到欲访问文件的 索引节点,并对f i l e 结构的其它域赋值: 5 v f s 判断是否对文件进行写操作,若要进行写操作则用 g e tw r i t e 6 f i l e 结构中有一个f i l e _ o p e r a t l o n s 结构的指针f o p ,它指定了这个文件 所属的具体文件系统。v f s 检查是否存在该文件索引节点的超级块,若 存在那么将f i l e 结构挂到超级块打开的文件链表上。 7 返回这个文件的描述符后就可以通过这个文件描述符读写该文件。 2 2 2 闪存硬件驱动模块m t d m t d 是用于访问内存设备( r o m 、闪存) 的子系统。m t d 的主要目的是为了 使新的内存设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的 接口1 1 0 】 。m t d 的所有源代码在d r i v e r s m t d 子目录下。 在m t d 中c f l ( c o m m o nf l a s hi n t e r f a c e ) 公共闪存接口设备分为四层,这四 层从上到下依次是:设备节点、m t d 设备层、m t d 原始设备层和硬件驱动层。 如图2 3 【1 1 】所示。 撤文件系统文佟系统 i 字符浚锈缩点 块设筋络焱 m t o 字符设蠢新i 块设备 m t d 缀蠹f 设铸 lf t a s h 矮髂瓤,鸯 图2 3 :c f i 设备结构 8 武汉理工大学硕士学位论文 f l a s h 硬件驱动层:负责在初始化时驱动f l a s h 硬件,m t d 设备的n o r f l a s h 芯片驱动遵循c f i 接口标准,其驱动程序位于d d v e r s m t d c h i p s 子目录下。 n a n d 型f l a s h 的驱动程序则位于d r i v e r s m t d n a n d 子目录下。 m t d 原始设备层:由两部分组成,一部分是m t d 原始设备的通用代码, 另一部分是各个特定的f l a s h 的数据,例如分区信息等。其中重要的数据结构 和信息包括: ( 1 ) m t d _ i n f o 用于描述m t d 原始设备的数据结构。其中定义了大量的关 于m t d 的数据和操作函数。 ( 2 ) m t d _ t a b l e 所有m t d 原始设备的列表,在m t d c o r e 。c 中定义。 ( 3 ) m i d _ p a r t 用于表示m t d 原始设备分区的结构,其中包含了m t d _ i n f o 。 因为每一个分区都是被看成一个m t d 原始设备加在m t dt a b l e 中的, m t d _ p a r t 。m t d _ i n f o 中的大部分数据都从该分区的主分区m t d _ p a r t - m a s t e r 中获 得。 ( 4 ) 在d r i v e r s m i d m a p s 子目录下存放的是特定的f l a s h 的数据,每一个 文件都描述了一块板子上的f l a s h 。其中调用a d dm t dd e v i c e 0 、d e lm i dd e v i c e 0 建立或删除m t d _ i n f o 结构并将其加m t d _ t a b l e 入或从中删除( 或者调用 a d dm t d _ p a r t i t i o n 0 、d e l _ m t d _ p a r t i t i o n 0 ,建立或删除t u t t i _ p a r t 结构并将 m t dp a r t 。m t d _ i n f o 加入m t d 且b i c 中或从中删除) 。 m t d 设备层:基于m t d 原始设备。t c l i n u x 系统可以定义出m t d 的块设备 ( 主设备号3 1 ) 和字符设备( 设备号9 0 ) 1 1 2 1 。m t d 字符设备的定义通过注册 一系列f i l e _ o p e r a t i o n s 函数( 1 s e e k 、o p e n 、c l o s e 、r e a d 、w r i t e ) 在m t d c h a r 。c 中 实现。m t d 块设备则是定义了一个描述m t d 块设备的结构m t d b l kd e v ,并声 明了一个名为m t d b l k s 的指针数组,这数组中的每一个m t d b l kd e v 和 m t dt a b l e 中的每一个m t di n f o 一一对应 设备节点:通过m l m o d 在d e v 子目录下建立m t d 字符设备节点和 m t d 块设备节点,通过访问此节点即可访问m t d 字符设备和块设备。 根文件系统:引导程序中将具体文件系统的映像文件烧到f l a s h 的某一个 分区中,在a t c h a r m m a c h - y o u r a r c h 。c 文件的y o u t _ f i x u p 函数中将该分区作 为根文件系统挂载。 文件系统:内核启动后,通过m o u n t 命令可以将f l a s h 中的其余分区作为 文件系统挂载到挂载点上。 9 武汉理工大学硕士学位论文 2 3 本章小结 本章介绍了【i c l i n u x 操作系统由引导程序、m c l i n u x 内核和文件系统三部分 组成,其中g c l i n u x 文件系统在以f l a s h 为存储介质的情况下通常按照v f s 、具 体文件系统、m t d 和f l a s h 硬件驱动这四层实现。最后重点介绍了v f s 和m t d 的结构和作用。 武汉理工大学硕士学位论文 第3 章j f f s 2 的优势 本章从f l a s h 的物理特点,f l a s h 对文件系统的特殊要求, j f f s 2 的技术特点以 及其他文件系统存在的问题这四个方面分析采用j f f s 2 为具体文件系统来实现 , u c l i n u x 文件系统的原因。 3 1f l a s h 的物理特性 闪速存储器( f l a s hm e m o r y ) 是一种非易失性存储器n v m ( n o n v o l a t i l e m e m o r y ) 1 3 】。和其他类型存储其相比,它的优势在于: 一它在供电电源关闭后仍能保持片内信息;而d r a m 、s r a m 这类易失 性存储器,当供电电源关闭时片内信息随即丢失。 二闪速存储器能在系统中用电擦除并可重复编程,而e p r o m 需要特殊的 高电压。 三e e p r o m 相比较,闪速存储器具有成本低、密度大的特点。 这些优势使闪速存储器逐步取代其它半导体存储器件而广泛应用于移动电 子产品中。闪速存储器分为n o rf l a s h 和n a n df l a s h 两种,它们都具有以下 物理特征: 舢闪存的最小寻址单位是字节( b y t e ) ,而不是磁盘上的扇区( s e c t o r ) 。可以 从闪存的任意偏移( o f f s e t ) 处开始读数据,但不能用同样的方式写数据。 b 1 当一块闪存处在干净的状态时( 被擦过,但是还没有写操作发生) ,这 块闪存上的每一位( b i t ) 都是逻辑1 。 q 闪存上的每一位可以被写操作置成逻辑0 。但把逻辑0 置成逻辑1 不 能按位来操作,只能按擦写块( e r a s eb l o c k ) 为单位进行擦写操作。擦写块的大 小从4 k 到1 2 8 k 不等。从上层来看,擦写所完成的功能就是把擦写块内的每 一位都重设置( r e s e t ) 成逻辑1 。 d 1 闪存的使用寿命是有限的。具体来说,闪存的使用寿命是由擦写块的最 大可擦写次数来决定。超过了最大可擦写次数,这个擦写块就成为坏块( b a db l o c k ) 了。为了避免某个擦写块被过度擦写,以至于它先于其他的擦写块达到最大可 1 1 武汉理工大学硕士学位论文 擦写次数,应在尽量小的影响性能的前提下,使擦写操作均匀的分布在每个擦 写块上。 3 2 基于f l a s h 嵌入式产品对文件系统的要求 基于f l a s h 存储器的嵌入式产品通常工作在恶劣的应用环境下( 如电源供给 不稳或者突然性断电等) ,因此,它对文件系统提出了如下要求: 1 崩溃恢复( c r a s h r e c o v e r y ) : 嵌入式产品的运行环境一般比较恶劣,但同时又要求较高的可靠性,这就 对文件系统提出了较高的要求:无论程序崩溃或系统掉电,都不能影响文件系 统的一致性和完整性。文件系统的写入、垃圾回收等操作对系统异常中断都非 常敏感,极易造成数据丢失和数据垃圾,因此在文件系统设计和选用时应多加 考虑。 2 耗损平衡( w e a r - l e v e l i n g ) : f l a s h 擦除块擦除次数有限,文件系统对f l a s h 的使用必须充分考虑该特 性,最好能均匀使用f l a s h 的每个块,使每个块的擦除次数近似相等,以延长 f l a s h 的使用寿命。 3 垃圾回收( g a r b a g e c o l l e c t i o n ) : 任何存储器在分配使用过一段时间后,都会出现空闲区和文件碎片,可能 导致系统空间不够用,这就需要进行垃圾回收操作,以保证存储空间的高效使 用。 普通的磁盘操作系统垃圾收集策略相对简单,因为磁盘允许在原位置进行 回写操作,即能进行修改操作,而在f l a s h 上,这种操作是不允许的。通常f l a s h 擦除操作是以块为单位的,垃圾回收也应以块为单位,回收时先重写块上的全 部数据,然后再擦除整个块。 上面三点要求决定着嵌入式文件系统的性能,是当前嵌入式产品文件系统 选择或设计的重要参考标准。 3 3j f f s 2 文件系统的技术特点 j f f s 2 是专门针对f l a s h 设计的文件系统,综合考虑了f l a s h 存储器对文 武汉理工大学硕士学位论文 件系统的多项要求,它的技术特点如下: 1 日志技术 j f f s 2 中使用了日志技术,该技术源于大型数据库系统,其基本思想是跟踪 记录文件系统的变化,并将变化内容记录入日志旧。j f f s 2 日志的组成单位是存 储结点,每个存储结点通过一个n o d e 结点与文件或目录相关联,各个文件的存 储结点按照建立的时间先后,顺序地存储在f l a s h 上,并且在可利用的存储空间 内严格按线性增值。 j f f s 2 修改文件的所有权和访问权限时,只需在日志尾部增加一个结点项 记录新的元数据信息即可。当修改的对象是指定的文件内容时,对原有的数据 并不是采取直接覆盖的处理方式,而是在物理介质上增加新的数据结点,并用 v e r s i o n 属性值来区分新旧结点数据。因为保留了旧数据,所以如果发生系统故 障,可重放日志,使文件系统恢复一致。 2 断电保护技术 j f f s 2 是一个稳定性高、一致性强的文件系统,不论以何种方式在何时中 断电源,j f f s 2 都能保证文件系统的数据完整性和一致性,而不需像e x r 2 文件 系统那样专门配备文件系统扫描土具( 如f s c k ) 。断电保护技术的实现依赖于 j f f s 2 的日志存储结构。当系统异常中断后重新启动时,j f f s 2 自动将系统恢复 到断电前最后一个稳定状态。因为不需要启动的扫描检查,j f f s 2 启动速度相对 其他系统要快一些。 3 垃圾回收技术 j f f s 2 具有合理的垃圾回收技术,其原理是:文件系统安装时,内核创建 g c 线程,用来监视文件系统的回收信号,决定是否激活回收操作【1 6 1 。一般来说, 在两种情况下进行垃圾回收操作:一种是内核态线程需要占用更多的空间,另 一种是用户态进程发现介质上的可用空间无法满足被请求的写操作。不管是何 种情况,g c 线程将激活垃圾回收操作,对脏区进行回收。如果没有可回收的脏 块,内核线程进入睡眠状态,写操作失败,返回错误信息。 4 。耗损平衡技术 j f f s 2 中的耗损平衡以垃圾回收技术为基础,突破了j f f s l 的单个循环日 志格式,根据擦除块中的内容,将存储器上的各个块分成了8 个队列,其中最 常用到的是脏块队歹l j ( d i r t y _ l i s t 、干净块队列( c l e a nl i s t ) 及空闲块队列( f r e e _ l i s t ) 三种。脏块是指该块上至少有一个结点被标记为废弃的( o b s o l e t e d ) :干净块是指 武汉理工大学硕士学位论文 块上的数据皆有效。从而很好地解决了j f f s i 中因线性回收引起的对干净块不 必要擦除的问题,同时也提供了一种优良的耗损平衡机制( w e a r - l e v e l l i n g ) 。 5 数据压缩技术 j f f s 2 支持数据压缩存储,并提供了多种压缩解压方式,这使将更多功能 加载到嵌入式设备中成为可能。目前j f f s 2 使用的是z l i b 算法i 切,该算法尤其 适合a s c i i 文件。 3 4 其他文件系统存在的问题 目前常见的可在f l a s h 上使用的文件系统主要有三类,分别是以e 】【t 2 ,f a t 为代表的传统文件系统:以t f s 为代表的线性文件系统和以j f f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地铁施工工艺流程解析课件
- 消防安全说课课件
- 仓库保管员技师理论知识题库及答案
- 中级人力资源管理师往年考试真题
- 中央电大中级财务会计一习题及答案
- 10月8日网络安全攻防学习内容(带答案)
- 2025年三支一扶面试真题
- 全国安全生产领域“打非治违”知识竞赛试题答案
- 全面解析安全生产事故案例与警示教育试题集
- 山东省聊城教育学院工作人员招聘考试试题及答案
- 儿童粘土手工课件
- 《渗透型液体硬化剂应用技术规程》
- 2025年儿科主治考试《相关专业知识》真题卷(含每题答案)
- 2025生产安全考试题库及答案
- 2025小学道德与法治教师课标考试模拟试卷附参考答案 (三套)
- 绿化工程监理例会会议纪要范文
- 儿童寓言故事-乌鸦喝水
- 《ATM自动取款机》课件
- 2025年度建行房贷合同范本:商业贷款合同模板
- 集装箱式活动板房物流配送方案
- 体育-初中七年级田径大单元教学计划表及立定跳远教学设计、教案
评论
0/150
提交评论