- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux操作系统讲义
一块Flash芯片可以被划分为多个分区,各分区可以采用不同的文件系统。两块Flash芯片也可以合并为一个分区使用,采用一个文件系统,即文件系统是针对于存储器分区而言的,而非存储芯片。 a.jffs2:jffs文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。jffs2是RedHat公司基于jffs开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以jffs2也可以用在Linux、uCLinux中。 jffs2主要用于NOR型闪存,基于MTD驱动层,是可读写的、支持数据压缩的、 文件系统 嵌入式Linux操作系统 基于哈希表的日志型文件系统,并提供崩溃/掉电安全保护,提供“写平衡”支持等。其缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。 目前jffs3正在开发中。jffsx不适合用于NAND闪存的原因主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在挂载时需要扫描整个Flash的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。 b.yaffs/yaffs2:yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了Linux和eCos,还支持WinCE、pSOS和ThreadX等。 文件系统 嵌入式Linux操作系统 yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用。 yaffs与yaffs2的主要区别在于,前者仅支持小页(512 B)NAND闪存,后者则可支持大页(2KB)NAND闪存。同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。 c.cramfs:cramfs是Linux的创始人Linus Torvalds参与开发的一种只读的压缩文件系统,它也基于MTD驱动程序。在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash 文件系统 嵌入式Linux操作系统 存储空间,使系统可通过更低容量的Flash存储相同的文件,从而降低系统成本。 cramfs文件系统以压缩方式存储,在运行时解压缩,所有的应用程序要求被复制到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当读取的档案不在内存时,cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。另外,它的速度快、效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。 由于以上特性,cramfs在嵌入式系统中应用广泛。但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。Cramfs映像通常是放在Flash中,但是也能放在其他文件系统里,使用loopback设备可以把它安装其他文件系统里。 文件系统 嵌入式Linux操作系统 d.romfs:传统型的romfs文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以片内运行(eXecute In Place,XIP)方式运行,在系统运行时,节省RAM空间。uClinux系统通常采用romfs文件系统。 e.其他文件系统:fat/fat32也可用于实际嵌入式系统的扩展存储器(如PDA、Smartphone,数码相机等的SD卡),这主要是为了更好地与最流行的Windows桌面操作系统相兼容。ext2也可以作为嵌入式Linux的文件系统,不过将它用于Flash闪存会有诸多弊端。 ③ 基于RAM的文件系统。 a.ramdisk:ramdisk是将一部分固定大小的内存当做分区来使用。它并非一个 文件系统 嵌入式Linux操作系统 实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,可以明显地提高系统的性能。 在Lin
文档评论(0)