YAFFS文件系统简介
YAFFS(Yet Another Flash Filing System)是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备;并且是在GPL(General Public License)协议下发布的,可在其网站免费获得源代码。
YAFFS是基于日志的文件系统,提供磨损平衡和掉电恢复的健壮性。它还为大容量的Flash芯片做了很好的调整,针对启动时间和RAM的使用做了优化。它适用于大容量的存储设备,已经在Linux和WinCE商业产品中使用。
详细内容
YAFFS中,文件是以固定大小的数据块进行存储的,块的大小可以是512字节、1 024字节或者2 048字节。这种实现依赖于它能够将一个数据块头和每个数据块关联起来。每个文件(包括目录)都有一个数据块头与之相对应,数据块头中保存了ECC(Error Correction Code)和文件系统的组织信息,用于错误检测和坏块处理。充分考虑了NAND Flash的特点,YAFFS把这个数据块头存储在Flash的16字节备用空间中。当文件系统被挂载时,只须扫描存储器的备用空间就能将文件系统信息读入内存,并且驻留在内存中,不仅加快了文件系统的加载速度,也提高了文件的访问速度,但是增加了内存的消耗。
为了在节省内存的同时提高文件数据块的查找速度,YAFFS利用更高效的映射结构把文件位置映 射到物理位置。文件的数据段被组织成树型结构,这个树型结构具有32字节的节点,每个内部节点都包括8个指向其他节点的指针,叶节点包括16个2字节的指 向物理地址的指针。YAFFS在文件进行改写时总是先写入新的数据块,然后将旧的数据块从文件中删除。这样即使在修改文件时意外掉电,丢失的也只是这一次修改数据的最小写入单位,从而实现了掉电保护,保证了数据完整性。
结合贪心算法的高效性和随机选择的平均性,YAFFS实现了兼顾损耗平均和减小系统开销的目的。当满足特定的小概率条件时,就会尝试随机选择一个可回收的页面;而在其他情况下,则使用贪心算法来回收最“脏”的块[2]。
分享到:
相关推荐
对在构建yaffs文件系统时出现的一些错误解决方法或建议
yaffs 文件系统制作 解压工具
用于说明yaffs文件系统的原理,和系统可以改进的地方
YAFFS文件系统性能优越且易于移植,已经成功应用于linux、uClinux和Windows CE等嵌入式操作系统上。 YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别...
这是yaffs文件系统的源码包 yaffs文件系统常用于嵌入式,nandflash常用yaffs文件系统
yaffs文件系统的移植
YAFFS文件系统在嵌入式Linux上的实现.pdf
YAFFS2文件系统的加载过程,具普遍性
本文详细介绍了Yaffs文件系统的原理,是很好的学习Yaffs文件系统的资料!
yaffs yaffs2 文件系统正确补丁包 移植LINUX常用 CSDN有的下载的编译不正确,特发布正确的。
完成的了yaffs文件系统在ARM9上的移植,可以值得研究研究
在开发板上移植nand flash文件系统。
Yaffs2文件系统是转为Nand Flash设计的文件系统,是基于日志式的文件系统
s3c2440下 yaffs2文件系统制作详解,本人实践成功
YAFFS文件系统性能优越且易于移植,已经成功应用于linux、uClinux和Windows CE等嵌入式操作系统上。 YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别...
YAFFS文件系统简介 YAFFS(Yet Another Flash File System)是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备;并且是在GPL(General Public License)协议下发布的,可在其网站免费...
YAFFS 嵌入式文件系统 YAFFS 嵌入式文件系统
基于S3c2410的yaffs文件系统制作
Yaffs(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本的主要区别之一在于YAFFS2能够更好的支持大容量的NAND FLASH芯片。
实验环境的搭建: 交叉编译工具,内核源代码,根文件系统压缩包,yaffs2文件夹,Busybox源代码包,mkyaffs2image-128M工具 实验内容: 1.对标准Linux2.6.32内核源代码的修改,加上s3c2440的特性,配置,编译,烧写...