玩转Linux,先把文件系统搞懂 您所在的位置:网站首页 linux支持的文件系统tmpfs 玩转Linux,先把文件系统搞懂

玩转Linux,先把文件系统搞懂

#玩转Linux,先把文件系统搞懂| 来源: 网络整理| 查看: 265

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

本文引用地址:http://www.eepw.com.cn/article/201708/363315.htm

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

  

  Linux 启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。

  不同的文件系统类型有不同的特点,因而根据 存储 设备的硬件特性、系统需求等有不同的应用场合。在嵌入式 Linux 应用中,主要的 存储 设备为 RAM(DRAM, SDRAM) 和 ROM( 常采用 FLASH 存储器 ) ,常用的基于存储设备的文件系统类型包括: jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs 等。

  基于 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 空间。 uC linux 系统通常采用 Romfs 文件系统。

  其他文件系统: fat/fat32 也可用于实际嵌入式系统的扩展存储器 ( 例如 PDA, Smartphone, 数码相机等的 SD 卡 ) ,这主要是为了更好的与最流行的 Windows 桌面操作系统相兼容。 ext2 也可以作为嵌入式 Linux 的文件系统,不过将它用于 FLASH 闪存会有诸多弊端。

标签: 文件系统内存闪存

更多好物在等你 新浪众测·免费送 推荐阅读 聚焦 应用中心 新浪公益 新浪游戏 新浪视频 新浪科技 带领皇室家族赢得胜利 靠反应力还不如背赛道 动脑筋喂小怪物吃饼干 轻松延长手机续航时间 练就梦寐以求的好身材 帮助保持健康生活方式 随心所欲打造完美效果 银河系最全新番齐放送 复杂世界里一个就够了 进入机器梦境寻找真相 疯狂逃离恐怖的压碎机 冰锋暗影古色庙殿狂奔 斗巫师夺回被偷的糖果 屯兵练兵出征攻占堡垒 伪装胖猪混敌营救伙伴 国内最专业的手机地图 帮你一起保护你的颈椎 随时随地轻松订火车票 沈阳遭遇六级重度雾霾 2万大妈齐跳小苹果禁烟 范冰冰传递社会正能量 未富先老养老金吃紧 益调查:慈善需立法么 反虐待动物法制化呼声高涨 如何看待广州拟奖拾金不昧 环保部即将解决红顶中介 明星婚礼上的“善”姿 “百名春蕾之星”评选 舞剧《画皮》关注孤独症 女孩患尿毒症自筹药费 互联网发展基金会成立 林青霞为慈善参加节目 全面实施城乡大病保险 儿童安全座椅强制认证 办养老院真的是机会么 志愿者慰问抗战老兵 战舰世界海神节礼包 乱斗西游2新浪独家卡 倩女幽魂2夏日特权卡 功夫熊猫新手高级礼包 新倩女幽魂新浪特权卡 灵魂战神不删档测试码 我是大主宰新浪荣耀卡 大话西游2免费版礼包 西楚霸王新浪荣耀礼包 镇魔曲神兵觉醒尊享卡 完美国际2一生有你卡 新天龙八部新手特权卡 问道经典十年至尊礼包 大战神新浪独家礼包 热血传奇新区独享礼包 剑网3萌宠浪浪大礼包 创世2封测激活码 问道手游媒体礼包 极限Girl美与野性结合 让萌宠当一天司机 亲千万不要手贱啊 超级屌的视觉错觉运动 地球上最美丽的天堂鸟 新一代武林最萌小道士 神奇的PS造钱术 大开眼界的泡面新吃法 让宝宝嘴馋的菠萝炒饭 经典电影镜头神级剪辑 亲手教你范爷经典妆容 盘点全球最糟糕山寨品 恶搞:当一骷髅在开车 健身是把整容刀 三分钟看尽十年成长 和TFBOYS一起过暑假 不用去医院的牙美白术 一分钟识别面试潜台词 Windows 10升级秘籍 净水器的水有多深? 识趣毕业季户外特辑 用户关注手机哪些功能 有曰:国内外展会吐槽 三十年经典Moto手机 ChinaJoy2015大看点 东芝虚增利润财务丑闻 紫光集团收购美光科技 诺基亚为未来电影造球 全球APP开发创意大赛 享说第四期主持人李晨 猎豹靠近捕食熟睡疣猪 非洲血腥动物标本加工 相机拍泡腾片遇水冒泡 冰岛令人窒息美景 懒惰青蛙蜗牛背搭便车 美摄影师拍奇怪毛毛虫


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有