jffs与yaffs 文件系统的区别
源地址:http://www.cnblogs.com/simonshi/archive/2010/03/10/1682932.html JFFS是由瑞典的Axis Communications Ab公司开发的(1999,以GNU发布),针对flash设备的特性为嵌入式设备开发的.(我边上的兄弟曾想去那里作毕业设计) JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏块管理等功能. 这两种文件系统属于LFS(Log-structured File System).这种文件系统的特点是一旦数据出错,容易恢复,但是系统运行是需要占用一定的内存空间,这些空间就是用来存储”log”的. JFFS的缺点就是加载时间太长,因为每次加载都需要将FLASH上的所有节点(JFFS的存储单位)到内存,这样也占用了可观的内存空间.除此之外,”circle log”设计使得在对文件数据进行所有的数据都会被重写,这样造成不必要的时间,同时也会减少FLASH的寿命. JFFS2对JFFS1作了些改进,比如所需的内存变少了,垃圾回收机制也优化了. 针对JFFS1,JFFS2的缺点,JFFS3出现了. YAFFS1 & YAFFS2 YAFFS1支持512Bytes/Page的NAND Flash;后者YAFFS2支持2kBytes/Page的NAND Flash. YAFFS文件系统也属于LFS. 跟其他文件系统比较,它具有更好的可移植性,甚至可以使用在没有操作系统的设备上(called “YAFFS/Direct”). YAFFS采用模块化设计,虽然最初是用在linux系统上的,但是也已经移植到其他系统比如wince. 还有个突出的优点是它在mount的时候需要很少的内存.(如果是小页—512byte/page,每1MByte NAND大约需要4KBytes内存;大页需要大概1KBytes RAM/1MByte NAND) JFFS与YAFFS比较,两者各有长处. 一般来说,对于小于64MBytes的NAND Flash,可以选用JFFS;如果超过64MBytes,用YAFFS比较合适. http://www.yaffs.net/yaffs-internals ------------------------------------------------------------------我想说的话-------------------------------------------------------------------------------- 目前我在做的AM1808移植项目中碰到的文件系统启动过慢(10S)的原因,应该就在于此。 项目使用的AM1808片子上的nandflash是128M的,而demo提供的文件系统是jffs的。 接下来尝试自己编译一个yaffs的文件系统,看看能否显著加快启动速度。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- postgresql – 在PL / pgsql中使用EXECUTE从通用触发器插入
- 调试时“Visual Basic”中的错误“parameter”basepath’ca
- c# – 哪种类库适用于Universal和Winform项目?
- c# – Winforms:验证datagridview中的单元格的问题
- OMAP35x下OneNand的分析以及x-loader的介绍
- [寒江孤叶丶的Cocos2d-x之旅_14]Cocos2d-x 3.2版本以上LUA脚
- 面相对象设计中组合与聚合详解
- ruby-on-rails – Rails页面缓存expires_in
- c# – 如何使用Microsoft Speech从语音模式识别扬声器?
- c# – 从委托中锁定静态对象不起作用