在前面的FLASH闪存文件系统研究-入门篇中,我们了解了什么是闪存文件系统及常见的闪存文件系统种类,今天开始介绍其中的UBIFS闪存文件系统。
UBIFS介绍
UBIFS全称Unsorted Block Image File System,翻译过来就是非排序块映像文件系统,被认为是JFFS2文件系统的下一代产品。
UBIFS最早在2006年由IBM与Nokia的工程师Thomas Gleixner,Artem Bityutskiy所设计,专门为了解决MTD(Memory Technology Device)设备所遇到的瓶颈。由于Nand Flash容量的暴涨,YAFFS等皆无法再去控制Nand Flash的空间。UBIFS通过子系统UBI处理与MTD device之间的动作。与JFFS2一样,UBIFS 建构于MTD device 之上,因而与一般的block device不兼容。
UBIFS在设计与性能上均较YAFFS2、JFFS2更适合MLC NAND FLASH。例如:UBIFS 支持 write-back, 其写入的数据会被cache, 直到有必要写入时才写到flash, 大大地降低分散小区块数量并提高I/O效率。UBIFS UBIFS文件系统目录存储在flash上,UBIFS mount时不需要scan整个flash的数据来重新创建文件目录。支持on-the-flight压缩文件数据,而且可选择性压缩部份文件。另外UBIFS使用日志(journal),可减少对flash index的更新频率。
UBIFS 曾经是Nokia N900 智能型手机上的默认文件系统。(本段来自维基百科)
UBIFS仅为RAW flash device设计
学习UBIFS,必需牢记:UBIFS是仅为RAW flash device设备(如NAND, NOR, OneNAND等)设计的,不能运行于SSD, MMC, SD, Compact Flash, USB sticks等block device上(这些设备虽然有raw flash,但是却是block device,是不同于真正的RAW flash device的,被称为FTL device,),如图1和图2。
图一 FTL device
UBIFS系统层次图
图2 RAW FLASH device
图3 UBIFS系统层次图
UBIFS与JFFS2相比有如下改变:
● 更快的挂载速度
● 打开大文件速度更快
● 写速度更快了
不过,UBIFS仍然保留了JFFS2的一些特点:
● 存储在flash介质上的数据是压缩的;
● 支持断电
● BIFS可以从index破坏后恢复( UBIFS中的每一片信息都有一个header来描述,因此可以通过扫描这个flash介质来重构文件系统)
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。