综述:
常见的文件系统有统的格式有:jffs2,yaffs2,ubifs等。但可基于存储或者运行的位置可分为
flash型文件系统,Ram型文件系统,网络文件系统
Flash型文件系统:
Flash因为其特殊的硬件结构,普通的文件系统如ext2,ext3等不适合使用。常见的文件系统的格式有:jffs2,yaffs2,ubifs等。
jffs2
主要适用于NorFlash,不太适用与Nand。因为Nand闪存容量一般比较大,jffs为维护日志节点占用的内存空间迅速增大,同时jffs文件系统在挂载时,需要扫描整个flash内容,寻找日志节点,建立文件结构,较耗时。
yaffs2
主要为nand设计的日志型文件系统,自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用。yaffs与yaffs2的主要区别在于,前者仅支持小页(512 Bytes) NAND闪存,后者则可支持大页(2KB) NAND闪存。同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。
Cramfs
一种只读的压缩文件系统,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。它也基于MTD驱动程序。以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行。速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。
ubifs
后续接着写。
Ram型文件系统
Ramfs是Linus Torvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化。
网络文件系统
NFS是在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。