免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1221 | 回复: 0
打印 上一主题 下一主题

虚拟文件系统:PROC [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-11 18:08 |只看该作者 |倒序浏览
简介:    Linux系统上的/proc目录是一种文件系统,与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
    基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点,比如有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的大小却会显示为0字节。此外,这些特殊文件中大多数文件的时间及日期属性通常为当前系统时间和日期,这跟它们随时会被刷新(存储于RAM中)有关。
    为了查看及使用上的方便,这些文件通常会按照相关性进行分类存储于不同的目录甚至子目录中,如/proc/scsi目录中存储的就是当前系统上所有SCSI设备的相关信息,/proc/N中存储的则是系统当前正在运行的进程的相关信息,其中N为正在运行的进程的PID。
    大多数虚拟文件可以使用文件查看命令如cat、more或者less进行查看,有些文件信息表述的内容可以一目了然,但也有文件的信息却不怎么具有可读性。不过,这些可读性较差的文件在使用一些命令如apm、free、lspci或top查看时却可以有着不错的表现。
常见文件介绍:
/proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件。
[root@rhel5 ~]# ll /proctotal 0dr-xr-xr-x  5 root      root              0 Feb  8 17:08 1dr-xr-xr-x  5 root      root              0 Feb  8 17:08 10dr-xr-xr-x  5 root      root              0 Feb  8 17:08 11dr-xr-xr-x  5 root      root              0 Feb  8 17:08 1156dr-xr-xr-x  5 root      root              0 Feb  8 17:08 139dr-xr-xr-x  5 root      root              0 Feb  8 17:08 140dr-xr-xr-x  5 root      root              0 Feb  8 17:08 141dr-xr-xr-x  5 root      root              0 Feb  8 17:09 1417dr-xr-xr-x  5 root      root              0 Feb  8 17:09 1418
上面列出的是/proc目录中一些进程相关的目录,每个目录中是当程本身相关信息的文件。下面是RHEL5.3上运行的一个PID为2674的进程saslauthd的相关文件,其中有些文件是每个进程都会具有的,后文会对这些常见文件做出说明。
[root@rhel5 ~]# ll /proc/2674total 0dr-xr-xr-x 2 root root 0 Feb  8 17:15 attr-r-------- 1 root root 0 Feb  8 17:14 auxv-r--r--r-- 1 root root 0 Feb  8 17:09 cmdline-rw-r--r-- 1 root root 0 Feb  8 17:14 coredump_filter-r--r--r-- 1 root root 0 Feb  8 17:14 cpusetlrwxrwxrwx 1 root root 0 Feb  8 17:14 cwd -> /var/run/saslauthd-r-------- 1 root root 0 Feb  8 17:14 environlrwxrwxrwx 1 root root 0 Feb  8 17:09 exe -> /usr/sbin/saslauthddr-x------ 2 root root 0 Feb  8 17:15 fd-r-------- 1 root root 0 Feb  8 17:14 limits-rw-r--r-- 1 root root 0 Feb  8 17:14 loginuid-r--r--r-- 1 root root 0 Feb  8 17:14 maps-rw------- 1 root root 0 Feb  8 17:14 mem-r--r--r-- 1 root root 0 Feb  8 17:14 mounts-r-------- 1 root root 0 Feb  8 17:14 mountstats-rw-r--r-- 1 root root 0 Feb  8 17:14 oom_adj-r--r--r-- 1 root root 0 Feb  8 17:14 oom_scorelrwxrwxrwx 1 root root 0 Feb  8 17:14 root -> /-r--r--r-- 1 root root 0 Feb  8 17:14 schedstat-r-------- 1 root root 0 Feb  8 17:14 smaps-r--r--r-- 1 root root 0 Feb  8 17:09 stat-r--r--r-- 1 root root 0 Feb  8 17:14 statm-r--r--r-- 1 root root 0 Feb  8 17:10 statusdr-xr-xr-x 3 root root 0 Feb  8 17:15 task-r--r--r-- 1 root root 0 Feb  8 17:14 wchan
cmdline  启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息。[root@rhel5 ~]# more /proc/2674/cmdline /usr/sbin/saslauthd
cwd  指向当前进程运行目录的一个符号链接。
environ  当前进程的环境变量列表,环境变量彼此之间用空字符(NULL)隔开。变量名用大写字母表示,其值用小写字母表示。[root@rhel5 ~]# more /proc/2674/environ TERM=linuxauthd
exe  指向启动当前进程的可执行文件(完整路径)的符号链接,通过/proc/N/exe可以启动当前进程的一个拷贝。
fd  这是个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接。[root@rhel5 ~]# ll /proc/2674/fdtotal 0lrwx------ 1 root root 64 Feb  8 17:17 0 -> /dev/nulllrwx------ 1 root root 64 Feb  8 17:17 1 -> /dev/nulllrwx------ 1 root root 64 Feb  8 17:17 2 -> /dev/nulllrwx------ 1 root root 64 Feb  8 17:17 3 -> socket:[7990]lrwx------ 1 root root 64 Feb  8 17:17 4 -> /var/run/saslauthd/saslauthd.pidlrwx------ 1 root root 64 Feb  8 17:17 5 -> socket:[7991]lrwx------ 1 root root 64 Feb  8 17:17 6 -> /var/run/saslauthd/mux.accept
limits  当前进程所使用的每一个受限资源的软限制、硬限制和管理单元。此文件仅可由实际启动当前进程的UID用户读取。
maps  当前进程关联到的每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表。[root@rhel5 ~]# cat /proc/2674/maps 00110000-00239000 r-xp 00000000 08:02 130647     /lib/libcrypto.so.0.9.8e00239000-0024c000 rwxp 00129000 08:02 130647     /lib/libcrypto.so.0.9.8e0024c000-00250000 rwxp 0024c000 00:00 0 00250000-00252000 r-xp 00000000 08:02 130462     /lib/libdl-2.5.so00252000-00253000 r-xp 00001000 08:02 130462     /lib/libdl-2.5.so
mem  当前进程所占用的内存空间,由open、read和lseek等系统调用使用,不能被用户读取。
root  指向当前进程运行根目录的符号链接。在Unix和Linux系统上,通常采用chroot命令使每个进程运行于独立的根目录。
stat  当前进程的状态信息,包含一系统格式化后的数据列,可读性差,通常由ps命令使用。
statm  当前进程占用内存的状态信息,通常以“页面”(page)表示。
status  与stat所提供信息类似,但可读性较好,如下所示,每行表示一个属性信息。其详细介绍请参见 proc的man手册。[root@rhel5 ~]# more /proc/2674/status Name:   saslauthdState:  S (sleeping)SleepAVG:       0%Tgid:   2674Pid:    2674PPid:   1TracerPid:      0Uid:    0       0       0       0Gid:    0       0       0       0FDSize: 32Groups:VmPeak:     5576 kBVmSize:     5572 kBVmLck:         0 kBVmHWM:       696 kBVmRSS:       696 kB…………
task  目录文件,包含由当前进程所运行的每一个线程的相关信息,每个线程的相关信息文件均保存在一个由线程号(tid)命名的目录中,这类似于其内容类似于每个进程目录中的内容。
/proc下其他文件介绍:
/proc/apm高级电源管理(APM)版本信息及电池相关状态信息,通常由apm命令使用。
/proc/buddyinfo用于诊断内存碎片问题的相关信息文件。
/proc/cmdline在启动时传递至内核的相关参数信息,这些信息通常由lilo或grub等启动管理工具进行传递。[root@rhel5 ~]# more /proc/cmdline ro root=/dev/VolGroup00/LogVol00 rhgb quiet
/proc/cpuinfo处理器的相关信息的文件。
/proc/crypto系统上已安装的内核使用的密码算法及每个算法的详细信息列表。[root@rhel5 ~]# more /proc/crypto name         : crc32cdriver       : crc32c-genericmodule       : kernelpriority     : 0type         : digestblocksize    : 32digestsize   : 4…………
/proc/devices系统已经加载的所有块设备和字符设备的信息,包含主设备号和设备组(与主设备号对应的设备类型)名。[root@rhel5 ~]# more /proc/devices Character devices:  1 mem  4 /dev/vc/0  4 tty  4 ttyS  …………
Block devices:  1 ramdisk  2 fd  8 sd  …………
/proc/diskstats每块磁盘设备的磁盘I/O统计信息列表。
/proc/dma每个正在使用且注册的ISA DMA通道的信息列表。[root@rhel5 ~]# more /proc/dma2: floppy4: cascade
/proc/execdomains内核当前支持的执行域(每种操作系统独特“个性”)信息列表;[root@rhel5 ~]# more /proc/execdomains 0-0     Linux                   [kernel]
/proc/fb帧缓冲设备列表文件,包含帧缓冲设备的设备号和相关驱动信息。
/proc/filesystems当前被内核支持的文件系统类型列表文件,被标示为nodev的文件系统表示不需要块设备的支持。通常mount一个设备时,如果没有指定文件系统类型将通过此文件来决定其所需文件系统的类型。[root@rhel5 ~]# more /proc/filesystems nodev   sysfsnodev   rootfsnodev   proc        iso9660        ext3…………
/proc/iomem每个物理设备上的记忆体(RAM或者ROM)在系统内存中的映射信息。[root@rhel5 ~]# more /proc/iomem 00000000-0009f7ff : System RAM0009f800-0009ffff : reserved000a0000-000bffff : Video RAM area000c0000-000c7fff : Video ROM  …………
/proc/ioports当前正在使用且已经注册过的与物理设备进行通讯的输入-输出端口范围信息列表。如下面所示,第一列表示注册的I/O端口范围,其后表示相关的设备。[root@rhel5 ~]# less /proc/ioports 0000-001f : dma10020-0021 : pic10040-0043 : timer00050-0053 : timer10060-006f : keyboard............
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93994/showart_1962269.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP