论文部分内容阅读
文件系统是操作系统的一个重要的组成部分。文件系统决定了操作系统本身的信息和用户的数据在存储设备上的组织形式。flash存储器是一种广泛应用于嵌入式设备的外部存储器,它是一类非易失性存储器。flash存储器按其底层技术结构主要分为NOR型和NAND型两大类,它们各有其特点。
jffs2和yaffs是当前两种最适合在flash存储器上使用的嵌入式文件系统,它们在设计时就考虑到嵌入式设备的特殊性,采用各自的日志结构保证文件数据的安全和稳定。它们都具有对flash块的管理方法:采用垃圾回收策略使文件系统长期稳定运行,采用磨损平衡机制延长flash的使用寿命,采用坏块管理方法使操作系统避开flash存储器上的坏块。jffs2对NOR flash的支持较好,yaffs在NAND flash上运行较稳定。
随着人们对嵌入式设备要求的提高,在开发嵌入式设备中,使用嵌入式文件系统是十分重要和必要的。本文详细分析了NOR和NAND两种结构的flash存储器,并以SST公司的SST39VF1601存储芯片和SAMSUNG公司的K9F1208UOB存储芯片为具体实例进行研究。然后结合它们的特性,实现了在NOR flash上运行jffs2文件系统,在NAND flash上运行yaffs文件系统。
分析Linux操作系统的内核代码结构、文件系统结构及实现机制,详细描述了在现有的硬件平台上,移植启动程序U-boot,移植Linux2.6操作系统内核,编写MTD驱动程序,和最终实现jffs2和yaffs文件系统的过程。
最后从数据结构、日志结构、垃圾回收机制,坏块管理方法、启动过程、磨损平衡机制等方面分析jffs2和yaffs文件系统的结构和特点。针对jffs2文件系统启动时间长的缺陷和yaffs文件系统磨损平衡机制的不足提出了改进方法和实现过程。