博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux在开始ubifs前错误,UBIFS文件系统说明文档答题.docx
阅读量:5009 次
发布时间:2019-06-12

本文共 1986 字,大约阅读时间需要 6 分钟。

UBIFS文件系统说明文档

注意:在了解UBIFS之前一定要注意到UBIFS和任何传统的文件系统是不一样的:UBIFS不是运行在block device之上的(如hard disk,MMC/SD卡,USB flash等)。UBIFS是运行于raw flash之上,请在开始认识UBIFS前确保理解raw flash这个概念。UBIFS是建立在MTD device基础上的,而不是block device上的。

简介:UBIFS是由NOKIA工程师在赛格德大学帮助下开发的新的Flash文件系统,UBIFS是JFFS2文件系统的下一代产品。JFFS2运行在MTD设备之上,而UBIFS则只能工作于UBI volume之上。UBIFS涉及三个子系统:1.MTD子系统,提供对Flash芯片的访问接口,MTD子系统提供了MTD 设备的概念,比如/dev/mtdx,MTD可以认为是raw flash。2.UBI子系统,为Flash设备提供了耗损均衡(wear leveling)和卷管理(volume management)功能; UBI工作在MTD设备之上,提供了UBI volume;UBI是MTD设备的高层次表示,对上层屏蔽了一些直接使用MTD设备需要处理的问题,比如损耗均衡以及坏块管理。3.UBIFS文件系统,工作于UBI之上的文件系统。

UBIFS的主要特点:1.可扩展性:UBIFS对Flash 尺寸有着很好的扩展性,也就是说mount时间,内存消耗以及I/O速度都不依赖于Flash 的尺寸,UBIFS可以很好的运行在GB级的 Flashe设备上,当然UBI本身还是有扩展性的问题,但是无论如何UBI/UBIFS都比JFFS2的可扩展性好。如果UBI成为瓶颈,可以改进UBI而不需改变UBIFS本身。2.快速mount:不像JFFS2文件系统,UBIFS在mount阶段不需要扫描整个文件系统,UBIFS mount的时间只是毫秒级,时间不依赖与Flash的尺寸;然而UBI的初始化时间是依赖Flash的尺寸的,因此必须把这个时间考虑在内。3.write back支持:回写或者延迟写,与JFFS2文件系统的立即写入内存(write through)相比可以显著的提高文件系统的吞吐量。4.异常unmount适应度:UBIFS是日志文件系统,可以容忍突然掉电以及unclean重启; UBIFS通过replay日志来恢复unclean unmount。在这种情况下replay会消耗一些时间,因此mount时间会稍微增加,但是replay过程并不会扫描整个Flash介质,所以UBIFS的异常mount时间大概在几分之一秒。5.快速I/O操作:即使我们不使能 write back(在unmount时使用-o sync mount选项), UBIFS的性能仍然接近JFFS2;JFFS2的同步I/O是非常惊人的,因为JFFS2不需要在flash上维护indexing data结构,所以就没有因此而带来的负担,而UBIFS恰恰是有index数据的,UBIFS之所以够快是因为UBIFS提交日志的方式:不是把数据从一个地方移动到另外一个位置,而只是把数据的地址加到文件系统的index,然后选择不同的eraseblock作为新的日志块,此外还有multi headed日志方式等技巧。6.On the flight compression:存储在Flash介质上的数据是压缩的,同时也可以灵活的针对单个文件来打开关闭压缩。例如,可能需要针对某个特定的文件打开压缩;或者可能缺省方式下支持压缩,但是对多媒体文件则关闭压缩。7.可恢复性:UBIFS可以从index破坏后恢复; UBIFS中的每一片信息都用一个header来描述,因此可以通过扫描整个Flash介质来重构文件系统,这点和JFFS2非常类似。想像如果你擦除FAT文件系统的FAT表,对于FAT文件系统来说是致命的错误,但是如果擦除UBIFS的index,你仍然可以重构文件系统,当然这需要使用一个用户空间程序来做恢复8.完整性:UBIFS通过把checksum写到flash 介质上来保证数据的完整性,UBIFS不会无视损坏的文件数据或meta data;缺省的情况,UBIFS仅仅检查meta data的CRC,但是你可以通过mount选项,强制进行data CRC的检查。UBIFS的可扩展性UBIFS文件系统的所有数据结构都是使用tree,UBIFS对flash尺寸大小在算法上是可扩展的。然而UBI复杂度随着Flash size线性增长,因此UBI加UBIFS整体上是线性增大的。但是UBIFS的作者认为可以创建一个新的UBI2,克服当前UBI的线性增长,当前的 UBI实现适和2~16GiB大小

转载地址:http://uqggp.baihongyu.com/

你可能感兴趣的文章
ES的Zen发现机制
查看>>
【hibernate】1、Hibernate的一个注解 @Transient
查看>>
HihoCoder 1877 - Approximate Matching
查看>>
Elastic Search 语法总结
查看>>
py自动化之环境配置
查看>>
Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)
查看>>
红黑树-想说爱你不容易
查看>>
【题目】英文字符进行频率的统计,直方图输出
查看>>
LeetCode-Binary Tree Level Order Traversal
查看>>
COM组件开发实践
查看>>
yii2 源码分析1从入口开始
查看>>
浅谈网站推广
查看>>
Away3D基础之摄像机
查看>>
Leetcode 128. Longest Consecutive Sequence
查看>>
程序员必须知道的几个Git代码托管平台
查看>>
导电塑料入梦来
查看>>
C# 线程手册 第五章 扩展多线程应用程序 - 什么是线程池
查看>>
笔记1126ASP.NET面试题(转)
查看>>
考研路茫茫--单词情结 - HDU 2243(AC自动机+矩阵乘法)
查看>>
HTTP运行期与页面执行模型
查看>>