/proc 文件系统是一个假文件系统,在该文件系统中,内核以虚拟文件的形式保留重要信息。例如,使用以下命令显示 CPU 类型:
$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : AMD Athlon(tm) XP 2400+ stepping : 1 cpu MHz : 2009.343 cache size : 256 KB fdiv_bug : no [...]
可以使用以下命令查询中断的分配和使用:
$ cat /proc/interrupts
CPU0
0: 537544462 XT-PIC timer
1: 820082 XT-PIC keyboard
2: 0 XT-PIC cascade
8: 2 XT-PIC rtc
9: 0 XT-PIC acpi
10: 13970 XT-PIC usb-uhci, usb-uhci
11: 146467509 XT-PIC ehci_hcd, usb-uhci, eth0
12: 8061393 XT-PIC PS/2 Mouse
14: 2465743 XT-PIC ide0
15: 1355 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 0
MIS: 0
一些重要的文件及其内容如下:
/proc/devices
可用设备
/proc/modules
装载的内核模块
/proc/cmdline
内核命令行
/proc/meminfo
有关内存使用的详细信息
/proc/config.gz
当前运行的内核的 gzip 压缩配置文件
文本文件 /usr/src/linux/Documentation/filesystems/proc.txt 中提供了详细信息。/proc/NNN 目录中提供了当前运行进程的信息,其中 NNN 是相关进程的进程 ID (PID)。每个进程都可以在 /proc/self/ 中找到它自己的特性:
$ ls -l /proc/self lrwxrwxrwx 1 root root 64 Apr 29 13:52 /proc/self -> 27585 $ ls -l /proc/self/ total 0 dr-xr-xr-x 2 jj suse 0 Apr 29 13:52 attr -r-------- 1 jj suse 0 Apr 29 13:52 auxv -r--r--r-- 1 jj suse 0 Apr 29 13:52 cmdline lrwxrwxrwx 1 jj suse 0 Apr 29 13:52 cwd -> /suse/jj/t -r--r--r-- 1 jj suse 0 Apr 29 13:52 delay -r-------- 1 jj suse 0 Apr 29 13:52 environ lrwxrwxrwx 1 jj suse 0 Apr 29 13:52 exe -> /bin/ls dr-x------ 2 jj suse 0 Apr 29 13:52 fd -rw------- 1 jj suse 0 Apr 29 13:52 mapped_base -r--r--r-- 1 jj suse 0 Apr 29 13:52 maps -rw------- 1 jj suse 0 Apr 29 13:52 mem -r--r--r-- 1 jj suse 0 Apr 29 13:52 mounts lrwxrwxrwx 1 jj suse 0 Apr 29 13:52 root -> / -r--r--r-- 1 jj suse 0 Apr 29 13:52 stat -r--r--r-- 1 jj suse 0 Apr 29 13:52 statm -r--r--r-- 1 jj suse 0 Apr 29 13:52 status dr-xr-xr-x 3 jj suse 0 Apr 29 13:52 task -r--r--r-- 1 jj suse 0 Apr 29 13:52 wchan
maps 文件中包含可执行文件和库的地址指派:
$ cat /proc/self/maps 08048000-0804c000 r-xp 00000000 03:02 22890 /bin/cat 0804c000-0804d000 rw-p 00003000 03:02 22890 /bin/cat 0804d000-0806e000 rwxp 0804d000 00:00 0 40000000-40016000 r-xp 00000000 03:02 10882 /lib/ld-2.3.3.so 40016000-40017000 rw-p 00015000 03:02 10882 /lib/ld-2.3.3.so 40017000-40018000 rw-p 40017000 00:00 0 4002b000-40135000 r-xp 00000000 03:02 10908 /lib/tls/libc.so.6 40135000-4013d000 rw-p 0010a000 03:02 10908 /lib/tls/libc.so.6 4013d000-40141000 rw-p 4013d000 00:00 0 bfffe000-c0000000 rw-p bfffe000 00:00 0 ffffe000-fffff000 ---p 00000000 00:00 0