linux下文件系统的制作

一、 文件系统简介

嵌入式系统中常用文件系统包括有cramfs、JFFS2、NFS、initrd、yaffs2 以及squashfs。它们的特点如下:
(1)、cramfs 和JFFS2 具有好的空间特性,很适合嵌入式产品应用。
(2)、cramfs 与squashfs 为只读文件系统。
(3)、squashfs 压缩率最高。
(4)、JFFS2 为可读写文件系统。
(5)、NFS 文件系统适用于开发初期的调试阶段。
(6)、yaffs2 文件系统只用于NAND Flash。
(7)、initrd 采用cramfs 文件系统,为只读。

1、 cramfs

cramfs 是针对Linux 内核2.4 之后的版本所设计的一种新型文件系统,使用简单,加载容易,速度快。
cramfs 的优缺点如下:

优点:将文件数据以压缩形式存储,在需要运行时进行解压缩,能节省Flash 存储空间。

 缺点:由于它存储的文件是压缩的格式,所以文件系统不能直接在Flash 上运行。同时,文件系统运行时需要解压数据并拷贝至内存中,在一定程度上降低读取效率。另外cramfs 文件系统是只读的。如果想要在单板运行的Linux 中提供cramfs 的能力,必须要在编译内核时把cramfs 的选项加入。在make menuconfig 后,进入“File>systems”,选择“miscellaneousfilesystems”,最后选中其中的“Compressed ROM file system support”。

mkfs.cramfs 是用来制作cramfs 文件系统映象的工具。通过这个工具处理已经制作好的根文件系统,就可以生成cramfs 文件系统的映象(这类似于我们把光盘制作成ISO 文件映像)。具体操作如下所示:

$ mkfs.cramfs ./rootbox ./cramfs-root.img

其中,rootbox 是之前已经制作好的根文件系统,cramfs-root.img 是生成的cramfs 文件系统映像文件。

2、JFFS2

JFFS2 是RedHat 的David Woodhouse 在JFFS 基础上改进的文件系统,是用于微型嵌入式设备的原始闪存芯片的实际文件系统。JFFS2 文件系统是日志结构化的可读写的文件系统。
JFFS2 的优缺点如下:
 优点:使用了压缩的文件格式。最重要的特性是可读写操作。
缺点:JFFS2 文件系统挂载时需要扫描整个JFFS2 文件系统,因此当JFFS2 文件系统分区增大时,挂载时间也会相应的变长。使用JFFS2 格式可能带来少量的Flash 空间的浪费。这主要是由于日志文件的过度开销和用于回收系统的无用存储单元,浪费的空间大小大致是若干个数据段。JFFS2 的另一缺点是当文件系统已满或接近满时,JFFS2 运行速度会迅速降低。这是因为垃圾收集的问题。

加载JFFS2 文件系统时的步骤如下:
步骤 1. 扫描整个芯片,对日志节点进行校验,并且将日志节点全部装入内存缓存。
步骤 2. 对所有日志节点进行整理,抽取有效的节点并整理出文件目录信息。
步骤 3. 找出文件系统中无效节点并且将它们删除。
步骤 4. 最后整理内存中的信息,将加载到缓存中的无效节点释放。

由此可以看出虽然这样能有效地提高系统的可靠性,但是在一定程度上降低了系统的速度。尤其对于较大的闪存芯片,加载过程会更慢。为了使内核支持JFFS2 文件系统,必须在编译内核时把JFFS2 的选项加入。在make menuco

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProYuan28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值