【原创】嵌入式系统为什么需要文件系统?
0赞嵌入式系统为什么需要文件系统?首先看一下如果没有文件系统会有什么情况发生。
cramfs文件系统是一种经过压缩的、极为简单的只读文件系统,因此非常适合嵌入式系统。
busybox是构造文件系统最常用的软件工具包,它被非常形象地称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的Linux命令和工具结合到了一个单独的可执行程序(busybox)中。
虽然与相应的GNU工具比较起来,busybox所提供的功能和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中已经足够了。
busybox在设计上就充分考虑了硬件资源受限的特殊工作环境。它采用一种很巧妙的办法减少自己的体积:所有的命令都通过“插件”的方式集中到一个可执行文件中,在实际应用过程中通过不同的符号链接来确定到底要执行哪个操作。采用单一执行文件的方式最大限度地共享了程序代码,甚至连文件头、内存中的程序控制块等其他系统资源都共享了,对于资源比较紧张的系统来说,真是最合适不过了。在busybox的编译过程中,可以非常方便地加减它的“插件”,最后的符号链接也可以由编译系统自动生成。
使用busybox创建文件系统:
[root@localhost fs2410]# tar jxvf busybox-1.00.tar.bz2
[root@localhost fs2410]# cd busybox-1.00
[root@localhost busybox-1.00]# make defconfig /* 首先进行默认配置 */
[root@localhost busybox-1.00]# make menuconfig
# make
# make install PREFIX=/home/david/fs2410/cramfs
[root@localhost cramfs]# ls
bin linuxrc sbin usr
[root@localhost cramfs]# mkdir mnt root var tmp proc boot etc lib
[root@localhost cramfs]# mkdir /var/{lock,log,mail,run,spool}
[root@localhost fs2410]# mkdir cramfs
[root@localhost fs2410]# mount fs2410.cramgs cramfs –o loop
[root@localhost fs2410]# ls cramfs
bin dev etc home lib linuxrc proc Qtopia ramdisk sbin testshell tmp usr var
因为cramfs文件系统是只读的,所以不能在这个挂载目录下直接进行修改,因此需要将文件系统中的内容复制到另一个目录中 。
[root@localhost fs2410]# mkdir backup_cramfs
[root@localhost fs2410]# tar cvf backup.cramfs.tar cramfs/
[root@localhost fs2410]# mv backup.cramfs.tar backup_cramfs/
[root@localhost fs2410]# umount cramfs
[root@localhost fs2410]# cd backup_cramfs
[root@localhost backup_cramfs]# tar zvf backup.cramfs.tar
[root@localhost fs2410]# cp ~/hello backup_cramfs/cramfs/
[root@localhost backup_cramfs]# rm backup.cramfs.tar
[root@localhost fs2410]# mkcramfs backup_cramfs/cramfs/ new.cramfs