Linux proc机制

Linux proc机制

proc - process information pseudo-filesystem which is used as an interface to kernel data structures. It is

commonly mounted at /proc.  Most of it is read-only, but some files allow kernel variables to be changed.
上面是man proc里面的说明,可以看出,proc文件系统是动态从系统内核读出所需信息并提交的。在/proc下还有三个很重要的目录:net,scsi和sys。 Sys目录是可写的,可以通过它来访问或修改内核的参数(见下一部分),而net和scsi则依赖于内核配置

proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。下面是一些重要的文件:

* /proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)
* /proc/meminfo - 物理内存、交换空间等的信息
* /proc/mounts - 已加载的文件系统的列表
* /proc/devices - 可用设备的列表
* /proc/filesystems - 被支持的文件系统
* /proc/modules - 已加载的模块
* /proc/version - 内核版本
* /proc/cmdline - 系统启动时输入的内核命令行参数

在 /proc 中有一些编号的子目录。每个编号的目录对应一个进程 id (PID)。这样,每一个运行中的进程 /proc 中都有一个用它的 PID 命名的目录。这些子目录中包含可以提供有关进程的状态和环境的重要细节信息的文件。系统中的top、ps等命令都是通过读取proc文件中的内容,通过重 新编码来显示的。

ls -2907 (2907为系统中的ftp服务进程)
dr-xr-xr-x 2 root root 0 07-14 19:44 attr
-r-------- 1 root root 0 07-14 19:44 auxv
-r--r--r-- 1 root root 0 07-14 19:44 cmdline
-r--r--r-- 1 root root 0 07-14 19:44 cpuset
lrwxrwxrwx 1 root root 0 07-14 19:44 cwd -> /
-r-------- 1 root root 0 07-14 19:44 environ
lrwxrwxrwx 1 root root 0 07-14 19:44 exe -> /usr/sbin/vsftpd
dr-x------ 2 root root 0 07-14 19:44 fd
-rw-r--r-- 1 root root 0 07-14 19:44 loginuid
-r--r--r-- 1 root root 0 07-14 19:44 maps
-rw------- 1 root root 0 07-14 19:44 mem
-r--r--r-- 1 root root 0 07-14 19:44 mounts
-r-------- 1 root root 0 07-14 19:44 mountstats
-rw-r--r-- 1 root root 0 07-14 19:44 oom_adj
-r--r--r-- 1 root root 0 07-14 19:44 oom_score
lrwxrwxrwx 1 root root 0 07-14 19:44 root -> /
-r--r--r-- 1 root root 0 07-14 19:44 schedstat
-r-------- 1 root root 0 07-14 19:44 smaps
-r--r--r-- 1 root root 0 07-14 19:44 stat
-r--r--r-- 1 root root 0 07-14 19:44 statm
-r--r--r-- 1 root root 0 07-14 19:44 status
dr-xr-xr-x 3 root root 0 07-14 19:44 task
-r--r--r-- 1 root root 0 07-14 19:44 wchan

cat cmdline
/usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf
可以看出来,这个文件中的为进程启动时候的命令,用ps命令查看进程的时候cmd就是是这个文件的内容,可以看出来ps命令其实就是读取proc文件下的编号为整数(进程id)的文件夹下特定的文件并按照一定的格式重新编码然后显示的。


参考:
http://system/2008/04/27/996792.shtml
http://blog.csdn.net/zhenwenxian/article/details/6076685

http://www.comptechdoc.org/os/linux_hlproc.html

posted @ 2015-07-24 17:03  alxe_yu  阅读(250)  评论(0编辑  收藏  举报