Linux中/proc目录下文件详解(一) | |
|
|
Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性。 作者:张子坚 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 -------------------------------------------------------------------------------- 本文出自 51CTO.COM技术博客 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_602243.html |