Solaris内核目录( 二 )


类似struct pstatus结构,struct psinfo结构中有一个成员

lwpsinfo_t pr_lwp; /* information for representative lwp */

该成员的对应一个有代表性的LWP 。

/proc//lpsinfo -- lwpsinfo结构数组,进程中每个LWP对应一个lwpsinfo结构

/proc//map -- 地址空间映射信息,可以用pmap(1)命令显示这些数据信息 。

/proc//rmap -- 进程中保留地址空间段 。用pmap -r命令显示这些数据信息 。

/proc//xmap -- 扩展地址空间映射信息 。用pmap -x命令显示这些数据信息 。

/proc//cred -- 进程身份验证信息,对应/usr/include/sys/procfs.h文件中
定义的struct prcred结构 。

/proc//sigact -- sigaction结构数组,描述和本进程相关的所有信号设置 。
struct sigaction结构定义在/usr/include/sys/signal.h文件中 。

/proc//auxv -- auxv_t结构数组,包含进程执行时传递给动态链接器的初始值 。
auxv_t结构定义在/usr/include/sys/auxv.h文件中 。

/proc//ldt -- 局部描述符表(LDT),仅存于Intel x86架构 。

/proc//usage -- 进程资源利用率的相关数据,对应struct prusage结构,该
结构定义在/usr/include/sys/procfs.h文件中 。

/proc//lusage -- prusage结构数组,对应各个LWP资源利用状况 。

/proc//pagedata -- 进程地址空间的另外一种表现方式,可以用于跟踪页面级
的引用和修改 。参看struct prpageheader结构定义 。

/proc//watch -- prwatch结构数组 。通过写控制文件/proc//ctl可以设
置PCWATCH操作,此时建立该文件 。允许监视一个或多个地址空间范围,当访问这些
被监视页面时,产生一次陷入 。

scz注:这个功能和SoftIce的BPR功能类似,adb支持这种陷入,不知是否利用了
procfs

/proc//cwd -- 到进程当前工作目录的符号链接

/proc//root -- 到进程根目录的符号链接(和上面那个什么区别)

/proc//fd -- 这是一个子目录,包含进程打开的文件句柄

/proc//fd/nn -- 对应进程打开的某个确定的文件句柄

/proc//object -- 这是一个子目录,包含进程相关的可执行文件以及动态链接
库 。

/proc//object/nn -- 二进制目标文件 。进程对应的可执行文件名为a.out,其
余是进程相关的动态链接库文件 。

object目录提供的信息是进程级的,每个/proc//目录有一个lwp子目录,提供
了LWP级的信息:

/proc//lwp -- 这是一个子目录,包含进程中所有LWPs的信息

/proc//lwp/ -- 这是一个子目录,包含对应lwpid的LWP信息

/proc//lwp//lwpctl -- 一个控制文件,通过它可以在LWP级上针对每
个LWP发布控制操作

/proc//lwp//lwpstatus -- LWP状态信息,对应lwpstatus结构,该结
构定义在/usr/include/sys/procfs.h文件中

/proc//lwp//lwpsinfo -- 对应lwpsinfo结构,同样定义在
/usr/include/sys/procfs.h文件中

/proc//lwp//lwpusage -- LWP资源利用信息,对应prusage结构

/proc//lwp//xregs -- 这个文件是处理器架构相关的,某些平台上可
能没有这个文件 。对于SPARC系统,这个文对应/usr/include/sys/procfs_isa.h文件中定义的prxregset结构 。

/proc//lwp//gWindows -- 常规寄存器窗口 。这个文件仅存于SPARC架
构的系统,描述LWP使用的常规寄存器组(硬件上下文的一部分),对应gwindows结构,该结构定义在/usr/include/sys/regset.h文件中 。

/proc//lwp//asrs -- 辅助寄存器组,仅存于SPARC V9(UltraSPARC)架
构,专为SPARC V9架构定义的一组额外的硬件寄存器,要求sun4u、64-bit内核(Solaris 7及其后续版本)、64-bit进程 。注意,64-bit内核可以运行32-bit进程,但是32-bit进程没有这样一个文件与之对应 。

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

◆ procfs的实现

推荐阅读