以下内容源于网络资源的整理,如有侵权请告知删除。
我们利用Busybox制作根文件系统,就是为了创建下面的这些目录和各文件。其中有些目录和文件不是构建最小根文件系统所必需的,有些却是必需的。
1、/linuxrc文件
这是最重要的文件,是构建最小rootfs必不可少的文件。
2、/dev目录
在linux中一切皆是文件,因此一个硬件设备也被虚拟化成一个设备文件,设备文件是linux中特有的文件类型。该目录下存放的是设备文件,/dev/xxx就表示一个硬件设备。
在Linux系统下,以访问文件的方式来操作各种设备,即通过读写某个设备文件来操作某个具体硬件,即先open这个设备文件,然后read/write/ioctl这个设备,最后close这个设备。比如通过“dev/ttySAC0”文件可以操作串口0,通过“/dev/mtdblock1”可以访问MTD设备的第2个分区。
在最小rootfs中/dev目录是不可少的,因为这里面有一两个设备文件是rootfs必须的。
3、/sys和/proc目录
这两个目录在最小rootfs中也是不可省略的,但只要创建空文件夹即可,里面不需其他文件。这两个目录与驱动有关,属于linux中的虚拟文件系统。
/proc是一个空目录,常作为proc文件系统的挂载点,proc文件系统是个虚拟的文件系统,它没有实际的存储设备,里面的目录与文件都是由内核临时生成的,用来表示系统的运行状态,我们也可以操作其中的文件来控制系统。
4、/usr目录
该目录是用户所拥有的文件的存放目录。
/usr 目录中的文件可以存在另一个分区,系统启动以后再挂载到/usr目录下,它里面存放的是共享的、只读的程序和数据,这表明/usr目录下的内容可以在多个主机间共享。其他主机相关的可变的文件应该保存在其他目录,比如/var。
/usr目录在嵌入式中可以精减。
5、/etc目录
/etc目录中的所有文件全部都是运行时配置文件,会直接或者间接被/linuxrc调用,完成操作系统的运行时配置。
对于PC上的Linux系统,/etc目录下的文件和目录非常多,这些目录文件是可选的,它们依赖于系统中所拥有的应用程序,依赖于这些程序是否需要配置文件。在嵌入式系统中这些内容可以大为精减。
6、/lib目录
/lib目录也不能省略。该目录存放着当前操作系统中的动态和静态链接库文件。
我们主要是为了其中的动态链接库。
7、/bin目录
该目录存放着所有用户都可以使用的、基本的命令,比如cat,chgrp,chmod,cp,ls,sh,kill,mount,umount,mkdir,mknod,[,test等。
这些命令在挂接其它文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中。
我们在利用Busybox制作根文件系统时,在生成的bin目录下的可执行的文件,也就是可用的一些命令。
8、/sbin 目录
该目录存放着系统命令,即只有管理员能够使用的命令,比如shutdown reboot fdisk fsck等命令。
系统命令还可以存放在/usr/sbin,/usr/local/sbin目录下,/sbin目录中存放的是基本的系统命令,它们用于启动系统,修复系统等。本地用户自己安装的系统命令放在/usr/local/sbin目录下。
与/bin目录相似,在挂接其他文件系统之前就可以使用/sbin,所以/sbin目录必须和根文件系统在同一个分区中。
9、/home目录
用户目录,它是可选的,对于每个普通用户,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置文件。
10、/root目录
根用户的目录,与此对应,普通用户的目录是/home下的某个子目录。
11、/var目录
与/usr目录相反,/var目录中存放可变的数据,比如spool目录(mail,news),log文件,临时文件。
12、/mnt目录
用于临时挂载某个文件系统的挂载点,一般用来临时挂载光盘,硬盘。
通常是空目录,也可以在里面创建空的子目录,比如/mnt/cdram /mnt/hda1 。
13、/tmp目录
用于存放临时文件,通常是空目录。