第一、二期衔接——2.2 完善最小根文件系统-/proc

根文件系统/proc的完善

  • 硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)
  • 软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
  • 参考资料:《嵌入式Linux应用开发手册》、https://www.iteye.com/blog/luckyclouds-675711
  • 开发环境:Linux 2.6.22.6 内核、arm-linux-gcc-3.4.5-glibc-2.3.6工具链

目录

  • 根文件系统/proc的完善
    • 一、前言
    • 二、`/proc`完善方法一:
      • 1、新建/proc子目录
      • 2、修改配置文件,添加脚本
      • 3、创建脚本文件,添加挂载命令
    • 三、`/proc`完善方法二:
      • 1、在脚本文件中,添加挂载命令
      • 2、新建`/etc/fstab`文件
      • 3、生成映像文件
    • 四、结果


一、前言

在上一篇博文,已经成功构建了最小的根文件系统但是这个文件系统所实现的功能不全

:当我们(在烧写在开发版上的根文件系统)输入ps命令时,会出现下面的情况:提示不可打开/proc
在这里插入图片描述
尝试一下手工新建一个/proc的目录mkdir proc,可以看到依旧不会显示当前进程 (process) 的状态。
第一、二期衔接——2.2 完善最小根文件系统-/proc_第1张图片
输入指令mount -t proc none /proc,可以看到正确显示了当前进程 (process) 的状态。
第一、二期衔接——2.2 完善最小根文件系统-/proc_第2张图片
提问:为什么会这样呢?
回答:

  1. /proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息。
  2. 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
第一、二期衔接——2.2 完善最小根文件系统-/proc_第3张图片在这里插入图片描述
③、添加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也成功挂载
第一、二期衔接——2.2 完善最小根文件系统-/proc_第4张图片

你可能感兴趣的:(嵌入式Linux第一,二阶段衔接)