日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Solaris內核目錄

目錄:

概述
◆ /proc/目錄簡介
◆ procfs的實現(xiàn)
后記

--------------------------------------------------------------------------

概述:

進程文件系統(tǒng) -- procfs -- 允許像管理文件那樣直接管理內核進程 。

進程文件系統(tǒng),procfs,是一個偽文件系統(tǒng),提供了內核進程表的文件系統(tǒng)接口,
Jim Mauro 在這里概要介紹了procfs 。

翻譯本文的目的在于編寫64-bit下的SLKM,歡迎對此感興趣的朋友交流 。

--------------------------------------------------------------------------

◆ /proc/目錄簡介

進程文件系統(tǒng),procfs,是一個偽文件系統(tǒng),它允許對一些非傳統(tǒng)意義上的文件
通過標準文件I/O接口進行訪問 。procfs將Solaris內核進程架構進行了抽象,比如當前系統(tǒng)中所有運行著的進程會在/proc/目錄下有所體現(xiàn) 。系統(tǒng)中每個進程對應/proc/目錄下的一個子目錄,子目錄名即相應進程號(PID),所有進程號子目錄構成了/proc/目錄的全部內容 。

許多提供進程數(shù)據(jù)和控制點的內核數(shù)據(jù)結構在/proc//子目錄下有相應反映,
比如,多線程進程中每個LWP的相關數(shù)據(jù)和控制結構體現(xiàn)在/proc//lwp/
中 。/proc/目錄下的對象不是真實磁盤文件,這些對象位于內核內存中,用戶執(zhí)行l(wèi)s(1)命令顯示/proc/目錄結構時,系統(tǒng)讀取內核內存并返回相應內容 。

通過/proc,相對簡便地就可以獲取進程信息,比如進程執(zhí)行環(huán)境、內核資源利
用率 。進程控制和procfs直接相關,procfs最初的設計目的很簡單,就是為編寫調試器提供一組接口,現(xiàn)在已經有了相當大的改進 。

Solaris系統(tǒng)在/usr/proc/bin/目錄下提供了一組工具從/proc中析取進程信息,
同時可以進行簡單的進程控制 ??梢詤⒖磒roc(1)手冊頁 。進程狀態(tài)命令ps(1)也利用了procfs接口 。

下面列舉可以通過/proc文件系統(tǒng)獲取的控制和信息數(shù)據(jù),關于這些文件的詳細
信息參看proc(4)手冊頁 。

/proc -- procfs的根目錄

/proc/ -- 某一確定進程的根目錄,進程PID正是子目錄名

/proc//as -- 進程地址空間,即struct proc結構中p_as成員 。換句話說,進
程地址空間以/proc//as文件的形式展現(xiàn)出來,通過這個偽文件系統(tǒng)接口可以訪
問相應進程地址空間 。

struct as * p_as; /* 進程地址空間指針 */

# ls -l /proc/53/as
-rw------- 1 root root 1458176 2月 8 17:34 /proc/53/as

struct proc結構定義在/usr/include/sys/proc.h文件中 。

/proc//ctl -- 一個進程控制文件 。可以只寫打開該文件,然后給相應進程發(fā)
送控制信息 ??梢酝V?、啟動進程,設置進程停止于某一特殊事件 。這演示了procfs的強大和便捷 。進程控制、事件跟蹤可以通過打開相應進程的控制文件完成,只需要寫入期待行為的控制信息 。參看proc(4)手冊了解控制信息和控制函數(shù)的詳細介紹 。

/proc//status -- 進程狀態(tài)信息 。對應/usr/include/sys/procfs.h文件里定
義的struct pstatus結構 。proc(4)手冊頁里也有描述 。這個結構中有一個成員

lWPStatus_t pr_lwp; /* status of the representative lwp */

該成員對應一個有代表性的LWP(輕量級進程) 。單線程進程只有一個LWP,很容易選定這個有代表性的LWP 。那些多線程進程通常有多個LWPs,一個內核函數(shù)遍歷當前進程的所有LWPs,根據(jù)他們的狀態(tài)選取這個有代表性的LWP 。首先選取正在執(zhí)行中的LWP,如果不存在這樣的LWP,按照可運行、休眠、停止的順序選取LWP 。

/proc//lstatus -- lwpstatus結構數(shù)組,進程中每個LWP對應一個lwpstatus結構 。struct lwpstatus結構定義在/usr/include/sys/procfs.h文件中 。

/proc//psinfo -- 類似ps(1)命令提供的進程信息 。對應struct psinfo結構,

推薦閱讀