μClinux文件系统的实现与改进策略研究

μClinux文件系统的实现与改进策略研究

论文摘要

μClinux是当前最流行嵌入式操作系统之一。专门针对没有MMU的处理器而设计,其性能稳定、移植性好、功能强大。文件系统是μClinux操作系统中重要的组成部分,在大容量Flash成为嵌入式产品主要存储介质的情况下,更对μClinux文件系统提出了针对大容量数据频繁交换的新要求。μClinux文件系统在Flash存储设备上的实现通常由VFS(Virtual Filesystem Switch),具体文件系统,MTD(Memory Technology Device)和硬件驱动四部分组成。其中,VFS,MTD和硬件驱动的结构通常固定,而具体文件系统的选择却非常多。μClinux文件系统性能的差别主要体现在其所采用的具体文件系统上,实现μClinux文件系统的关键就是具体文件系统的实现。目前,μClinux上最常用的具体文件系统是JFFS2(Journalling Flash File System 2),JFFS2采用了新的存储方式和独特的垃圾收集机制,可支持耗损平衡,具有和断电保护功能。但JFFS2设计之初默认嵌入式产品中Flash的容量并不大,在当前普遍使用大容量Flash存储设备的嵌入式系统中,存在着容错校验效果不理想和启动加载时间较长的缺陷。本文的研究重点是上述缺陷的改进办法。针对JFFS2容错校验效果不佳的问题,本文分析了JFFS2中存储和校验方式的缺陷,提出重校验海明码的编码和校验机制。与常用的编码校验机制相比,该机制编解码速度快,数据纠错能力强。本文还根据数据精度要求的不同,提出分级存储的思想,对精度要求高的数据采用编码存储,其他数据普通存储,以节省存储空间,提高存取速度。最后,本文对JFFS2文件系统做了相应的修改,更改了JFFS2节点的存储结构和存取函数,达到增强JFFS2容错校验的效果。针对文件加载时间较长的问题,本文通过重新定义新的结点类型,用来描述Flash擦除块的相关信息。这样,文件系统就可直接读取此类结点,建立相应的块内存映像。同时,考虑到常见的嵌入式设备在实际使用中对文件的读写操作相对较少,还可将建立索引结点分布图的操作尽量放到读写文件之前执行,以减少读取磁盘数据的次数,缩短文件加载时间。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 课题背景
  • 1.2 JFFS2文件系统简介
  • 1.3 国内外研究状况
  • 1.4 论文的组织结构
  • 第2章 μClinux文件系统
  • 2.1 μClinux操作系统简介
  • 2.2 μClinux文件系统的结构和工作原理
  • 2.2.1 虚拟文件系统VFS
  • 2.2.2 闪存硬件驱动模块MTD
  • 2.3 本章小结
  • 第3章 JFFS2的优势
  • 3.1 Flash的物理特性
  • 3.2 基于Flash嵌入式产品对文件系统的要求
  • 3.3 JFFS2文件系统的技术特点
  • 3.4 其他文件系统存在的问题
  • 3.5 本章小结
  • 第4章 JFSS2文件系统的分析
  • 4.1 数据实体
  • rawinode'>4.1.1 jffs2rawinode
  • rawdirent'>4.1.2 jffs2rawdirent
  • 4.2 垃圾收集策略的分析
  • 4.2.1 垃圾收集的原理
  • 4.2.2 垃圾收集的过程
  • 4.3 挂载过程分析
  • 4.3.1 挂载过程的实现技术
  • 4.3.2 分析
  • 4.4 编码和校验机制
  • 4.4.1 CRC校验码的特点
  • 4.4.2 CRC校验的工作原理
  • 4.4.3 JFFS2中CRC校验的应用
  • 4.5 JFSS2文件系统的局限性
  • 4.5.1 挂载时间过长
  • 4.5.2 容错校验效果不理想
  • 4.6 本章小结
  • 第5章 JFFS2容错校验机制的改进
  • 5.1 校验码的选择和设计
  • 5.1.1 常见编码分析
  • 5.1.2 海明码的编码和解码
  • 5.1.3 长码距海明码的引入
  • 5.1.5 重校验策略的提出
  • 5.1.6 重校验海明码
  • 5.2 JFFS2文件系统的修改
  • 5.2.1 数据存储管理策略
  • 5.2.2 文件名解析器的设计
  • 5.2.3 编码和解码函数
  • 5.2.4 节点数据结构的修改
  • 5.2.5 文件创建的修改
  • 5.2.6 对文件读写操作的修改
  • 5.3 本章小结
  • 第6章 JFFS2挂载过程的改进
  • 6.1 设计新的节点类型
  • 6.2 增加扫描操作
  • buildfilesystem()函数'>6.2.1 修改jffs2buildfilesystem()函数
  • scanblocknode()函数'>6.2.2 添加jffs2scanblocknode()函数
  • scaninodenode()、jffs2scandirentnode()'>6.2.3 修改jffs2scaninodenode()、jffs2scandirentnode()
  • 6.3 更新操作
  • 6.4 本章小结
  • 第7章 总结与展望
  • 参考文献
  • 致谢
  • 攻读硕士期间公开发表的学术论文
  • 相关论文文献

    • [1].基于μcLinux的嵌入式浏览器构架研究与实现[J]. 现代计算机(专业版) 2008(02)
    • [2].基于μCLinux的嵌入式远程温度监控系统的设计[J]. 北京联合大学学报(自然科学版) 2008(03)
    • [3].μCLinux下的变频调速控制系统的设计[J]. 微计算机信息 2009(17)
    • [4].基于μClinux的微型热敏打印机驱动的实现[J]. 计算机与现代化 2008(10)
    • [5].嵌入式操作系统μClinux进程调度研究[J]. 世界科技研究与发展 2009(02)
    • [6].基于μclinux的远程监控系统设计与实现[J]. 计算机测量与控制 2009(10)
    • [7].SOPC&μClinux下数字频谱分析系统的软件设计[J]. 计算机与数字工程 2010(05)
    • [8].基于ARM7-μCLinux并采用超级终端监测两路电压参数[J]. 电子设计工程 2010(11)
    • [9].基于ARM-μCLinux的GPRS远程监控系统设计[J]. 仪表技术 2011(10)
    • [10].基于μClinux的火灾报警系统CAN总线设备驱动程序设计[J]. 天津理工大学学报 2008(01)
    • [11].嵌入式μ CLinux系统移植[J]. 数字技术与应用 2017(04)
    • [12].基于ARM的无线查验系统设计与实现[J]. 微计算机信息 2008(20)
    • [13].浅谈μCLinux与标准Linux在内存管理上的区别[J]. 科技信息 2009(19)
    • [14].基于μCLinux和S3C44B0X的温度巡检系统的设计[J]. 科技信息(学术研究) 2008(08)
    • [15].一种基于μClinux的嵌入式纸币识别系统设计[J]. 计算机测量与控制 2008(04)
    • [16].基于ARM7TDMI的μcLinux内核移植的Proteus仿真[J]. 化工自动化及仪表 2009(02)
    • [17].μCLinux在实时监控系统中的应用研究[J]. 计算机技术与发展 2009(03)
    • [18].嵌入式μCLinux中DM9000设备驱动研究与实现[J]. 计算机工程与科学 2009(05)
    • [19].μClinux内核研究及实时性能的实现[J]. 辽宁工业大学学报(自然科学版) 2009(02)
    • [20].基于μClinux嵌入式网络打印机服务器[J]. 计算机时代 2008(05)
    • [21].基于LPC2210+μClinux的触摸屏设计[J]. 机电一体化 2009(08)
    • [22].基于μclinux的EPA通信协议栈[J]. 计算机系统应用 2011(09)
    • [23].触摸屏技术及其μCLinux下的驱动设计[J]. 装备制造技术 2009(09)
    • [24].基于μClinux的远程监控系统的设计与实现[J]. 计算机工程与科学 2009(10)
    • [25].基于μclinux的EPA实时工业以太网延迟特性分析[J]. 信息通信 2016(03)
    • [26].JFFS2文件系统在μClinux中的实现[J]. 现代电子技术 2009(10)
    • [27].基于S3C44B0X的μCLinux内核移植[J]. 上海电力学院学报 2011(04)
    • [28].基于S3C44B0X的U-Boot及μClinux的移植分析[J]. 计算机技术与发展 2009(04)
    • [29].基于NIOS Ⅱ和μclinux的工业CT高速数据传输系统[J]. 电子技术应用 2008(07)
    • [30].U-Boot在S3C44BOX+μCLinux上的移植[J]. 电脑编程技巧与维护 2008(09)

    标签:;  ;  ;  

    μClinux文件系统的实现与改进策略研究
    下载Doc文档

    猜你喜欢