玩转开发板--几种常见的根文件系统的介绍

前言

 

     根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的第一个文件系统,系统引导启动程序会在根文件系统挂载之后把一些初始化脚本(如inittab、rcS)和服务器加载到内存中去运行。我们要明白文件系统和内核是完全独立的两个部分。

 

    在Linux中将一个文件与一个存储设备关联起来的过程叫做挂载(mount)。在执行挂载时,要提供文件系统类型、文件系统和一个挂载点。根文件系统被挂载到根目录下“/”上后,在根目录下就有根文件系统的各个目录,文件:/bin /sbin /mnt等,再将其他分区挂接到/mnt目录上,/mnt目录下就有这个分区的各个目录,文件。

 

    以下有这几种常见的根文件系统类型:

    

    1.initramfs型

 

    initramfs 该文件系统直接将根文件系统直接打包进Linux内核里,这样内核和根文件系统绑定在一块成为一个单独的文件,它在Linux系统启动后加载到内存中运行,所以速度快,但浪费内存,系统升级的时候内核和根文件系统一起升级比较方便。但因为它是基于内存的文件系统,所以系统掉电之后针对根文件系统下所有文件的修改都会丢失,如果要升级根文件系统只有重新编译、烧录内核;

    优缺点:正如介绍所说,由于是运行在内存之中,运行速度取决于CPU,但因此对文件系统的任何修改以及所写的任何文件都不可以保存,只有对根文件系统的修改后重新编译、烧录内核才行;

 

    2.jffs型

    jffs专门针对Norflash设计的文件系统,小页的Nandflash也可以使用,只是效率不高;因为根文件系统存放在Flash上,所以根文件存放在Flash上,所以根文件系统路径下的文件修改后掉电任然存在;

    优缺点:

  jffs2其功能就是管理MTD设备上实现的日志型文件系统,极适合使用于嵌入式系统;由于保存在Norflash/Nandflash上,所以不会因掉电而损失写保存在Norflash/Nandflash上的数据。但是由于挂载速度漫长,使其消耗的时间也漫长。当jffs2空间使用率过大时,读取速度会因此受到影响。

 

    

 

    3.yaffs2型

 

    yaffs2早期专门针对大页Norflash设计的文件系统,他的源码独立于Linux内核维护着,所以可以在单片机等裸机环境下使用(只有在该文件系统可以),linux内核想用它必须要打上补丁;在分区较大时,nandflash的挂载时间较长,现在逐渐被ubifs广泛替代。

 

    4.ubifs型

    ubifs专门针对Nandflash设计的一种文件系统,他在内核的MTD一层上面又建立了UBI一层,挂载速度、磨损均衡、读写速度非常快,目前nandflash上应用的最广的一种根文件系统;
    
 

    优点:

    1.可拓展性文件挂载时间,内存消耗以及I/O速度都不依赖于Flash大小;

    2.快速挂载UBIFS mount的时间只是毫秒级,时间不依赖Flash大小;

    3.write-back 支持文件改变并不是立即提交到flash media上,而是cache这些修改,直到达到写入的条件,这减少了I/O的数目因此改善I/O性能和系统性

    4.容忍不清洁性、快速I/O、自我恢复功能、数据完整性等。

 

 

    

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值