[1]Linux文件系统架构
Linux支持多种文件系统类型,包括ext2、ext3、vfat、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的应用编程接口。
[2]Linux文件系统类型介绍
根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs,ramdisk, ramfs等。
Flash(闪存)作为嵌入式系统的主要存储媒介,主要有NOR和NAND两种技术。Flash存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因此,必须针对Flash的硬件特性设计符合应用要求的文件系统。
Ramdisk
Ramdisk是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统(如ext2)装入内存的机制。将一些经常被访问而又无需更改的文件通过Ramdisk放在内存中,可以明显地提高系统的性能。
Initramfs
Initramfs出现在2.6内核中,它类似于tmpfs,是一种基于内存的文件系统,它的使用不需要创建内存块设备,Initramfs可以动态扩充。
NFS
NFS (Network File System)是由Sun开发的一种在不同机器之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。
文件系统的配置与使用
Initramfs(未成功)
- 配置.config文件
General setup:
[*]Initial RAM filesystem and RAM disk (initramfs/initrd) support
(/opt/EmbedSky/rootfs) Initramfs source file(s)
- 在根文件系统(rootfs)建立init软连接:
cd rootfs
ln -s ./bin/busybox init
- 编译内核
make uImage