(通信与信息系统专业论文)无线路由器防掉电文件系统设计与实现.pdf_第1页
(通信与信息系统专业论文)无线路由器防掉电文件系统设计与实现.pdf_第2页
(通信与信息系统专业论文)无线路由器防掉电文件系统设计与实现.pdf_第3页
(通信与信息系统专业论文)无线路由器防掉电文件系统设计与实现.pdf_第4页
(通信与信息系统专业论文)无线路由器防掉电文件系统设计与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(通信与信息系统专业论文)无线路由器防掉电文件系统设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 在嵌入式系统中,由于闪存具有容量大、速度快、功耗低等优点,越来越 广泛地用作系统的外部存储设备。闪存是e e p r o m 的一种,主要分为n o r 或 非和n a n d 与非两种。大部分闪存文件存储应用都需要把闪存设备模拟成每扇 区5 1 2 字节的块设备,再在模拟的设备上使用标准的文件系统。这种实现无法 避免在向扇区擦除和之后的写入过程中掉电对文件系统造成的损害。 j f f s j f f s 2 是新出现的专门针对闪存设计的文件系统,直接在闪存之上实现损 耗平衡和防掉电。但是j f f s j f f s 2 支持的闪存设备类型有限。 在我们课题所涉及的无线路由器上,硬件只支持d i s ko nc h i p 与c o m p a c t f l a s h 两种设备。d o c 是一种与非闪存,在l i n u x 中通过n f t l 对系统表现为 普通的块设备,在其上可使用普通的文件系统。实验表明,在d o c 上使用普 通的文件系统,系统几乎不具备防掉电性。c f 是一种或非闪存,芯片内部使用 了f t l 的技术,无法直接被j f f s j f f s 2 支持,只能在其上使用普通的文件系 统或通过一种技术将其模拟成i f f s j f f s 2 支持的m t d 设备。实验表明,这种 模拟技术虽然可以提高系统的防掉电能力,但会对c f 的使用寿命造成一定的 影响。 考虑到大多数嵌入式l i n u x 系统的特点,即系统运行时虽然会向文件系统 写入很多文件、但大多数情况下不用对这些数据进行持久保存,本文从实验系 统的实际情况出发,设计了一种新的文件系统技术。该技术将l i n u x 系统正常 运行时的文件写操作均放在内存中,只有在需要对文件进行持久保存的时候才 会在很短的时间内将修改过的文件保存到闪存中。该文件系统中还设计了一些 容错技术,即使在向闪存写入的过程中意外掉电,系统在下次启动时也能够检 测并自动修复。另外根据l i n u x 根文件系统自身的一些特点,该技术将只读的 文件以支持压缩的文件系统格式存放在闪存中,以提高闪存的利用率;而对于 可写文件在保存时则采用普通的文件系统格式,由闪存内部的f t l n f t l 来实 现损耗平衡。该技术充分利用了l i n u x 内核支持的各种文件系统格式,对其进 行优化组合,特别适合于一般嵌入式l i n u x 系统。 关键词:嵌入式l i n u x 、文件系统、防掉电 a b s t r a c t f l a s hm e m o r yi se v o l v i n gi nt h ee m b e d d e ds y s t e m sd u et oi t sa t t r a c t i v ef e a t u r e s s u c ha sl a r g ec a p a c i t y ,f a s ta c c e s ss p e e da n dl o wp o w e rc o n s u m p t i o nf l a s hi sa f o r i l lo f e e p r o m , a v a i l a b l em a i n l yi nt w ot y p e s t h et r a d i t i o n a ln o r f l a s ha n dt h e n e w e rn a n df l a s h t h em a j o r i t ya p p l i c a t i o n so f f l a s hf o rf i l es t o r a g eh a v ei n v o l v e d u s i n gt h ef l a s ht oe m u l a t eab l o c kd e v i c ew i t h5 1 2b y t e ss e c t o r s o nt o po f w h i c h u s i n g s t a n d a r df i l e s y s t e m s t h i sa p p r o a c hp r o v i d e s n ow e a r l e v e l i n g ,a n d i s e x t r e m e l yu n s a f ew i t ht h ep o t e n t i a lp o w e r1 0 s sb e t w e e nt h ee r a s ea n ds u b s e q u e n t r e w r i t eo ft h ed a t a 下s j f f s 2a r et h en e w l ye m e r g i n gf i l e s y s t e m ss p e c i f i c a l l y d e s i g n e df o r f l a s hm e m o r y , w h i c h p r o v i d ew e a l - l e v e l i n gd i r e c t l yo n t h e c h i pa n d a r e c r a s h p r o o fb e c a u s et h e ya r el o g - s t r u c t u r e d h o w e v e r , j f f s j f f s 2o n l ys u p p o r t s l i m i t e dn u m b e ro f t y p e so f f l a s h e s t h em a i n b o a r do ft h ew i r e l e s sr o u t e ri no u rp r o j o c to n l ys u p p o r t st h ed i s ko n c h i pa n dt 1 1 ec o m p a c tf l a s ha st h eo n b o a r de x t e m a ls t o r a g ed e v i c e d o c i sat y p e o f n a n df l a s hd e v i c ea n de m u l a t e db yt h en f t la san o r n l a lb l o c kd e v i c e ,o nt o p o fw h i c h y o um a yp u tt h en o r m a lf i l es y s t e m se x p e r i m e n t so n t h ew rs h o wt h a t u s i n gt h en o r m a lf i l es y s t e m so n d o ci sn o tc r a s h p r o o fc fi sat y p eo f n o rf l a s h a n di tc a n n o tb ed i r e c t l ys u p p o r t e db yi f f s 册f s 2 i ts u p p o r t st h en o r n l a lf i l e s y s t e m sb yi n t r o d u c i n gt h ef t l ,o r w i t hm t de m u l a t i o nu s i n gb l o c kd e v i c e ,i ti s f e a s i b l et o p u tt h ej f f s i 骚f s 2f i l es y s t e m so nc 暑e x p e r i m e n t ss h o wt h a t s u c h e m u l a t i o ni m p r o v e st h ec r a s h p r o o fp e r f o r m a n c eo ft h es y s t e m , b u ti ta l s og r e a t l y r e d u c e st h el i r ec y c l eo f f l a s hc h i p c o n s i d e r i n gt h ec h a r a c t e r i s t i c so fm o s te m b e d d e dl i n u xs y s t e m s ,t h a tt h o u g h t h es y s t e mw r i t e sm i s c e l l a n e o u sf i l e sa tr u n t i m e ,m o s to f t h e mn e e dn o tb ep e r s i s t e n t a c r o s sr e b o o t s ,t h i sp a p e rp r o p o s e dan e wf i l es y s t e mt e c h n o l o g y , w h i c hm o v e sa l l t h ew r i t eo p e r a t i o n so nt h ef i l e si n t or a m a tr u n t i m ea n do n l ys a v e st h em o d i f i e d f i l e sb a c kt ot h ef l a s hw i t h i nas h o r tt i m ew h e nt h ep e r s i s t e n ts t o r a g ei sn e e d e d i t a l s oh a sa d o p t e ds o m ef a u l t t o l e r a n c em e c h a n i s m st od e t e c ta n dr e c e v e r yf r o m a c c i d e n t a lp o w e rl o s s e se v e nw h e nt h es e l d o ms a v i n gp r o c e s si sr i g h ti np r o g r e s st o m a k et h em o s te f f i c i e n tu s eo f t h ef l a s hc h i p ,t h er e a d - o n l yf i l e sa r ec r a m m e d i n t oa c o m p r e s s e df i l es y s t e m ;a sf o rt h er o w r i t a b l ef i l e s ,i tu s e st h en o r m a lf i l es y s t e m s w i t ht h ec h i pb u i l t i nf t l n f t lt op r o v i d ew e a ll e v e l i n g t h e t e c h n o l o g yp r e s e n t e d i nt h ep a p e rm a k e st h eb e s tc o m b i n a t i o no ft h ef i l es y s t e mf o r m a t st h a tt h el i n u x k e r n e ls u p p o r t sa n di ti se s p e c i a l l ys u i t a b l ef o re m b e d d e d l i n u x s y 7 s t e m s k e y w o r d s :e m b e d d e dl i n u x ,f i l es y s t e m ,c r a s h - p r o o f i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献已在论文中作了明确的说明并表示谢意。 签名: 寇金军 日期:2 0 0 4 年6 - 月j o 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅 和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复印手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:寇仓霉导师签名:趟 日期:2 0 0 4 年岁月d 目 c f d o c e x t 2 e x t 3 f h s f t l i n i t r d j f f s j f f s 2 k t r p k r a m m t d n f t l ra r s t l 皿f s v f s 符号与缩略语说明 c o m p a c t f l a s h d i s k o n c h i p e x t e n d e df i l es y s t e m ,v e r s i o n2 e x t e n d e df i l es y s t e m ,v e r s i o n3 f i l es y s t e m h i e r a r c h ys t a n d a r d f l a s ht r a n s l a t i o nl a y e r i n i t i a lr a md i s k j o u r n a l i n g f l a s hf i l es y s t e m j o u r n a l i n gf l a s h f i l es y s t e m ,v e r s i o n2 k e r n e lt r e er o u t i n gp r o t o c 0 1 k t r pr o u t e ra r c h i v em a n a g e r m e m o r yt e c h n o l o g y d e v i c e n a n df l a s ht r a n s l a t i o nl a y e r r a n d o ma c c e s sm e m o r y f i l es y s t e m t e m p o r a r y f i l es y s t e m v i r t u a lf i l es y s t e m 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 第一章引言 随着信息技术的不断发展,嵌入式系统越来越多地在控制类、消费类、通 讯类等电子产品中广泛应用,数据的存储与管理是在实际应用中不容回避的问 题。在嵌入式系统中常用的外部存储设备一般为闪存芯片,由于这些设备本身 的一些特点,给文件系统提出了一些新的要求。如何在现有技术的基础上构建 一个稳定可靠的用于嵌入式系统的文件系统便是本文的核心任务。 1 1 课题介绍 本文是国家8 3 6 项目“无线移动自组织互联网技术及实验系统研制“的一 部分。在研究的过程中,课题划分为实验平台与链路驱动、自组织动态路由、 用户管理与用户路由跟踪、网络性能分析与仿真、网络管理和安全研究等六大 部分。 该系统由少量的无线网点和大量的移动用户组成,其中的无线网点就是无 线路由器( w i r e l e s sr o u t e r ) 。我们首先需要解决的问题就是如何在工控板 p c m - c 2 6 上构建一个嵌入式l i n u x 系统,该系统需对标准的t c p i p 协议栈进 行一定的修改以满足我们设计的无线网络,另外,还要在其上实现专门的无线 路由模块、r a d i u s 认证客户端、用户接入管理以及w w w 、t e l n e t 和s n m p 配置模块等。 1 2 研究背景 在我们需要构建的嵌入式l i n u x 系统中,几个主要模块应该以用户空间守 护进程的形式来实现,这些模块在运行时可配置的,对应地会有些配置文件, 这样在我们的系统中就不可避免地要遇到很多与文件系统相关的问题。 课题所涉及的无线路由器在硬件上只支持d i s k o n c h i p 与i d ec o m p a c t f l a s h 两种设备。d i s k o n c h i p 是一种与非闪存,在l i n u x 中通过n f t l ( n a n d f l a s ht r a n s l a t i o nl a y e r ) 对操作系统表现为普通的块设备,这样便可在其上使用 为普通块设备设计的文件系统。实验表明,在d o c 上使用普通文件系统,系 统几乎不具备防掉电性,轻者丢失文件,严重时甚至使整个文件系统遭到破坏, 造成系统崩溃。对于系统支持的另外一种闪设备c o m p a c tf l a s h ,它是一种或非 课题编号2 0 0 1 a a l 2 3 0 3 2 。 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 闪存,但由于其芯片内部使用了f t l ( f l a s ht r a n s l a t i o nl a y e r ) 技术,无法直 接被为可线性寻址闪存设备设计的j f f s j f f s 2 文件系统支持,只能在其上使用 普通的文件系统或通过一种技术将其模拟成j f f s j f f s 2 支持的设备来使用 j f f s j f f s 2 文件系统。实验表明,这种模拟技术从一定程序上虽然可以提高系 统的防掉电能力,但会对c f 的使用寿命造成较大的影响。 如何在现有技术的基础上构建一个稳定可靠用于嵌入式系统的文件系统便 成了本课题一项重要的任务。 1 3 论文工作 本文反映了笔者在实验平台与链路驱动子专题部分的软件平台搭建方面所 作的工作: 1 分析现有文件系统技术在c 2 6 系统中的可行性,并主要针对防掉电 防崩溃性能作了测试; 2 设计并实现了一种新的文件系统解决方案,不仅适合于c 2 6 系统,也 适合于一般的嵌入式系统; 3 对该系统进行了进一步的扩展,实现了通过网络进行文件系统升级的 功能。 本文后续章节内容安排如下: 第二章分析嵌入式系统中常用的文件系统技术及在c 2 6 系统中的问题 第三章设计一种新的防掉电文件系统解决方案 第四章分析实现过程中的一些关键技术并对系统作了一些扩展 第五章列出了新系统的一些实验数据 第六章工作总结 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 第二章现有文件系统技术分析 严格地讲,“文件系统”这个词包含两层意思,第一层是指文件系统的格式, 如e x t 2 f s 、c r a m f s 和j f f s 等这些不同类型的文件系统格式:第二层意思是指 文件系统的结构1 es y s t e mh i e r a r c h y ) ,也称为根文件系统,即文件在系统中的 层次布局。本章将分别对嵌入式系统中这两方面的的技术现状作简要介绍,然 后引出本文要研究的问题。 2 1 嵌入式系统中常用文件系统格式简介 l i n u x 内核支持为数众多的文件系统格式,以满足不同的需求和应用场合。 本节将对嵌入式系统中常用的文件系统格式作简要的介绍。 2 1 1e x t 2 e x t 3 e x t 2 f s 是l i n u x 事实上的标准文件系统,主要工作在如硬盘和c d r o m 这 样的块设备上,其主要优点有: e x t 2 f s 支持达4t b 的文件系统; e x t 2 f s 文件名称最长可以到1 0 1 2 个字符; 创建文件系统时,可以选择逻辑块的大小; e x t 2 f s 了实现快速符号连接,在连接内容小于1 6 字节时,可将目标名 称直接存储在索引节点( i n o d e ) 表中,这使性能有所提高。 e x t 3 f s 是e x t f s ( 扩展文件系统) 最新的版本,它对e x t 2 f s 主要作了两方面 的改进: 支持文件访问控制列表( a c l s ,a c c e s sc o n t r o l l i s t s ) ; 日志记录,在重新挂接( m o u n t ) 文件系统时自动恢复。 因为e x t 2 e x t 3 文件系统的稳定性、可靠性和健壮性,几乎所有基于l i n u x 的系统( 包括台式机、服务器和工作站甚至一些嵌入式设备) 上都使用 e x t 2 e x t 3 文件系统。但是,e x t 2 e x t 3 文件系统有一些不适合在嵌入式设备中 直接使用的缺点: 不支持损耗平衡( w e a r - l e v e l i n g ) 1 ,因此缩短了扇区闪存的寿命; 是为块设备设计的,这些设备的逻辑块大小是5 1 2 字节,1k 字节等 损耗平衡是将地址范围的不同区域轮流用于写操作以延长闪存设备的寿命的一种技术。 3 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 这样的倍数,这不太适合于扇区大小因设备不同而不同的闪存设备; 没有提供对基于扇区的擦除写操作的良好管理,为了在个扇区中擦 除单个字节,必须将整个扇区复制到r a m ,然后擦除,然后重写入; 没有特别完美的扇区管理,使设计块驱动程序十分困难: 在出现电源故障时,e x t 2 f s 不是防崩溃的,e x t 3 臼虽有日志功能,但因其 是为块设备设计的,也不适合嵌入式设备中常用的闪存设备。 顺便指出,r e i s e r f s 也是一种日志文件系统,可作为标准l i n u x 文件系统 e x t 2 的替代品。在正常的操作过程中,r e i s e r f s 把文件系统结构( m e t a d a t a ) 的所有变化都记录在磁盘上的一块特殊的日志区域内,启动时根据该区域的日 志数据来恢复文件系统的一致性,而不用像非日志文件系统那样检查整个文件 系统。但是,r e i s e r f s 的日志区域当前固定为3 0 m b ,这使得它不大适合存储 空间小于1 0 0 m b 的系统。 2 1 2c r a m f s c r a m f s 文件系统设计得非常简单小巧,是一种只读的文件系统。 c r a m f s 支持的最大文件为1 6 m b ,最大文件系统大小稍大于2 5 6 m b ( 最 后一个文件可超出此2 5 6 m b 的界限) 。 c r a m f s 使用z l i b 例程来按页压缩文件,允许对页随机访问:c r a m f s 对文 件系统结构并不压缩,但使用更简洁的方式来描述,使之占用的磁盘空间比传 统文件系统少得多。 c r a m f s 的文件系统结构的简洁性体现在以下几方面: 只保存组i d 的低8 位; 支持硬连接,但硬连接的文件在c r a m f s 映像内的连接数还是为1 ; 目录没有“”和“”这两项,目录的连接数为1 ; 文件没有时间戳,默认值为e p o c h ( 1 9 7 0g m t ) ,最近访问过的文件 可以有更新过的时间戳,但这只在该文件的索引节点( i n o d e ) 缓存在内 存中的时候才有,在这之后,又将“回到”e p o c h 。 由于c r a m f s 的这些特点,制作c r a m f s 文件系统的方法有点特殊,必须 用m k c r a m f s 这个工具来生成文件系统映像。 2 】3j f f s j f f s 2 j f f s ( j o u r n a l i n g f l a s hf i l es y s t e m ) 由瑞典的a x i sc o m m u n i c a t i o n s 开发。 在它出现之前,大部分闪存文件存储应用都需要把闪存设备模拟成每扇区5 1 2 4 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 字节的块设备,再在模拟的设备上使用标准的文件系统。这种实现无法避免在 向扇区擦除和之后的写入过程中掉电对文件系统造成的损害。为了提供损耗平 衡和可靠的操作,一般把模拟的扇区存按不同的位置存在设备上,然后用一种 翻译层来来记录这种转换,f t l 与n f t l 便是两种常见的技术。j f f s 的主要特 点有: 直接在闪存上提供文件系统( 而不是通过模拟块设备来实现) ,在扇区 级别上执行闪存读写操作。 设计在闪存芯片上使用,能识别闪存芯片特殊的写请求; 通过损耗平衡来延长闪存寿命; 将闪存目录结构始终放在内存中; 实现了日志结构化( 1 0 9 s t r u c t u r e d ) 的文件系统。 j f f s 有一些不足之处。j f f s 是日志结构化的,也就是说j f f s 基本上是一 长列节点,每个节点包含有关文件的部分信息。这种日志存在垃圾收集的问题, j f f s 对垃圾收集不是增量处理,而是在回收的过程中阻塞读操作,这个过程可 能会持续几秒。另外,在写入闪存的过程中多次掉电也有可能导致j f f s 文件 系统失败。 r e dh a t 的d a v i dw o o d h o u s e 对j f f s 进行了改进,发布了j f f s 的第二个 版本,即j f f s 2 。主要的改进有: 提高损耗平衡和垃圾回收的性能; 支持挂起闪存擦除操作( s u s p e n d i n g f l a s he r a s e s ) ,改善并发性能; 标记坏扇区并继续使用剩余的好扇区,以增加设备写的寿命; 支持文件系统压缩( 压缩效率略低于c r a m f s ) i 支持硬连接( h a r d l i n k s ) 。 当文件系统己满或接近满时,j f f s 2 会大大放慢运行速度。这是因为垃圾 收集的问题。实验表明,j f f s 2 的容错性( f a u l tt o l e r a n c e ) 相对于j f f s 虽有 很大的改善,但在某些情况下,还是有可能发生错误,甚至导致挂接操作失败。 j f f s 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 ) 基础上的文件系 统。m t d 设备是像闪存芯片、小型闪存卡、记忆棒之类的设备。在l i n u x 内核 中,m t d 是专门用于访问闪存设备的子系统,以简化闪存设备的驱动程序。 m t d 向上提供两个接口,m t d 字符设备和m t d 块设备,通过这两个接口, 可以像读写普通文件一样读写闪存设备。为了访问特定的闪存设备并将文件系 统置于其上,需要将m t d 子系统编译到内核q a 4 。 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 注意,j f f s f f f s 2 目前只能工作在m t d 层支持的线性设备上,如s r a m 、 d r a m 和f r a m 等,不能工作在d o c 、c o m p a c tf l a s h 或d ec o m p a c tf 1 a s h 上 4 】。 2 1 4r a m f s t f s r a m f s 顾名思义是内存文件系统,它将所有的文件都放在内存中,支持 对文件进行读写操作。r a m f s 设计巧妙,利用虚拟文件系统( 、,j n u a lf i l e s y s t e m ) 的结构来实现,r a m f s 本身没有文件存储结构,它的文件存储于页 面缓存( p a g ec a c h e ) 中,目录结构由d e n t r y 链表描述,文件则由w s 的i n o d e 结构描述。 r a m f s 与r a m d i s k 最大的不同在于:r a m f s 占用的内存大小随其包含 文件的大小而增加或减少,而r a m d i s k 会占用固定大小的内存。另外r a m f s 工作于虚拟文件系统层,使用前不必格式化,而且可以创建多个r a m f s ,在 创建时可以分别指定其最大能使用的内存大小;而r a m d s 是虚拟成主设备 号为l 的块设备,使用前需要进行格式化,其大小在编译内核的时候指定。 r a m d i s k 虽然有些不足,但在“n u x 内核2 0 的时候就有了,现在i n i t r d 仍 然是使用r a m d i s k 来实现。r a m f s 在l i n u x 内核2 4 中才支持。 缺省情况下,r a m f s 最多可使用内存大小的一半,可以通过参数m a x s i z e ( 单位k b ) 来改变。使用r a m f s 的方法很简单,挂接到某个空目录就行了, 下面这条语句在m n f f t e s t l 目录创建了一个最大大小为1 0 m b 的r a m f s 文件系 统; m o u n t tr a m f sn o n e r m t t e s t l om a x s i z e = 1 0 2 4 0 t m p f s 是虚拟内存文件系统,与r a m f s 最大的差异在于r a m f s 是基于 物理内存的文件系统,而t m p f s 是基于虚拟内存的,也就是说t m p f s 既可使 用物理内存,也可以使用交换分区。在l i n u x 内核中,虚拟内存资源由物理内 存和交换分区组成,这些资源由内核中的虚拟内存子系统来负责分配和管理。 t m p f s 的实际大小也是不固定的,可随着所需空间而动态增减。 为了在用户空间使用t m p f s ,需要在编译内核的时候选择 c o n f i gt m p f s ,即使未选择c o n f i gt m p f s ,t m p f s 在内核中也是可用的, 因为p o s i x 共享内存对象需要在d e “s h m 挂接一个t m p f s 文件系统。 缺省情况下,t m p f s 最多可使用内存和交换分区大小的一半,可通过参数 s i z e 来改变,该参数可用k 、m 和g 作单位。使用t m p f s 的方法也很简单,下 面这条语句在m n f f t e s t 2 目录创建了一个最大大小为1 0 m b 的t m p f s 文件系统: m o u n t t t m p f st m p f s 眦t t e s t 2 一o s i z e = 1 0 m 6 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 r a m f s 与t m p f s 中的文件在系统重启后将丢失。 2 2 嵌入式系统文件系统技术现状 构建一个嵌入式l i n u x 系统,首先需要构建个满足实际应用要求的裁减 过的根文件系统, 8 】对此作了非常深入的研究。对于我们的课题来说,由于使 用了m o n t a v i s t al i n u x ,其中的t c t ( t a r g e t c o n d 工具可以很方便地完成这部分原 本枯燥繁琐的操作。这部分准备好之后,就可以开始着手向目标机移植文件系 统了。 将根文件系统应用到嵌入式系统中,最简单的方法就是按照p c 机上的方 式在嵌入式系统中组织根文件系统,文件系统格式沿用e x t 2 e x t 3 。文件系统的 组织结构一般有两种,第一种是将整个根文件系统全部放在一个根分区中;第 二种结构作了一些改进,将其中的b o o t 目录分离出来,单独放在一个启动分区 中。无论是哪种结构,如果根分区不挂接为只读的话,都会使系统不具备防掉 电防崩溃的能力。 在一些支持m t d 设备的专用嵌入式系统中,较常用的改进方案是将文件 系统格式由e x t 2 e x t 3 改为j f f s j f f s 2 ,使系统具备较强的防掉电防崩溃能力, 但这需要有专门的储存设备支持。 在嵌入式系统中,对储存设备的要求总是越小越好,所以如果文件系统支 持压缩的话,将是不错的选择。j f f s 2 与c r a r n f s 便是两种常用的方案。j f f s 2 文件系统可读可写,只对文件的内容进行压缩,c r a m f s 是只读文件系统,不 仅压缩文件内容,对文件结构还要作一些有损压缩。一般来说,c r a m f s 对文 件系统的压缩比要优于j f f s 2 ,几乎可以接近1 :2 。鉴于c r a m f s 与j f f s 2 的不 同特性,如果把这两者结合起来,既能发挥c r a r a f s 压缩比高的优势,又能发 挥j f f s 2 可读可写的特点,将是种比较优化的策略 2 】。 另外,考虑到存储设备的使用寿命,一种常用的解决方案是将需频繁写入 的系统日志和临时文件目录( v a t 与t r a p ) 放在内存中,可用t m p f s 来实现 3 】。 由于在嵌入式系统中大都使用了比较复杂的文件系统技术,一般需要在内 核初始化完成之后、i n i t 进程运行之前进行一些额外的初始化工作,如加载内 核模块、挂接额外的文件系统等,这些情况下就需要用到i n i t r d 9 。 2 3 问题的提出 本文是国家8 6 3 项目“无线移动自组织互联网技术及实验系统研制”中实 验软件平台建设部分的关键课题之一。本项目中,无线路由节点的主板为嵌入 7 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 式工控机p c m - c 2 6 ,硬件结构如图2 - 1 所示。 图2 1p c m c 2 6 的硬件结构图 c 2 6 主板内置了d i s k o n c h i p 与d ec o m p a c tf l a s h 两种接口,l i n u x 内核 2 4 支持这两种不同的储存设备接1 2 1 1 4 1 1 7 】。实践中,我们在c 2 6 系统上对d o c 和i d ec f 均作了较为详细的实验和测试,对于嵌入式应用来说,目前都存在 一些问题。 l i n u x 内核对d o c 的支持是通过n f t l ( n a n df l a s ht r a n s l a t i o nl a y e r ) 来实现的,n f t l 在闪存设备上使用一种伪文件系统来模拟每扇区5 1 2 字节的 块设备,然后再在模拟的块设备上使用普通的文件系统 6 】。在l i n u x 中使用 d o c 相对于c f 要复杂一些,m a r km e a d e 对l i n u x + d o c + g r u b 写了篇很详细 的文档 7 ,可根据该文档来使用d o c 。由于d o c 通过n f t l 表现为普通的块 设备,所以一般在d o c 中使用的文件系统格式为e x t 2 e x t 3 ,而j f f s y f f s 2 无 法用于d o c 4 1 。d o c 的擦除写入的单位大小为一般为3 2 k i b ( 或6 4 k i b ,因 型号而异) ,如果在d o c 上使用e x t 2 e x t 3 格式的根文件系统,那么即使要修 改某个扇区中的一个字节,也需要从d o c 中读出3 2 k i b 的内容,在内存中合 并,接着擦除d o c ,然后再将3 2 k i b 全部写入到d o c 中。如果在擦赊和写入 的过程中,发生意外掉电,整个3 2 k i b 的内容都会受到影响,因此整个系统的 防掉电防崩溃能力将大打折扣,无法满足实际应用的要求。实践证明,在这种 情况下,经定几次意外掉电后,将对文件系统造成很大的损害,严重时甚至使 l i n u x 系统无法启动。 在l i n u x 系统中使用c f 卡比较容易,因为c f 卡直接对系统表现为1 d e 设备,可按普通i d e 设备的方法对其分区和创建文件系统。如果在c f 卡上直 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 接使用e x t 2 e x t 3 文件,也会遇到防掉电防崩溃性能差的问题。对于c f ,有一 种折衷的办法来使用j f f s j f f s 2 ,即使用内核的m t de m u l a t i o nu s i n gb l o c k d e v i c e 功能( 需选择c o n f i gm t d 和c o n h gm t db l k h 仃d ) ,使块设备 看起来像一个m t d 设备。但是在这种情况下,由于c f 卡芯片内部使用了f t l 技术来实现块设备模拟和损耗平衡,它与j f f s j f f s 2 的损耗平衡叠加在一起, 无法有效发挥j f f s j f f s 2 的损耗平衡功能 6 ,此时j f f s j f f s 2 仅仅是具有一 定防掉电防崩溃的文件系统。附录a5 对这种配置作了防掉电性能测试,实 验表明,由于损耗平衡特性的丧失,对c f 卡的寿命造成了很大的影响,以至 于j f f s 2 分区中部分单元的物理损坏使该分区无法挂接到系统中,造成了系统 的崩溃。 鉴于现有技术在c 2 6 系统中不能达到较好的实用效果,研制一种新的文件 系统解决方案对我们的项目来说势在必行。解决问题的思路有两个:第一个是 设计种新的文件系统格式或对现有的j f f s 2 格式作一定修改,以满足系统的 要求;第二个思路是利用现有文件系统格式,但通过设计一种新的根文件系统 组织技术来实现。由于第一种方案的工作量很大,对整个项目来说有点得不偿 失,而且由于内部机制的原因,从技术上讲不一定能获得较好的实际效果,所 以最终选择了第二个思路来做进一步的研究。 ! 梦社技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 第三章一种新的防掉电文件系统的设计 由上一章的介绍可以看出,在嵌入式l i n u x 系统中,使用任何一种单一的 文件系统技术,都不能达到令人满意的结果。既然如此,可以针对嵌入式l i n u x 系统的特点,根据不同的需要选取不同的文件系统类型,来设计- - + q + 新的方案。 3 1 设计目标 作为新设计的文件系统,为了适合嵌入式系统,应该具备以下两个目标: i ,必须具有掉电保护功能,使系统具有较高的可靠性 2 避免频繁向闪存写数据,以延长闪存设备的使用寿命 对于一个嵌入式l i n u x 系统,特别是我们课题中的无线路由器来说,其最 大特点是大部分文件在系统运行的过程中是不会被修改的,只有- - 4 部分的配 置文件可能会被修改。因此设计目标可以进一步细化为: 1 只读文件放在一个独立的只读分区上,不向该分区写入数据,以保证系 统的稳定性。同时由于该分区文件较多,占用的空间较大,可适当采用 压缩技术。 2 系统正常运行的文件写操作只发生在内存中,只有在需要持久保存数据 的时候才能将其写到独立的可写分区上。在可写分区产生错误的情况 下,不应影响整个系统的正常运行。 在本章下面几节中,将根据这两个目标来设计文件系统。 32l i n u xf i l es y s t e m h i e r a r c h y 在正式开始讨论设计之前,先来考查l i n u x 的文件系统层次结构( f i l e s y s t e mh i e r a r c h y ) ,详细的信息请参考【l 】,这里仅结合l i n u x 简述如下: 表3 - 1l i n u xf i l es y s t e m h i e r a r c h y 目录名主要作用 i b 。t 引导装载程序和内核的静态文件。 厂b i n 重要的用户命令的可执行文件,如i s ,c a t 等。 s b i n系统可执行文件( 特权命令) 。 电子科技大学硕士学位论文:无线路由器防掉电文件系统设计与实现 分析表3 - 1 ,可以把这些目录划为如下三类: 1 只读目录:b o o t ,b i n , s b i n ,l i b ,u s r 2 很少写入的目录:r a n t ,d e v , p r o c ,e t e ,r o o t ,h o m e ,o p t 3 频繁写入的目录:v a r , t r a p 注:l i b 目录中有少部分是可能会写入的,关于这个问题将在附录a 4 中 讨论。 在一个实际的l i n u x 系统中,需要b o o t l o a d e r ( 引导装载程序) 来引导系 统。引导装载程序通常是在任何硬件上执行的第一段代码。在我们所采用的 c 2 6 系统上,使用了与p c 机相同的技术,即将引导装载程序装入主引导记录 ( m a s t e rb o o tr e c o r d ,m b r ) 中,或者装入l i n u x 驻留的磁盘的第一个扇区 中。l i n u x 常用的引导装载程序有l i l o ( l l n u xl o a d e r ) 和g r u b ( g r a n d u n m e d b o o t l o a d e r ) 两种。由于g r u b 更加灵活方便,所以在c 2 6 系统中采用 了g r u b 作为b o o t l o a d e r 。考虑到g r u b 只支持如下格式文件系统:f f s 、j f s 、 m i n i x 、x f s 、e x t 2 f s 、r e i s e r f s 、f a t 和v s t a f s 。这比l i n u x 内核支持 的文件系统类型要少,而且最重要的是g r u b 支持的文件系统类型中,没有支 里兰型望盔堂堕圭兰垡堡塞! 垂堡堕堕矍堕垫皇塞堡墨竺堡生兰塞翌 持压缩的类型,这不满足第个设计目的。因此在设计中还应该加入一块相对 独立的分区,来存放系统引导文件。也就是说,只读目录可以进一步划分为如 下两部分: 1 b o o t 2 b i n ,s b i n ,l i b ,u s r 第一部分应该是g r u b 所支持的文件系统类型,其中主要g r u b 的文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论