嵌入式文件系统

linux支持多种文件系统类型,为了对各类文件系统进行统一管理,linux引入了虚
拟文件系统VFS,为各类文件系统提供一个统一的应用编程接口。

文件系统类型
根据存储设备的硬件特性,系统需求,不同的文件系统类型有不同的应用场合。在
嵌入式linux应用中,住哟啊的存储设备为RAM和FLASH,常用的基于存储设备的文件
系统类型包括:jffs2,yaffs,cramfs,ramdisk,ramfs等。

/************************************************************/

基于FLASH的文件系统
NOR FLASH: 存放程序(速度快)
NAND FLASH: 存放数据

JFFS和JFFS2
主要用于NOR FLASH 基于MTD驱动层,特点是:可读写,支持数据压缩的日志型文件
系统,并提供了崩溃/掉电安全保护等。

yaffs和yaffs2
专为NAND FLASH而设计的一种日志型文件系统,与JFFS2相比,它减少了一些功能,
所以速度更快,挂载时间很短,对内存的占用较小,另外它还是跨平台的文件系统

Cramfs
NOR FLASH和NAND FLASH都可以用,是一种只读的压缩文件系统,它也基于MTD驱动
程序。

/*************************************************************/

基于RAM的文件系统--Ramdisk
Ramdisk是将一部分固定大小的内存当作块设备来使用。它并非一个实际的文件系统
,而是一种将实际的文件系统装入内存的机制。将一些经常被访问而又无需要更改
的文件通过Ramdisk放在内存中,可以明显地提高系统的性能。

initramfs
initramfs出现在2.6内核中,它类似于tmpfs,是一种基于内存的文件系统,它的使
用不需要创建内存块设备。增加文件到ramfs会自动配置更多的内存,并删除或截去
文件以释放内存。(若ramdisk没有满,已被占用的额外的内存也不能用来做其它事
,若ramdisk满了,但其它仍有闲置的内存,也必须重新格式化后才能扩展使用)。

NFS
开发是常用的技术,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌
入式设备,可以很方便地修改根文件系统的内容。

/**********************************************************************/

制作Ramdisk
基于制作好的根文件系统,可进一步制作ramdisk,步骤如下:
1 genext2fs -b 8192 -d /xxx/rootfs ramdisk
** genext2fs为产生ramdisk的工具 **
2 gzip -9 -f ramdisk

/**********************************************************************/

使用initramfs
1 配置linux内核,支持initramfs

嵌入式文件系统_第1张图片


2 进入制作好的根文件系统中,执行
ln -s ./bin/busybox init
3 修改启动命令参数为:
console=ttySAC0 mem=64
4 重新编译内核

你可能感兴趣的:(文件系统)