根文件系统/proc的完善
/*
*硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)
*软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
*参考资料:《嵌入式Linux应用开发手册》、https://www.iteye.com/blog/luckyclouds-675711
*/
目录
一、前言
在上一篇博文,已经成功构建了最小的根文件系统,但是这个文件系统所实现的功能不全。
如:当我们(在烧写在开发版上的根文件系统)输入ps
命令时,会出现下面的情况:提示不可打开/proc
。
尝试一下手工新建一个/proc
的目录mkdir proc
,可以看到依旧不会显示当前进程 (process) 的状态。
再输入指令mount -t proc none /proc
,可以看到正确显示了当前进程 (process) 的状态。
提问:为什么会这样呢?
回答:
/proc
是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息。mount -t proc none /proc
作用是把proc这个虚拟文件系统挂载到/proc目录,所以当我们再次执行ps
指令的时候,就会成功显示当前进程 (process) 的状态
如果我们需要执行
ps
指令,则必须得通过指令来手工挂载/proc
,太麻烦了。
所以我们需要进一步完善根文件系统。
二、/proc
完善方法一:
1、新建/proc子目录
这个时候操作的是在PC机上的根文件系统,即上一篇博文的/first_fs
文件夹
在/first_fs
文件目录下新建/proc
子目录mkdir proc
2、修改配置文件,添加脚本
在/first_fs/etc/inittab
中加入::sysinit:/etc/init.d/rcS
3、创建脚本文件,添加挂载命令
在/first_fs
目录下
①、创建目录mkdir etc/init.d
②、添加脚本vi eic/init.d/rcS
,挂载命令为mount -t proc none /proc
③、添加rcS
的属性chmod +x etc/init.d/rcS
三、/proc
完善方法二:
上面介绍了第一种可以通过添加脚本vi eic/init.d/rcS
,添加挂载命令为mount -t proc none /proc
实现挂载。
这里我们介绍一下第二种挂载/proc
的方法:挂载命令为mount -a
mount -a
:读出/etc/fstab
目录下的内容,根据文件中的内容来进行挂载。
1、在脚本文件中,添加挂载命令
执行vi eic/init.d/rcS
,挂载命令为mount -a
2、新建/etc/fstab
文件
执行vi etc/fstal
,输入proc /proc proc defaults 0 0
3、生成映像文件
在/first_fs
的上一级目录执行mkyaffs2image first_fs first_fs.yaffs2
四、结果
使用USB下载口,烧写first_fs.yaffs2
到开发版,可以看到系统一开始就可以执行ps
/proc也成功挂载