kernel下nand flash的文件系统总结

摘要:
因为FTL可以将闪存模拟成磁盘结构。为了确保数据一致性,ext3文件系统增加了日志记录功能。在ext3文件系统的基础上,ext4文件系统增加了对大型文件(T单元级文件)的支持。2.JFFS,JFFS2文件系统(链接列表结构),它在闪存上顺序存储包含数据和元数据的节点。JFFS2的日志结构存储模式使其能够对闪存执行异地更新。

kernel下nand flash的文件系统总结第1张

kernel下nand flash的文件系统总结第2张

1、FLASH转换层(FTL)

EXt2/EXT3/EXT4文件系统可以通过FTL实现对flash的支持,因为FTL可以将闪存flash模拟成磁盘结构。

在ext2文件系统的基础上上,为了保证数据的一致性ext3文件系统增加了日志功能。

在ext3文件系统的基础上ext4文件系统增加了对大文件(T单位级的文件)的支持,另外对于每个目录下的文件个数没有了限制。

2、JFFS、JFFS2文件系统(链表结构,典型的日志文件系统)

书上是这样说的:

JFFS2 是一个日志结构(log-structured)的文件系统,它在闪存上顺序地存储包含数据和原数据(meta-data)的节点。 JFFS2 的日志结构存储方式使得它能对闪存进行 out-of-place 更新,而不是磁盘所采用的 in-place 更新方式。它提供的垃圾回收机制,使得我们不需要马上对擦写越界的块进行擦写,而只需要对其设置一个标志,标明为“脏”块。当可用的块数不足时,垃圾回收机制才开始回收这些节点。同时,由于 JFFS2 基于日志结构,在意外掉电后仍然可以保持数据的完整性,而不会丢失数据。因此, JFFS2 成为了目前 Flash 上应用最广泛的文件系统

JFFS2 挂载时需要扫描整块 Flash 以确定节点的合法性以及建立必要的数据结构,这使得 JFFS2 挂载时间比较长。又由于 JFFS2 将节点信息保存在内存中,使得它所占用的内存量和节点数目成正比。再
者,由于 JFFS2 通过随机方式来实现磨损平衡,它不能保证磨损平衡的确定性 。

3、YAFFS、YAFFS2

YAFFS2 能够更好地支持大容量的 NAND Flash 芯片,而前者只针对页大小为 512 字节的 NAND 。

4、UBIFS(Unsorted Block Images File System)

UBI:是一种类似于LVM的逻辑卷管理层,主要实现wear-leaving和volume management功能。

UBIFS:这是基于UBI的FLASH日志文件系统。UBIFS并不直接工作于MTD之上而是工作于UBI卷之上。

涉及到三个子系统

1、MTD子系统,提供对flash芯片的访问接口,MTD子系统提供了MTDdevice的概念,可以被认为是裸的flash(raw flash,区别于带有FTL的flash或者SSD)

2、UBI subsystem,为flashdevice提供了wear-leaving和volume management功能。UBI工作在MTD设备之上,提供了UBI volume;UBI是MTD设备的高层表示,对上层屏蔽了一些直接使用MTD设备需要处理的问题,比如wear-leaving以及坏块管理

3、UBIFS文件系统,工作在UBI之上,其中坏块管理,磨损均衡,错误预测等功能有UBI子系统完成,UBIFS不予关心。

免责声明:文章转载自《kernel下nand flash的文件系统总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇hmmlearn使用简介jqueryautocomplete 使用手册下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

从零入门 Serverless | Serverless 应用如何管理日志 & 持久化数据

作者 | 竞霄 阿里巴巴开发工程师 本文整理自《Serverless 技术公开课》,关注“Serverless”公众号,回复“入门”,即可获取 Serverless 系列文章 PPT。 导读:本节课程有三部分内容,分别介绍在 SAE 上查看应用的实时日志,文件日志以及通过 NAS 进行应用数据的持久化存储。 实时日志 首先,SAE 支持查看应用实例分组下...

恢复grub启动

 重装windows7之后修复grub方法。     装了双系统之后(ubuntu linux和windows7),再继续装windows7,就会导致grub被覆盖,导致无法进入linux,这时候修复一下grub即可。下面是最简单的一个修复方法。     1、下载grub4dos(设置参见网上,需要在c盘根目录放置三个文件,grldr,grldr.mbr,...

linux系统挂掉问题的分析

玩linux系统,经常遇到的一件事就是做了某个操作之后系统会突然挂掉,这要怎么办? 1. 首先我们要看log,看看是否会留下一些蛛丝马迹,比如PC/LR是否有留下来。 PC是ARM的一个寄存器,即程序计数器,他记下的是当前程序执行的位置; LR是link register,它保存的是当前函数的返回地址, 所以我们可以善用PC/LR来帮助我们查找问题的根源。...

dell笔记本耳机没有声音

dell xps 15 9570,系统是win10 家庭版。 每次刚开机时,插着耳机,耳机有声音。但是重新插入耳机,耳机没有声音,依然是在外放播放。 打开设备管理器,发现是螃蟹的声卡。螃蟹的芯片,只能呵呵了。没想到驱动都做得这么烂。 一番折腾,总结下来就是,删除声卡,让系统重新识别。识别后,版本是2019年3月19日的。这样就能正确识别耳机的插入动作了,以...

CentOS 6.9关闭NetworkManager服务

说明:安装了图形界面init5级别的系统会自动安装NetworkManager进行网络管理。这东西有点难搞,所以可以把它禁掉。 配置: #停止NetworkManager service NetworkManager stop #关掉开机启动服务 chkconfig NetworkManager off #重启网络 service network...

Linux显示不了中文

  原文:https://www.cnblogs.com/hooly/p/8615384.html 版权所有:归属原文作者!!!  查看当前系统默认采用的字符集: # locale 在RedHat/CentOS系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下: LANG="zh_C...