九、根文件系统移植
1、根文件系统
1.1 根文件系统
根文件系统是内核启动后挂载的第一个文件系统系统引导程序会在根文件系统挂载后从中把一些基本的初始化脚本和服务等加载到内存中去运行
1.2 根文件系统内容
bin shell命令(elf格式)(通过busybox编译生成)
dev 设备文件(内核启动后会将设备信息写入该目录)
etc 内核配置文件
lib 共享库(elf格式)(从交叉编译工具链中获取)
linuxrc 内核运行的第一个应用程序(通过busybox编译生成)
mnt 挂载目录(非必要)
proc 进程相关文件(内核启动后会将进程信息写入该目录) root 超级用户家目录(非必要)
sbin 系统管理shell命令(elf格式)(通过busybox编译生成)
sys 驱动相关文件(内核启动后会将驱动信息写入该目录)
usr shell命令(elf格式)(通过busybox编译生成)
2、根文件系统移植
2.1 BusyBox
BusyBox
BusyBox将很多常用的工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令,BusyBox实现的命令都是精简版的,很多扩展都不支持。BusyBox被称为Linux工具里的瑞士军刀
BusyBox的获取
day9作业
1.简述根文件系统中主要包含了哪些内容及包含这些内容的原因?
1、/bin目录 shell命令(elf格式)(通过busybox编译生成),我们在利用Busybox制作根文件系统时,在生成的bin目录下,可以看到一些可执行的文件,也就是可用的一些命令。
2、/sbin目录 该目录下存放系统命令,即只有系统管理员(俗称最高权限的root)能够使用的命令
3、/dev目录 该目录下存放的是设备与设备接口的文件,设备文件是Linux中特有的文件类型,在Linux系统下,以文件的方式访问各种设备,即通过读写某个设备文件操作某个具体硬件。
4、/etc目录 该目录下存放着系统主要的配置文件,例如人员的账号密码文件、各种服务的其实文件等。
5、/lib目录 该目录下存放共享库和可加载(驱动程序),共享库用于启动系统。运行根文件系统中的可执行程序,比如:/bin /sbin 目录下的程序。
6、/mnt目录 用于临时挂载某个文件系统的挂接点,通常是空目录,也可以在里面创建一引起空的子目录
7、/root目录 系统管理员(root)的主文件夹,即是根用户的目录,与此对应,普通用户的目录是/home下的某个子目录。
8、/usr目录 /usr目录的内容可以存在另一个分区中,在系统启动后再挂接到根文件系统中的/usr目录下。
9、/proc目录 这是一个空目录,常作为proc文件系统的挂接点,proc文件系统是个虚拟的文件系统,它没有实际的存储设备,里面的目录,文件都是由内核
10、 /tmp目录 用于存放临时文件,通常是空目录,一些需要生成临时文件的程序用到的/tmp目录下,所以/tmp目录必须存在并可以访问。
2.使用BusyBox制作的Linux工具有哪些特点,为什么嵌入式领域一般都使用BusyBox?
BusyBox将很多常用的工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令。
BusyBox是跟文件系统,根文件系统是一系列linux应用程序的集合,典型的是一个shell程序,可以作为终端输入命令行供用户执行应用程序,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍。