对ROMFS文件系统的分析和改进
来作为下一个文件头起始地址,这样文件的寻址可以达到32位,ROMFS能够容纳的最大文件可以达到4G。
5.2 试验分析:
使用ROMFS生成一个文件系统。我们使用普通的Linux操作系统,内核版本为2.4.20-8,编译时选择支持ROMFS文件系统。至于romfs工具和源代码,可以从http://romfs.sourceforge.net得到。我们使用修改后的代码,同时对Linux中ROMFS的代码也要进行适当的修改,并重新编译内核。试验可以建立一个简单的目录FSROOT,目录结构如下:
FSROOT |
FILE1 |
FILE2 |
SUBDIR1 |
FILE3 |
FILE1 和FILE2 大小为100M,FILE3大小为512M
生成romfs的命令如下(在当前目录下):genromfs -f romfs.bin –d FSROOT/
程序会根据目录FSROOT内容生成一个名为 romfs.bin的映像文件。选择一个挂载点,如/home目录,将生成的romfs.bin挂载到该目录下,命令为 mount –t romfs romfs.bin /home,将指定的映像文件挂载到/home目录下。可以用ls命令查看该目录。
[root@linuxserver home]# ls
[root@linuxserver home]# DIR1 FILE1 FILE2
[root@linuxserver home]# cd DIR1
[root@linuxserver DIR1]# ls
[root@linuxserver DIR1]# FILE3
可以看到新修改的ROMFS文件系统工作的很好,能够容纳超过256M的文件,达到了我们预期的目的。
6.结束语
ROMFS是众多应用于嵌入式的文件系统之一,目前Linux和ucLinux都支持ROMFS。本文从数据的组织方式,基本数据结构,重要的操作的实现等方面详细分析了ROMFS的原理。同时指出了ROMFS一些局限性并做了一些改进工作。但是ROMFS本身的设计使其难以被修改为可擦写的文件系统,如果要在文件系统中提供可擦写功能,可以使用其它支持读写的嵌入式文件系统(比如JFFS2)以适应需要对闪存进行读写的应用。
本文的创新点在于对ROMFS 文件系统中文件寻址方法的改进,使得ROMFS可以支持更大的文件,满足了嵌入式设备中对存储系统更高的需求。
参考文献:
[1] 杨途军,郑明.嵌入式文件系统在触摸屏中的应用[J].微计算机信息.2005,5:100-101
[2] 孙建恒.嵌入式系统应用研究及实例[J].微计算机信息,2004,6:65-66
[3] 美 Moshe Bar《Linux文件系统》清华大学出版社
[4] Jonathan Corbet,Alessandro Rubini Greg Kroah-Hartman《Linux设备驱动程序》 O’REILLY 中国电力出版社
[5] Linux Kernel 2.4.20-8 Source Code[CP/OL].http://lxr.1inux. no/source/fs
[6] Janos Farkas ,Jakub Jelinek Genromfs 源代码. http://romfs.sourceforge.net
[7] 毛德操、胡希明,《linux内核源代码情景分析》浙江大学出版社
- linux文件系统基础(02-09)
- Linux下Ext2与Ext3文件系统的区别(04-10)
- 基于VxWorks的文件系统的研究与实现(09-18)
- 设备文件系统devfs详解(05-01)
- Linux的日志文件系统简要剖析(05-01)
- Flash文件系统剖析(05-07)