Linux下的/proc文件系统中提供了许多有用的信息,不仅基本的CPU使用率、版本号等linux解压rar,你甚至还可以在这儿直接看见内核的输出。下边这张表,简单举出/proc中文件的涵义:
文件名涵义
num
这种数字表示系统当前正在运行进程的进程号,上面包含对应进程相关的多个信息文件。
acpi
ACPI(中级配置和电源插口)支持操作系统设置和控制各个硬件部件。ACPI可以代替PnP和APM。它提供有关电瓶、AC适
配器、温度、风扇和系统风波(比如“合上机盖”或“电池电量低”)的信息。
buddyinfo
用于确诊显存碎片问题的相关信息文件;
bus
cgroups
cgroups(ControlGroups)是linux内核提供的一种机制,这些机制可以依据需求把一系列系统任务及其子任务整合(或分隔)到按资源界定等级的不同组内,因而为系统资源管理提供一个统一的框架。简单说,cgroups可以限制、记录任务组所使用的数学资源。本质上来说,cgroups是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。
cmdline
在启动时传递至内核的相关参数信息,这种信息一般由lilo或grub等启动管理工具进行传递;
consoles
cpuinfo
处理器的相关信息的文件;
crypto
系统上已安装的内核使用的密码算法及每位算法的详尽信息列表;
devices
系统早已加载的所有块设备和字符设备的信息,包含主设备号和设备组(与主设备号对应的设备类型)名;
diskstats
每块c盘设备的c盘I/O统计信息列表;(内核2.5.69之后的版本支持此功能)
dma
每位正在使用且注册的ISADMA通道的信息列表;
driver
内核当前支持的执行域(每种操作系统奇特“个性”)信息列表;
execdomains
Linux内核当前支持的executiondomains
fb
帧缓冲设备列表文件,包含帧缓冲设备的设备号和相关驱动信息;
filesystems
当前被内核支持的文件系统类型列表文件,被标识为nodev的文件系统表示不须要块设备的支持;一般mount一个设备时,假若没有指定文件系统类型将通过此文件来决定其所需文件系统的类型;
fs
interrupts
X86或X86_64体系构架系统上每位IRQ相关的中断号列表;多路处理器平台上每位CPU对于每位I/O设备均有自己的中断号;
iomem
每位化学设备上的记忆体(RAM或则ROM)在系统显存中的映射信息;
ioports
当前正在使用且早已注册过的与化学设备进行通信的输入-输出端口范围信息列表;如下边所示,第一列表示注册的I/O端口范围,其后表示相关的设备;
irq
为每位注册的irq创建一个以irq编号为名子的子目录
kallsyms
内核符号表(kernelsymboltable)作用,变量名或则函数名组成,每一项是符号和地址的序对,如同域名和ip地址
kcore
系统使用的化学显存,以ELF核心文件(corefile)格式储存,其文件大小为已使用的化学显存(RAM)加上4KB;这个文件拿来检测内核数据结构的当前状态,因而,一般由GBD一般调试工具使用,但不能使用文件查看命令打开此文件;
keys
假如一个进程希望了解它可以查看什么秘钥,它可以通过读取/proc/keys获得这种信息。在配置内核时,必须启用这个文件,由于它容许任何用户列举秘钥数据库。
key-users
kmsg
此文件拿来保存由内核输出的信息,一般由/sbin/klogd或/bin/dmsg等程序使用,不要企图使用查看命令打开此文件;
kpagecount
kpageflags
loadavg
保存关于CPU和c盘I/O的负载平均值,其前三列分别表示每一秒钟、每5秒钟及每15秒的负载平均值,类似于uptime命令输出的相关信息;第四列是由斜线隔开的两个数值,后者表示当前正由内核调度的实体(进程和线程)的数量,前者表示系统当前存活的内核调度实体的数量;第五列表示此文件被查看前近来一个由内核创建的进程的PID;
locks
保存当前由内核锁定的文件的相关信息,包含内核内部的调试数据;每位锁定抢占一行,且具有一个唯一的编号;如下输出信息中每行的第二列表示当前锁定使用的锁定类别,POSIX表示目前较新类型的文件锁,由lockf系统调用形成,FLOCK是传统的UNIX文件锁,由flock系统调用形成;第三列也一般由两种类型,ADVISORY表示不容许其他用户锁定此文件,但容许读取,MANDATORY表示此文件锁定期间不容许其他用户任何方式的访问;
mdstat
保存RAID相关的多块c盘的当前状态信息;
meminfo
系统中关于当前显存的借助状况等的信息linux 搜索文件内容,常由free命令使用;可以使用文件查看命令直接读取此文件,其内容显示为两列,后者为统计属性,前者为对应的值;
misc
modules
当前放入内核的所有模块名称列表,可以由lsmod命令使用,也可以直接查看;
mounts->self/mounts
在内核2.4.29版本曾经,此文件的内容为系统当前挂载的所有文件系统,在2.4.19之后的内核中引进了每位进程使用独立挂载名称空间的方法,此文件则急剧弄成了指向/proc/self/mounts(每位进程自身挂载名称空间中的所有挂载点列表)文件的符号链接;/proc/self是一个奇特的目录,后文中会对此目录进行介绍;
mtrr
net->self/net
pagetypeinfo
partitions
块设备每位分区的主设备号(major)和次设备号(minor)等信息,同时包括每位分区所包含的块(block)数量;
sched_debug
schedstat
scsi
self->22742
slabinfo
在内核中频繁使用的对象(如inode、dentry等)都有自己的cachelinux 搜索文件内容,即slabpool,而/proc/slabinfo文件列举了这种对象相关slap的信息;详情可以参见内核文档中slapinfo的指南页;
softirqs
stat
实时追踪自系统下次启动以来的多种统计信息;如下所示,其中,
“cpu”行后的八个值分别表示以1/100(jiffies)秒为单位的统计值(包括系统运行于用户模式、低优先级用户模式,运系统模式、空闲模式、I/O等待模式的时间等);
“intr”行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;之后每位数对应一个特定的中断自系统启动以来所发生的次数;
“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。
“btime”给出了从系统启动到现今为止的时间,单位为秒;
“processes(total_forks)自系统启动以来所创建的任务的个数量;
“procs_running”:当前运行队列的任务的数量;
“procs_blocked”:当前被阻塞的任务的数量;|
|swaps|当前系统上的交换分区及其空间借助信息,假如有多个交换分区的话,则会每位交换分区的信息分别储存于/proc/swap目录中的单独文件中,而其优先级数字越低,被使用到的可能性越大;下边是作者系统中只有一个交换分区时的输出信息;|
|sys|与/proc下其它文件的“只读”属性不同的是,管理员可对/proc/sys子目录中的许多文件内容进行更改以修改内核的运行特点,事先可以使用“ls-l”命令查看某文件是否“可写入”。写入操作一般使用类似于“echoDATA>/path/to/your/filename”的格式进行。须要注意的是,虽然文件可写,其通常也不可以使用编辑器进行编辑。
/proc/sys/debug子目录
此目录一般是一空目录;
/proc/sys/dev子目录
为系统上特殊设备提供参数信息文件的目录,其不同设备的信息文件分别储存于不同的子目录中,如大多数系统上就会具有的/proc/sys/dev/cdrom和/proc/sys/dev/raid(假如内核编译时开启了支持raid的功能)目录,其显存储的一般是系统上cdrom和raid的相关参数信息文件。|
|sysrq-trigger||
|sysvipc||
|timer_list||
|timer_stats||
|tty||
|uptime|系统下次启动以来的运行时间,如下所示linux嵌入式开发,其第一个数字表示系统运行时间,第二个数字表示系统空闲时间,单位是秒;|
|version|当前系统运行的内核版本号,在作者的RHEL5.3上都会显示系统安装的gcc版本,如下所示;|
|vmallocinfo||
|vmstat|当前系统虚拟显存的多种统计数据,信息量可能会比较大,这因系统而有所不同,可读性较好;下边为作者机器上输出信息的一个片断;(2.6之后的内核支持此文件)|
|zoneinfo|显存区域(zone)的详尽信息列表,信息量较大|
参考文献
我的博客正式同步至腾讯云+社区,约请你们一齐进驻: