第一、二期銜接——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工具鏈


一、前言

在上一篇博文,已經成功構建了最小的根文件系統但是這個文件系統所實現的功能不全

:當我們(在燒寫在開發版上的根文件系統)輸入ps命令時,會出現下面的情況:提示不可打開/proc
在這裏插入圖片描述
嘗試一下手工新建一個/proc的目錄mkdir proc,可以看到依舊不會顯示當前進程 (process) 的狀態。
在這裏插入圖片描述
輸入指令mount -t proc none /proc,可以看到正確顯示了當前進程 (process) 的狀態。
在這裏插入圖片描述
提問:爲什麼會這樣呢?
回答:

  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
在這裏插入圖片描述在這裏插入圖片描述
③、添加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也成功掛載
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章