可以了解的JFFS2 文件系统及新特性

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可以了解的JFFS2 文件系统及新特性

JFFS2 是一个开放源码的项目(infradead)。它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用。这篇文章首先分析了在闪存上使用JFFS2 的必要性,然后详细的阐述了JFFS2 实现的内部机制,包括日志结构的文件系统,关键的数据结构,挂载过程和垃圾收集机制。同时也指出了JFFS2 的局限性,并介绍了最新的针对JFFS2 的不足进行改进的补丁程序。最后对JFFS3 的设计思想和现在的开发状况给予了简单的介绍。

1.为什么需要JFFS2

这一小节首先介绍了闪存相对于磁盘介质的特别之处,然后分析了将磁盘文件系统运行在闪存上的不足,同时也给出了我们使用JFFS2 的理由。

1.1 闪存(Flash Memory) 的特性和限制

这里所介绍的闪存的特性和限制都是从上层的文件系统的角度来看的,而不会涉及到具体的物理特性。总的来说,有两种类型的flash memory: NOR flash 和NAND flash. 先介绍一下这两种闪存所具有的共同特性。

A) 闪存的最小寻址单位是字节(byte),而不是磁盘上的扇区(sector)。这意味着我们可以从一块闪存的任意偏移(offset)读数据,但并不表明对闪存写操作也是以字节为单位进行的。我们会在下面的阐述中找到答案。

B) 当一块闪存处在干净的状态时(被擦写过,但是还没有写操作发生),在这块flash上的每一位(bit)都是逻辑1。

C) 闪存上的每一位(bit)可以被写操作置成逻辑0。可是把逻辑0 置成逻辑1 却不能按位(bit)来操作,而只能按擦写块(erase block)为单位进行擦写操作。擦写块的大小从4K 到128K 不等。从上层来看,擦写所完成的功能就是把擦写块内的每一位都重设置(reset)成逻辑1。

D) 闪存的使用寿命是有限的。具体来说,闪存的使用寿命是由擦写块的最大可擦写次数来决定的。超过了最大可擦写次数,这个擦写块就成为坏块(bad block)了。因此为了避免

相关文档
最新文档