当前位置: 技术问答>linux和unix
关于jffs2文件系统~~~求助
来源: 互联网 发布时间:2016-10-18
本文导语: flash最小erase为128k 1.对于jffs2对于刷新flash流程是什么???ap做的IO操作是改的日志文件?之后再刷新flash???刷新flash的时机是什么? 2.单分的区,文件系统在 /dev/mtdblock 中映射出对应的块文件, 怎么知道那个块...
flash最小erase为128k
1.对于jffs2对于刷新flash流程是什么???ap做的IO操作是改的日志文件?之后再刷新flash???刷新flash的时机是什么?
2.单分的区,文件系统在 /dev/mtdblock 中映射出对应的块文件, 怎么知道那个块文件是我要的区???如何操作??有什么方法将这些块能成像windows分区一样??
3.jffs2内的“损耗平衡”机制,对这些块文件是否有影响???有没有可能将这个块中的文件写到其它分区中???
~~~~~不知道的或者直接摘抄的就尽量别留言了谢谢~~~~~~
1.对于jffs2对于刷新flash流程是什么???ap做的IO操作是改的日志文件?之后再刷新flash???刷新flash的时机是什么?
2.单分的区,文件系统在 /dev/mtdblock 中映射出对应的块文件, 怎么知道那个块文件是我要的区???如何操作??有什么方法将这些块能成像windows分区一样??
3.jffs2内的“损耗平衡”机制,对这些块文件是否有影响???有没有可能将这个块中的文件写到其它分区中???
~~~~~不知道的或者直接摘抄的就尽量别留言了谢谢~~~~~~
|
我只研究过JFFS2的原理,具体没用过,所以问题2和3不知道,应该JFFS2的文档有说明。我对于问题一的看法:Flash删除是以Erase Unit为单位,又叫flash block(块),通常128K。读写以页为单位,通常在512B 到 16K之间。物理页一旦写了,要原地更新(比如4K)的话,必须先做删除工作(128K)。所以JFFS2采用日志形式,把修改过的页顺序地写到其他干净的物理块里面。同时把该页的逻辑地址映射到新的物理地址上。这样的好处是不用每次更新一个页都需要删除一个块。但是,旧的页面造成空间浪费,于是要做垃圾回收,其实就是合并那些含有垃圾页面的块(有效页面写到干净的块里面,旧的块删除)。
|
以前研究过一阵子jffs2,说点自己的看法,不一定对哈
1。jffs2是日志文件系统,新的写操作过来的时候不一定要擦flash,只要能找到一块干净的块写就行了。
在文件系统认为需要擦的时候才会去执行擦的操作。日志文件在内存里面,只是记录下新的数据在哪里,要是坏了,就可以找到之前的数据在哪里。
2。分区0 1 2。。这样应该不会互相干扰,因为一个分区对应的是一个文件系统啊
3。损耗平衡就是让每个块基本上写的次数差不多,是文件系统层的概念,给文件没多大关系。
上大学的时候研究的,不一定对,呵呵。
1。jffs2是日志文件系统,新的写操作过来的时候不一定要擦flash,只要能找到一块干净的块写就行了。
在文件系统认为需要擦的时候才会去执行擦的操作。日志文件在内存里面,只是记录下新的数据在哪里,要是坏了,就可以找到之前的数据在哪里。
2。分区0 1 2。。这样应该不会互相干扰,因为一个分区对应的是一个文件系统啊
3。损耗平衡就是让每个块基本上写的次数差不多,是文件系统层的概念,给文件没多大关系。
上大学的时候研究的,不一定对,呵呵。
|
日志文件不可能完全在内存里面的,一是内存占用太高,二是有数据一致性问题。