首页 > 嵌入式基础教程 > 基础知识

Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。

Linux下的文件系统结构如下:

 

Linux下的文件系统结构

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闪存会有诸多弊端。

换一批

延伸阅读

[行业资讯] 赛普拉斯进入中国20周年庆典在北京举行

赛普拉斯进入中国20周年庆典在北京举行

全球领先的嵌入式解决方案供应商赛普拉斯半导体公司(Cypress Semiconductor Corp.)(纳斯达克代码:CY)近日在北京举办“芯动中国”20周年庆典。活动上,赛普拉斯回顾了过去二十年间,为中国相关行业发展所做出的贡献;同时......

关键字:嵌入式 赛普拉斯 半导体

[行业资讯] 中国存储芯片自主研发技术交流峰会成功举办!国内首颗自研嵌入式40nm工规级存储芯片HC5001震撼发布

中国存储芯片自主研发技术交流峰会成功举办!国内首颗自研嵌入式40nm工规级存储芯片HC5001震撼发布

2018年11月21日,中国·南京 ICTECH 2018中国存储芯片自主研发技术交流峰会在南京举行。作为南通市第一家高阶存储产品主控设计公司——江苏华存电子科技有限公司(以下简称“江苏华存”),会上发布了国内自研第一颗嵌入式40纳米工规级......

关键字:存储芯片 嵌入式 HC5001

[行业资讯] 赛普拉斯与海力士携手组建NAND闪存合资公司

赛普拉斯与海力士携手组建NAND闪存合资公司

全球领先的嵌入式解决方案供应商赛普拉斯半导体公司(Cypress Semiconductor Corp.)(纳斯达克代码:CY)日前宣布,与海力士半导体公司(SK hynix system ic, Inc.)成立合资公司。协议约定在前五年中......

关键字:NAND闪存 嵌入式 存储产品

[行业资讯] 赛普拉斯公布2018年第三季度财报

赛普拉斯公布2018年第三季度财报

全球领先的嵌入式解决方案供应商赛普拉斯半导体公司(Cypress Semiconductor Corp.)(纳斯达克代码:CY)发布2018年第三季度财报,亮点如下: ......

关键字:赛普拉斯 嵌入式 NAND闪存

[行业资讯] 齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

近日,嵌入式系统联谊会第23次主题讨论会就这些问题,邀请业内知名专家和学者做了深入的探讨!本次会议由嵌入式系统联谊会、深圳北航新兴产业技术研究院主办,深圳北航物联网研究院、物联网咖啡承办,北京航空航天大学出版社、泰智会共同协办。主题为”人工......

关键字:嵌入式 单片机 人工智能 嵌入式系统

[猎聘集] 重磅!程序猿月薪过7万,可以落户北京了

重磅!程序猿月薪过7万,可以落户北京了

这是北京“近十年最宽松的落户政策”!消息在北京创投圈激起了涟漪。这些年,北京几乎聚集了中国数量最多顶尖的创业公司和创投机构,从IDG资本、红杉中国、经纬创投到百度、京东、美团、今日头条….浩浩荡荡数十万人。这一纸新规有望让他们落地生根。......

关键字:程序猿 月薪 北京

[趣科技] 让普通物体秒变智能!加州大学展示一款基于 WiFi的便携贴产品

让普通物体秒变智能!加州大学展示一款基于 WiFi的便携贴产品

“智能”联网设备可以让日常生活变得更加轻松,但它们通常需要搭配电池来使用。好消息是,加州大学圣迭戈分校的研究团队,刚刚展示了一款基于 WiFi、名叫 LiveTag 的解决方案。其采用低成本的标签打印方......

关键字:智能设备 WIFI
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14