第 5 章 嵌入式Linux根文件系统及其制作.ppt
文本预览下载声明
第 5 章 嵌入式Linux根文件系统及其制作 ;目 录;Linux文件系统简介;Linux文件的描述;硬链接;软链接;硬链接 硬链接指向文件的i节点。用ln命令就可以创建一个硬链接。例如,执行ln add addlink 命令就建立一个add文件的硬链接addlink文件。在下面的例子中可以看到add和addlink文件有相同的i节点或索引号(297731);有相同的文件创建日期和时间(1月9日,22:20);有相同的文件大小(138字节)。#ls –li add*297731 -rw-r--r-- 2 root root 138 1月 9 22:20 add297731 -rw-r--r-- 2 root root 138 1月 9 22:20 addlink ;软链接 软链接是与要链接文件或目录的路径链接,而不是与i节点链接;因此,软链接只是指向i节点号。可以用ln –s命令创建一个软链接。例如,执行ln –s add softlink命令就建立一个add文件的软链接softlink文件。在下面的例子中可以看到add和softlink文件有不同的i节点或索引号(分别为297731和297777);有不同的文件创建日期和时间(分别为1月9日,22:20和2月28日,20:41);有不同的文件大小(分别为138和3字节)。# ls –li add softlink297731 -rw-r--r-- 2 root root 138 1月 9 22:20 add297777 lrwxrwxrwx 1 root root 3 2月 28 20:41 softlink - add 对于采用硬链接方式,要对被链接的文件进行特殊管理,以免它被删除时引发系统错误。对Linux系统而言,系统为每个文件设有链接计数器。当指向一个文件的新链接建立时,该链接计数器加1;当一个文件链接被从目录中删除时,该链接计数器减1,如果链接计数器的值为0,则该文件所占据的空间被释放。 ;文件类型;文件类型;设备文件;设备文件;API –文件操作系统调用;Linux支持的常见的文件系统类型;Linux 专用文件系统;虚拟文件系统;虚拟文件系统;嵌入式文件系统类型 ;基于FLASH的文件系统;嵌入式文件系统类型 ;
JFFS文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux, uCLinux中。
Jffs2: 日志闪存文件系统版本2 (JournallingFlash FileSystemv2)
目前jffs3正在开发中。关于jffs系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。
主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。
jffsx不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。;
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在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。;
由LinusTorvalds参与开发的小型只读压缩文件系统
Inode、文件名称和目录信息不压缩
单个文件最大为16MB
数
显示全部