HardBirch

/proc目录下文件详解

时间:10-03-09 栏目:系统技术篇 作者:鲁智森也有文化 评论:0 点击: 1,483 次

作者:张子坚

email:zhangzijian@163.com

说明:本文所涉及示例均在
fedora core3
下得到。
 
--------------------------------------------------------------------------------
/proc

文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。可以使用的文件随系统配置的变化而变化。命令
procinfo
能够显示基于其中某些文件的多种系统信息。以下详细描述
/proc
下的文件。
 
--------------------------------------------------------------------------------
/proc/cmdline

文件


这个文件给出了内核启动的命令行。它和用于进程的
cmdline
项非常相似。


示例:
 
[root@localhost proc]# cat cmdline
ro root=LABEL=/ rhgb quiet
--------------------------------------------------------------------------------
/proc/cpuinfo

文件


这个文件提供了有关系统
CPU
的多种信息。这些信息是从内核里对
CPU
的测试代码中得到的。文件列出了
CPU
的普通型号(
386

486

586

686
等),以及能得到的更多特定信息(制造商,型号和版本)。文件还包含了以
bogomips
表示的处理器速度,而且如果检测到
CPU
的多种特性或者
bug
,文件还会包含相应的标志。这个文件的格式为:文件由多行构成,每行包括一个域名称,一个冒号和一个值。


示例:
 
[root@localhost proc]# cat cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Athlon(tm) XP 1800+
stepping : 1
cpu MHz : 1530.165
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
bogomips : 2998.27
--------------------------------------------------------------------------------
/proc/devices

文件


这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。


示例:
 
[root@localhost /]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
29 fb
36 netlink
116 alsa
128 ptm
136 pts
180 usb
Block devices:
1 ramdisk
2 fd
3 ide0
9 md
22 ide1
253 device-mapper
254 mdp 
--------------------------------------------------------------------------------
/proc/dma

文件
 

这个文件列出由驱动程序保留的
DMA
通道和保留它们的驱动程序名称。
casade
项供用于把次
DMA
控制器从主控制器分出的
DMA
行所使用;这一行不能用于其它用途。


示例:

[root@localhost ~]# cat /proc/dma
4: cascade
--------------------------------------------------------------------------------
/proc/filesystems

文件


这个文件列出可供使用的文件系统类型,一种类型一行。虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型。


示例:

[root@localhost proc]# cat /proc/filesystems 
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev binfmt_misc
nodev usbfs
nodev usbdevfs
nodev futexfs
nodev tmpfs
nodev pipefs
nodev eventpollfs
nodev devpts
ext2
nodev ramfs
nodev hugetlbfs
iso9660
nodev mqueue
nodev selinuxfs
ext3
nodev rpc_pipefs
nodev autofs 
--------------------------------------------------------------------------------
/proc/interrupts

文件


这个文件的每一行都有一个保留的中断。每行中的域有:中断号,本行中断的发生次数,可能带有一个加号的域(
SA_INTERRUPT
标志设置),以及登记这个中断的驱动程序的名字。可以在安装新硬件前,像查看
/proc/dma

/proc/ioports
一样用
cat
命令手工查看手头的这个文件。这几个文件列出了当前投入使用的资源(但是不包括那些没有加载驱动程序的硬件所使用的资源)。


示例:

[root@localhost SPECS]# cat /proc/interrupts
CPU0
0: 7039406 XT-PIC timer
1: 6533 XT-PIC i8042
2: 0 XT-PIC cascade
3: 0 XT-PIC uhci_hcd
5: 108 XT-PIC VIA8233, uhci_hcd
8: 1 XT-PIC rtc
9: 0 XT-PIC acpi
10: 0 XT-PIC ehci_hcd
11: 17412 XT-PIC uhci_hcd, eth0
12: 140314 XT-PIC i8042
14: 37897 XT-PIC ide0
15: 60813 XT-PIC ide1
NMI: 0
ERR: 1 
--------------------------------------------------------------------------------
/proc/ioports

文件


这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多
I/O
端口范围。


示例:

[root@localhost SPECS]# cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
0378-037a : parport0
037b-037f : parport0
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial
0800-0803 : PM1a_EVT_BLK
0804-0805 : PM1a_CNT_BLK
0808-080b : PM_TMR
0810-0815 : ACPI CPU throttle
0820-0823 : GPE0_BLK
0cf8-0cff : PCI conf1
dc00-dcff : 0000:00:12.0
dc00-dcff : via-rhine
e000-e0ff : 0000:00:11.5
e000-e0ff : VIA8233
e400-e41f : 0000:00:10.0
e400-e41f : uhci_hcd
e800-e81f : 0000:00:10.1
e800-e81f : uhci_hcd
ec00-ec1f : 0000:00:10.2
ec00-ec1f : uhci_hcd
fc00-fc0f : 0000:00:11.1
fc00-fc07 : ide0
fc08-fc0f : ide1 
--------------------------------------------------------------------------------
/proc/kcore

文件


这个文件是系统的物理内存以
core
文件格式保存的文件。例如,
GDB
能用它考察内核的数据结构。它不是纯文本,而是
/proc
目录下为数不多的几个二进制格式的项之一。


示例:


暂无
 
--------------------------------------------------------------------------------
/proc/kmsg

文件


这个文件用于检索用
printk
生成的内核消息。任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。也可以用系统调用
syslog
检索这些消息。通常使用工具
dmesg
或守护进程
klogd
检索这些消息。


示例:


暂无
 
--------------------------------------------------------------------------------
/proc/ksyms

文件


这个文件列出了已经登记的内核符号;这些符号给出了变量或函数的地址。每行给出一个符号的地址,符号名称以及登记这个符号的模块。程序
ksyms,insmod

kmod
使用这个文件。它还列出了正在运行的任务数,总任务数和最后分配的
PID



示例:


暂无
 
--------------------------------------------------------------------------------
/proc/loadavg

文件


这个文件给出以几个不同的时间间隔计算的系统平均负载,这就如同
uptime
命令显示的结果那样。前三个数字是平均负载。这是通过计算过去
1
分钟,
5
分钟,
15
分钟里运行队列中的平均任务数得到的。随后是正在运行的任务数和总任务数。最后是上次使用的进程号。


示例:

[root@localhost ~]# cat /proc/loadavg
0.11 0.16 0.14 3/126 3912 
--------------------------------------------------------------------------------
/proc/locks

文件


这个文件包含在打开的文件上的加锁信息。文件中的每一行描述了特定文件和文档上的加锁信息以及对文件施加的锁的类型。内核也可以需要时对文件施加强制性锁。


示例:

[root@localhost redhat]# cat /proc/locks
1: POSIX ADVISORY READ 3822 03:0a:1067117 0 EOF
2: POSIX ADVISORY READ 3822 03:0a:1067138 0 EOF
3: POSIX ADVISORY WRITE 3326 03:0a:2326540 0 EOF
4: POSIX ADVISORY WRITE 2639 03:0a:2966595 0 EOF
5: FLOCK ADVISORY WRITE 2591 03:0a:2966586 0 EOF
6: POSIX ADVISORY WRITE 2540 03:0a:2966578 0 EOF
7: POSIX ADVISORY WRITE 2530 03:0a:2966579 0 EOF
8: POSIX ADVISORY WRITE 2402 03:0a:2966563 0 EOF
9: POSIX ADVISORY WRITE 2371 03:0a:2966561 0 EOF 
--------------------------------------------------------------------------------

/proc/mdstat
文件


这个文件包含了由
md
设备驱动程序控制的
RAID
设备信息。


示例:


[root@localhost ~]# cat /proc/mdstat


Personalities :


unused devices: <none>


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


/proc/meminfo
文件


这个文件给出了内存状态的信息。它显示出系统中空闲内存,已用物理内存和交换内存的总量。它还显示出内核使用的共享内存和缓冲区总量。这些信息的格式和
free
命令显示的结果类似。


示例:


[root@localhost ~]# cat /proc/meminfo


MemTotal:       223812 kB


MemFree:          3764 kB


Buffers:          9148 kB


Cached:          92112 kB


SwapCached:        364 kB


Active:         183640 kB


Inactive:        17196 kB


HighTotal:           0 kB


HighFree:            0 kB


LowTotal:       223812 kB


LowFree:          3764 kB


SwapTotal:      626524 kB


SwapFree:       620328 kB


Dirty:              12 kB


Writeback:           0 kB


Mapped:         142880 kB


Slab:            12668 kB


Committed_AS:   376732 kB


PageTables:       2336 kB


VmallocTotal:  3907576 kB


VmallocUsed:      2968 kB


VmallocChunk:  3904224 kB


HugePages_Total:     0


HugePages_Free:      0


Hugepagesize:     4096 kB


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


/proc/misc
文件


这个文件报告用内核函数
misc_register
登记的设备驱动程序。


示例:


[root@localhost ~]# cat /proc/misc


63 device-mapper


175 agpgart


135 rtc 


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


/proc/modules
文件


这个文件给出可加载内核模块的信息。
lsmod
程序用这些信息显示有关模块的名称,大小,使用数目方面的信息。


示例:


[root@localhost /]# cat /proc/modules


md5 4033 1 - Live 0x10a7f000


ipv6 232577 8 - Live 0x10b0c000


parport_pc 24705 1 - Live 0x10a8b000


lp 11565 0 - Live 0x10a7b000


parport 41737 2 parport_pc,lp, Live 0x10a55000


autofs4 24005 0 - Live 0x10a74000


i2c_dev 10433 0 - Live 0x109d2000


i2c_core 22081 1 i2c_dev, Live 0x10a6d000


sunrpc 160421 1 - Live 0x10a9d000


ipt_REJECT 6465 1 - Live 0x109da000


ipt_state 1857 5 - Live 0x109eb000


ip_conntrack 40693 1 ipt_state, Live 0x10a62000


iptable_filter 2753 1 - Live 0x10896000


ip_tables 16193 3 ipt_REJECT,ipt_state,iptable_filter, Live 0x109ed000


dm_mod 54741 0 - Live 0x109f8000


button 6481 0 - Live 0x10905000


battery 8517 0 - Live 0x109d6000


ac 4805 0 - Live 0x10908000


uhci_hcd 31449 0 - Live 0x109dd000


ehci_hcd 31557 0 - Live 0x10949000


snd_via82xx 27237 2 - Live 0x10953000


snd_ac97_codec 64401 1 snd_via82xx, Live 0x10912000


snd_pcm_oss 47609 0 - Live 0x1093c000


snd_mixer_oss 17217 2 snd_pcm_oss, Live 0x1090c000


snd_pcm 97993 2 snd_via82xx,snd_pcm_oss, Live 0x10923000


snd_timer 29765 1 snd_pcm, Live 0x108ec000


snd_page_alloc 9673 2 snd_via82xx,snd_pcm, Live 0x108bd000


gameport 4801 1 snd_via82xx, Live 0x108a6000


snd_mpu401_uart 8769 1 snd_via82xx, Live 0x108b9000


snd_rawmidi 26725 1 snd_mpu401_uart, Live 0x108e4000


snd_seq_device 8137 1 snd_rawmidi, Live 0x1083b000


snd 54053 11 snd_via82xx,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device, Live 0x108f6000


soundcore 9889 2 snd, Live 0x1089b000


via_rhine 23497 0 - Live 0x1089f000


mii 4673 1 via_rhine, Live 0x10893000


floppy 58609 0 - Live 0x108a9000


ext3 116809 1 - Live 0x10875000


jbd 74969 1 ext3, Live 0x10861000


lsmod
命令显示结果如下:


[root@localhost /]# lsmod


Module                  Size  Used by


md5                     4033  1


ipv6                  232577  8


parport_pc             24705  1


lp                     11565  0


parport                41737  2 parport_pc,lp


autofs4                24005  0


i2c_dev                10433  0


i2c_core               22081  1 i2c_dev


sunrpc                160421  1


ipt_REJECT              6465  1


ipt_state               1857  5


ip_conntrack           40693  1 ipt_state


iptable_filter          2753  1


ip_tables              16193  3 ipt_REJECT,ipt_state,iptable_filter


dm_mod                 54741  0


button                  6481  0


battery                 8517  0


ac                      4805  0


uhci_hcd               31449  0


ehci_hcd               31557  0


snd_via82xx            27237  2


snd_ac97_codec         64401  1 snd_via82xx


snd_pcm_oss            47609  0


snd_mixer_oss          17217  2 snd_pcm_oss


snd_pcm                97993  2 snd_via82xx,snd_pcm_oss


snd_timer              29765  1 snd_pcm


snd_page_alloc          9673  2 snd_via82xx,snd_pcm


gameport                4801  1 snd_via82xx


snd_mpu401_uart         8769  1 snd_via82xx


snd_rawmidi            26725  1 snd_mpu401_uart


snd_seq_device          8137  1 snd_rawmidi


snd                    54053  11 snd_via82xx,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device


soundcore               9889  2 snd


via_rhine              23497  0


mii                     4673  1 via_rhine


floppy                 58609  0


ext3                  116809  1


jbd                    74969  1 ext3 


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


/proc/mounts
文件


这个文件以
/etc/mtab
文件的格式给出当前系统所安装的文件系统信息。这个文件也能反映出任何手工安装从而在
/etc/mtab
文件中没有包含的文件系统。


示例:


[root@localhost /]# cat /proc/mounts


rootfs / rootfs rw 0 0


/proc /proc proc rw,nodiratime 0 0


none /dev tmpfs rw 0 0


/dev/root / ext3 rw 0 0


none /dev tmpfs rw 0 0


none /selinux selinuxfs rw 0 0


/proc /proc proc rw,nodiratime 0 0


/proc/bus/usb /proc/bus/usb usbfs rw 0 0


/sys /sys sysfs rw 0 0


none /dev/pts devpts rw 0 0


none /dev/shm tmpfs rw 0 0


none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0


sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 


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

声明: 本文由( 鲁智森也有文化 )原创编译,转载请保留链接: /proc目录下文件详解

/proc目录下文件详解:等您坐沙发呢!

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐