一、根文件系统
根文件系统是内核启动后挂载的第一个文件系统,系统引导程序会在根文件系统挂载后 从中把一些基本的初始化脚本和服务等加载到内存中去运行
1.1 根文件系统的内容
1. bin:shell命令(elf格式)(通过busybox编译生成)/内核不支持这些shell命令
2.sbin:系统管理shell命令(elf格式)(通过busybox编译生成)
bin 和 sbin放置 shell命令,因为内核不支持这些命令
3.usr shell命令(elf格式)(通过busybox编译生成)
4.linuxrc:内核运行的第一个应用程序(通过busybox编译生成)
5.lib:共享库(elf格式)(从交叉编译工具链中获取)/内核不支持库
库简易说就是已经写好的程序。动态库(共享库,编译不链接库,执行再链接库)和静态库(编译链接库,可执行文件也有静态库的,但是体积较大)。所以开发板上只需要动态库即可
6. etc 内核配置文件
7.空文件
dev 设备文件(内核启动后会将设备信息写入该目录)
mnt 挂载目录(非必要)
proc 进程相关文件(内核启动后会将进程信息写入该目录)
root 超级用户家目录(非必要)
sys 驱动相关文件(内核启动后会将驱动信息写入该目录)
usr shell命令(elf格式)(通过busybox编译生成)
二、根文件系统移植
BusyBox将很多常用的工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令,BusyBox实现的命令都是精简版的,很多扩展都不支持。生成的命令很小,轻量化,BusyBox被称为Linux工具里的瑞士军刀
BusyBox的获取:https://busybox.net/downloads/
编译、安装busybox
添加lib库文件,etc/,并创建其他目录
开发板成功挂载