现在的位置: 首页 > 综合 > 正文

嵌入式文件系统

2017年10月26日 ⁄ 综合 ⁄ 共 1373字 ⁄ 字号 评论关闭

嵌入式文件系统----

linux支持多种文件系统类型,包括ext2,ext3,vfat,jffs,ramfs,nfs等,为了对各类文件系统进行统一管理,linux引入了虚拟文件系统vfs(virtual file system),为各类文件系统提供一个统一的应用编程接口。

文件系统类型----

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

基于flash的文件系统---

flash(闪存)作为嵌入式系统的主要存储媒介,主要有nor和nand两种技术。flash存储器的擦写次数是有限的,nand闪存还有特殊的硬件接口和读写时序。因此,必须针对flash的硬件特性设计符合应用要求的文件系统。

jffs2----主要用于nor型flash,特点是可读写,支持数据压缩的日志型文件系统。

yaffs/yaffs2---主要用于nand型flash,支持跨平台。

cramfs---只读的压缩文件系统。可用于两种flash。

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

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

nfs---是由sun开发的一种在不同机器之间通过网络共享文件的技术。在嵌入式linux系统的开发调试阶段,可以利用该技术在主机上建立基于nfs的根文件系统,挂载到嵌入式设备,可以很方便的修改根文件系统的内容。

linux2.6内核引入了sysfs文件系统。sysfs被看成是与proc同类别的文件系统。sysfs把连接在系统上的设备和总线组织成分级的文件,使其从用户空间可以访问到。

制作ramdisk---基于制作好的根文件系统,可进一步制作ramdisk,步骤如下:

1---genext2fs -b 8192 -d /xxx/rootfs ramdisk

genext2fs为产生ramdisk的工具。

-b 8192  大小8M

-d  目录

2--gzip -9 -f ramdisk------压缩

使用initramfs----

1--配置linux内核,支持initramfs

make menuconfig ARCH=arm

----general setup----initial ram filesystem and ram disk ......

根文件系统路径----initram source file

2--进入制作好的根文件系统中,执行

ln -s ./bin/busybox init

软连接

3--修改启动命令参数

console=ttySAC0 mem=64M

4--重新编译内核


【上篇】
【下篇】

抱歉!评论已关闭.