rootfs文件系统的制作(一)

根文件系统(root filesystem)是存放运行、维护系统所必须的各种工具软件、库文件、脚本、配置文件和其他特殊文件的地方,也可以安装各种软件包。

一般根文件系统主要目录结构:



创建根文件系统步骤

1、采用Busybox创建基本命令
2、创建基本的目录 /lib /etc /var /tmp /dev /sys /proc等
3、添加glibc基本动态库
4、创建基本的设备节点
5、添加启动配置和脚本程序 /etc/inittab  /etc/fstab /etc/init.d/rcS
6、测试根文件系统
7、制作根文件系统镜像


BusyBox init 执行的几个阶段:
1. 设置 init 信号句柄
2. 初始化 console(s)
3. 解析 inittab 文件, /etc/inittab
如果  /etc/inittab 不存在, BusyBox 使用缺省值:
详细内容参考 BusyBox 相关文档

4. 运行系统初始化脚本 (BusyBox use /etc/init.d/rcS作为缺省)

在这里你可以做的工作:

重新以 rw 模式挂载根文件系统

挂载附加的文件系统

初始化并启动网络接口

启动系统守护进程

5.  运行 inittab中所有action 为 wait 的命令

6.  运行 inittab 中所有action 为 once的命令

7. 循环运行:

1)运行 inittab中所有action 为 respawn 的命令

2)运行 inittab中所有action 为 askfirst的命令


嵌入式系统中常用文件系统包括有:cramfssquashfsJFFS2yaffs2UBIFSext4

它们的特点如下:

1、cramfsJFFS2具有好的空间特性,生成的镜像小,占用的Flash空间小,很适合

小型嵌入式产品应用;

2、cramfssquashfs为只读压缩文件系统,squashfs相比于 cramfs,能提供更大的压

缩比,支持更大的镜像和文件;

3、JFFS2为可读写的压缩文件系统,其挂载时间与Flash容量有关,越大的 Flash

挂载时间越长,而且每次加载都需要将Flash 上的所有节点(JFFS2的存储单位)

载到内存,因此内存消耗较大。由于JFFS2 是按字节访问 Flash,因此,只能用于

SPI NOR Flash,不能用于NAND Flash

4、yaffs2文件系统是 NAND Flash 上使用较为成熟的文件系统,并且只能用于NAND

Flash,相比于JFFS2,其内存消耗较小,但挂载时间仍然与Flash容量相关,越大

Flash,挂载时间越长;

5、UBIFS一种用在大容量 Flash 上的可读写文件系统,对 Flash 的容量依赖较小,相

比于yaffs2JFFS2,其挂载时间和内存消耗都小很多,可以很好的适应GB以上

大小的大容量Flash

6、ext4Linux系统下的日志文件系统,适用于eMMC这类块设备存储器件。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值