Linux flash 文件系统剖析
AFFS 是针对 NAND flash 开发的另一种 flash 文件系统.最早的版本(YAFFS)支持 512 字节页面的 flash 设备,但是较新的版本(YAFFS2)支持页面更大的新设备以及更大的 Write 限制.
大多数 flash 文件系统会对废弃块进行标记,但是 YAFFS2 使用单调递增数字序列号额外地标记块.在挂载期间扫描文件系统时,可以快速标识有效的 inode.YAFFS 保留在 RAM 中的树以表示 flash 设备的块结构,包括通过检查点(checkpointing)实现快速挂载 — 这个过程将在正常卸载时将 RAM 树结构保存到 flash 设备,以在挂载时快速读取和恢复到 RAM(参见图 4).与其他 flash 文件系统相比,YAFFS2 的挂载时性能是它的最大优势. 图 4. YAFFS2 中的块管理和垃圾收集
只读式压缩文件系统 在某些嵌入式系统中,没有必要提供可更改的文件系统:一个不可更改(immutable)的文件系统已经足够.Linux 支持多种只读文件系统,最有用的两种是 cramfs 和 SquashFS. Cramfs cramfs 文件系统是一种可用于 flash 设备的压缩式 Linux 只读文件系统.cramfs 的主要特点是简单和较高的空间利用率.这种文件系统用于内存占用较小的嵌入式设计. 虽然 cramfs 元数据没有经过压缩,但是 cramfs 针对每个页面使用 zlib 压缩,从而允许随机的页面访问(访问时对页面进行解压缩). 您可以通过 mkcramfs 实用工具和 loopback 设备尝试使用 cramfs. SquashFS SquashFS 是另一种可用于 flash 设备的压缩式 Linux 只读文件系统.您可以在很多 Live CD Linux 发行版中找到 SquashFS.除了支持 zlib 压缩外,SquashFS 还使用 Lembel-Ziv-Markov chain Algorithm (LZMA) 改善压缩并提高速度. 和 cramfs 一样,您可以通过 mksquashfs 和 loopback 设备在标准 Linux 系统上使用 SquashFS. 结束语 和大多数开放源码一样,软件在不断演变,并且新的 flash 文件系统正在开发之中.一种还处于开发阶段的有趣的备选文件系统是 LogFS,它包含了一些非常新颖的想法.例如,LogFS 在 flash 设备中保持了一个树结构,因此挂载时间和传统的文件系统差不多(比如 ext2).它还使用一种复杂的树实现垃圾收集(一种 B 树形式).然而,LogFS 最有趣的地方是它具有出色的可伸缩性并且支持大型 flash 部件. 随着 flash 文件系统的日益流行,您将看到针对它们的大量研究.LogFS 就是一个例子,但是其他类似于 UbiFS 的文件系统也在不断发展.Flash 文件系统的架构非常有趣,并在还将是未来技术创新的源泉.
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |