北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>
                企业空间 推销商城 存储论坛
                北京快三开奖全闪存阵列 IBM云盘算 Acronis 安克诺斯 安腾普 腾保数据
                首页 > 技能园地 > 文件零碎 > 注释

                闪存文件零碎jffs2,yaffs2,logfs,ubifs的功能剖析后果

                2015-03-18 11:29泉源:中国存储网
                导读:上面为jffs2,yaffs2,logfs,ubifs功能剖析后果,FLASH是一种常用的存储介质,由于其特别的硬件构造,以是平凡的文件零碎如ext2,ext3等都不合适在其上运用,于是就呈现了专门针对FLASH的文件零碎。

                在嵌入式范畴,FLASH是一种常用的存储介质,由于其特别的硬件构造,以是平凡的文件零碎如ext2,ext3等都不合适在其上运用,于是就呈现了专门针对FLASH的文件零碎,比拟常用的有jffs2,yaffs2,logfs,ubifs。那么关于这几个文件零碎,怎样选择一个针对本人的硬件最适宜的呢?他们各自的特点是什么?功能优劣怎样?

                上面一个PDF为我找到的一篇专门针对这几个文件零碎做的功能剖析的文档,就这些文件零碎的挂载工夫,I/O功能,内存运用,失电规复,FLASH寿命等方面停止了细致的比照剖析,而且给出了针对差别的硬件,差别的使用的一些选择办法,在此分享给需求的人。

                上面为jffs2,yaffs2,logfs,ubifs功能剖析后果:

                闪存文件零碎jffs2,yaffs2,logfs,ubifs的功能剖析后果

                闪存文件零碎jffs2,yaffs2,logfs,ubifs的功能剖析后果

                Linux支持多种文件零碎,包罗ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各种文件零碎 停止一致办理,Linux引入了假造文件零碎VFS(Virtual File System),为各种文件零碎提供一个一致的操纵界面和使用编程接口。

                Linux启动时,第一个必需挂载的是根文件零碎;若零碎不克不及从指定设置装备摆设上挂载根文件零碎,则零碎会堕落而加入启动。之后可以主动或手动挂载其他的文件零碎。因而,一个零碎中可以同时存在差别的文件零碎。

                差别的文件零碎范例有差别的特点,因此依据存储设置装备摆设的硬件特性、零碎需求等有差别的使用场所。在嵌入式Linux使用中,次要的存储设置装备摆设为 RAM(DRAM, SDRAM)和ROM(常接纳FLASH存储器),常用的基于存储设置装备摆设的文件零碎范例包罗:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。

                1. 基于FLASH的文件零碎

                Flash(闪存)作为嵌入式零碎的次要存储前言,有其本身的特性。Flash的写入操纵只能把对应地位的1修正为0,而不克不及把0修正为1(擦 除Flash便是把对应存储块的内容规复为1),因而,普通状况下,向Flash写入内容时,需求先擦除对应的存储区间,这种擦除因此块(block)为 单元停止的。

                闪存次要有NOR和NAND两种技能(复杂比拟见附录)。Flash存储器的擦写次数是无限的,NAND闪存另有特别的硬件接口和读写时序。因 此,必需针对Flash的硬件特性设计契合使用要求的文件零碎;传统的文件零碎如ext2等,用作Flash的文件零碎会有诸多毛病。

                在嵌入式Linux下,MTD(Memory Technology Device,存储技能设置装备摆设)为底层硬件(闪存)和下层(文件零碎)之间提供一个一致的笼统接口,即Flash的文件零碎都是基于MTD驱动层的(拜见上 面的Linux下的文件零碎构造图)。运用MTD驱动顺序的次要长处在于,它是专门针对种种非易失性存储器(以闪存为主)而设计的,因此它对Flash有 更好的支持、办理和基于扇区的擦除、读/写操纵接口。

                特地一提,一块Flash芯片可以被分别为多个分区,各分区可以接纳差别的文件零碎;两块Flash芯片也可以兼并为一个分区运用,接纳一个文件零碎。即文件零碎是针关于存储器分区而言的,而非存储芯片。

                (1) jffs2

                JFFS文件零碎最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式零碎开辟的文件零碎。JFFS2是RedHat公司基于JFFS开辟的闪存文件系 统,最后是针对RedHat公司的嵌入式产物eCos开辟的嵌入式文件零碎,以是JFFS2也可以用在Linux, uCLinux中。

                Jffs2: 日记闪存文件零碎版本2 (Journalling Flash FileSystem v2)

                次要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据紧缩的、基于哈希表的日记型文件零碎,并提供了解体/失电平安维护,提供“写均衡”支持等。缺陷次要是当文件零碎已满或靠近满时,由于渣滓搜集的干系而使jffs2的运转速率大大加快。

                现在jffs3正在开辟中。关于jffs系列文件零碎的运用细致文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。

                jffsx不合适用于NAND闪存次要是由于NAND闪存的容量普通较大,如许招致jffs为维护日记节点所占用的内存空间敏捷增大,另 外,jffsx文件零碎在挂载时需求扫描整个FLASH的内容,以找出一切的日记节点,树立文件构造,关于大容量的NAND闪存会消耗少量工夫。

                (2) yaffs:Yet Another Flash File System

                yaffs/yaffs2是专为嵌入式零碎运用NAND型闪存而设计的一种日记型文件零碎。与jffs2相比,它增加了一些功用(比方不支持数 据紧缩),以是速率更快,挂载工夫很短,对内存的占用较小。别的,它照旧跨平台的文件零碎,除了Linux和eCos,还支持WinCE, pSOS和ThreadX等。

                yaffs/yaffs2自带NAND芯片的驱动,而且为嵌入式零碎提供了间接拜访文件零碎的API,用户可以不运用Linux中的MTD与VFS,间接对文件零碎操纵。固然,yaffs也可与MTD驱动顺序共同运用。

                yaffs与yaffs2的次要区别在于,前者仅支持小页(512 Bytes) NAND闪存,后者则可支持大页(2KB) NAND闪存。同时,yaffs2在内存空间占用、渣滓接纳速率、读/写速率等方面均有大幅提拔。

                (3) Cramfs:Compressed ROM File System

                Cramfs是Linux的开创人 Linus Torvalds到场开辟的一种只读的紧缩文件零碎。它也基于MTD驱动顺序。

                在cramfs文件零碎中,每一页(4KB)被独自紧缩,可以随机页拜访,其紧缩比高达2:1,为嵌入式零碎节流少量的Flash存储空间,使零碎可经过更低容量的FLASH存储相反的文件,从而低落零碎本钱。

                Cramfs文件零碎以紧缩方法存储,在运转时解紧缩,以是不支持使用顺序以XIP方法运转,一切的使用顺序要求被拷到RAM里去运转,但这并 不代表比Ramfs需求的RAM空间要大一点,由于Cramfs是接纳分页紧缩的方法寄存档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目 前实践读取的局部分派内存,尚没有读取的局部不分派内存空间,当我们读取的档案不在内存时,Cramfs文件零碎主动盘算紧缩后的材料所存的地位,再即时 解紧缩到RAM中。

                别的,它的速率快,服从高,其只读的特点有利于维护文件零碎免受毁坏,进步了零碎的牢靠性。

                由于以上特性,Cramfs在嵌入式零碎中使用普遍。

                但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩大。


                Cramfs映像通常是放在Flash中,但是也能放在另外文件零碎里,运用loopback 设置装备摆设可以把它装置另外文件零碎里。

                (4) Romfs

                传统型的Romfs文件零碎是一种复杂的、紧凑的、只读的文件零碎,不支持静态擦写保管,按次序寄存数据,因此支持使用顺序以 XIP(eXecute In Place,片内运转)方法运转,在零碎运转时,节流RAM空间。uClinux零碎通常接纳Romfs文件零碎。

                其他文件零碎:fat/fat32也可用于实践嵌入式零碎的扩展存储器(比方PDA, Smartphone, 数码相机等的SD卡),这次要是为了更好的与最盛行的Windows桌面操纵零碎相兼容。ext2也可以作为嵌入式Linux的文件零碎,不外将它用于 FLASH闪存会有诸多毛病。

                2. 基于RAM的文件零碎

                (1) Ramdisk

                Ramdisk是将一局部牢固巨细的内存看成分区来运用。它并非一个实践的文件零碎,而是一种将实践的文件零碎装入内存的机制,而且可以作为根 文件零碎。将一些常常被拜访而又不会变动的文件(如只读的根文件零碎)经过Ramdisk放在内存中,可以分明地进步零碎的功能。

                在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件零碎一同载入内存。

                (2)ramfs/tmpfs

                Ramfs是Linus Torvalds开辟的一种基于内存的文件零碎,任务于假造文件零碎(VFS)层,不克不及款式化,可以创立多个,在创立时可以指定其最大能运用的内存大 小。(实践上,VFS实质上可当作一种内存文件零碎,它一致了文件在内核中的表现方法,并对磁盘文件零碎停止缓冲。)

                Ramfs/tmpfs文件零碎把一切的文件都放在RAM中,以是读/写操纵发作在RAM中,可以用ramfs/tmpfs来存储一些暂时性或常常要修正的数据,比方/tmp和/var目次,如许既防止了对Flash存储器的读写消耗,也进步了数据读写速率。

                Ramfs/tmpfs绝对于传统的Ramdisk的差别之处次要在于:不克不及款式化,文件零碎巨细可随所含文件内容巨细变革。

                Tmpfs的一个缺陷是当零碎重新引导时会丧失一切数据。

                3. 网络文件零碎NFS (Network File System)

                NFS是由Sun开辟并开展起来的一项在差别呆板、差别操纵零碎之间经过网络共享文件的技能。在嵌入式Linux零碎的开辟调试阶段,可以应用该技能在主机上树立基于NFS的根文件零碎,挂载到嵌入式设置装备摆设,可以很方便地修正根文件零碎的内容。

                以上讨论的都是基于存储设置装备摆设的文件零碎(memory-based file system),它们都可用作Linux的根文件零碎。实践上,Linux还支持逻辑的或伪文件零碎(logical or pseudo file system),比方procfs(proc文件零碎),用于获取零碎信息,以及devfs(设置装备摆设文件零碎)和sysfs,用于维护设置装备摆设文件。

                附录:NOR闪存与NAND闪存比拟

                NOR FLASH
                NAND FLASH

                接口时序同SRAM,易运用
                地点/数据线复用,数据位较窄

                读取速率较快
                读取速率较慢

                擦除速率慢,以64-128KB的块为单元
                擦除速率快,以8-32KB的块为单元

                写入速率慢(由于普通要先擦除)
                写入速率快

                随机存取速率较快,支持XIP(eXecute In Place,芯片内实行),实用于代码存储。在嵌入式零碎中,常用于寄存引导顺序、根文件零碎等。
                次序读取速率较快,随机存取速率慢,实用于数据存储(如大容量的多媒体使用)。在嵌入式零碎中,常用于寄存用户文件零碎等。

                单片容量较小,1-32MB
                单片容量较大,8-128MB,进步了单位密度

                持续阅读
                中国存储网声明:此文观念不代表本站态度,若有版权疑问请联络我们。
                相干阅读
                产物引荐
                头条阅读
                栏目热门

                Copyright @ 2006-2019 ChinaStor.COM 版权一切 京ICP备14047533号

                中国存储网

                存储第一站,存储流派,存储在线交换平台