进程文件系统,procfs,是一个伪文件系统,它允许对一些非传统意义上的文件通过标准文件i/o接口进行访问。procfs将solaris内核进程架构进行了抽象,比如当前系统中所有运行着的进程会在/proc/目录下有所体现。系统中每个进程对应/proc/目录下的一个子目录,子目录名即相应进程号(pid),所有进程号子目录构成了/proc/目录的全部内容。
许多提供进程数据和控制点的内核数据结构在/proc//子目录下有相应反映,
比如,多线程进程中每个lwp的相关数据和控制结构体现在/proc//lwp/ 中。 /proc/目录下的对象不是真实磁盘文件,这些对象位于内核内存中,用户执行ls(1)命令显示/proc/目录结构时,系统读取内核内存并返回相应内容。
通过/proc,相对简便地就可以获取进程信息,比如进程执行环境、内核资源利用率。进程控制和procfs直接相关,procfs最初的设计目的很简单,就是为编写调试器提供一组接口,现在已经有了相当大的改进。
solaris系统在/usr/proc/bin/目录下提供了一组工具从/proc中析取进程信息,同时可以进行简单的进程控制。可以参看proc(1)手册页。进程状态命令ps(1)也利用了procfs接口。
下面列举可以通过/proc文件系统获取的控制和信息数据,关于这些文件的详细信息参看proc(4)手册页。
/proc -- procfs的根目录
/proc/ -- 某一确定进程的根目录,进程pid正是子目录名
/proc//as -- 进程地址空间,即struct proc结构中p_as成员。换句话说,进程地址空间以/proc//as文件的形式展现出来,通过这个伪文件系统接口可以访问相应进程地址空间。
struct as * p_as; /* 进程地址空间指针 */
# ls -l /proc/53/as
-rw------- 1 root root 1458176 2月 8 17:34 /proc/53/as
如果喜欢solaris内核proc目录简介请收藏或告诉您的好朋友.
阅读(246) | 评论(0) | 转发(0) |