Linux Programmers Manual
22 July 1996
Aliases: procfs(5), procfs(5), procfs(5), procfs(5), procfs(5), procfs(5), procfs(5), procfs(5), procfs(5)
manpages-zh
Chinese manual pages
man-pages-zh-CN
Chinese Man Pages from Chinese Man Pages Project
man-pages-zh_cn
Simplified Chinese Linux man pages
manpages
Manual pages about using a GNU/Linux system
man-pages
Linux kernel and C library user-space interface documentation
NAME
proc - 进程信息伪文件系统
描述
/proc 是一个伪文件系统, 被用作内核数据结构的接口, 而不仅仅 是解释说明 /dev/kmem. /proc里的大多数文件都是只读的, 但也可 以通过写一些文件来改变内核变量.
下面对整个 /proc 目录作一个大略的介绍.
[number] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
在 /proc 目录里, 每个正在运行的进程都有一个以该进程 ID 命名的子目录, 其下包括如下的目录和伪文件.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cpuinfo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
保存了CPU 以及体系架构依赖条目的列表. 对于不同的系 统架构有不同的列表, 共有的两项是 cpu 和 BogoMIPS, cpu 可能是当前在用的 CPU, 而 BogoMIPS 则是内核初始化时计算出 的一个系统常数. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
devices | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
主设备号及设备组的列表, 文本格式. MAKEDEV 脚本使用 该文件来维持内核的一致性. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dma | 一个列表, 指出正在使用的ISA DMA (直接内存访问)通道. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filesystems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
以文本格式列出了被编译进内核的文件系统. 当没有给 mount(1) 指明哪个文件系统的时候, mount(1) 就依靠该文件遍历不同的文件系统. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
interrupts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
该文件以 ASCII 格式记录了(至少是在 i386 体系上的)每次 IRQ 的中断数目. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ioports | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
该文件列出了当前在用的已注册 I/O 端口范围. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kcore | 该伪文件以 core 文件格式给出了系统的物理内存映象, 再 利用未卸载的内核 (/usr/src/linux/tools/zSystem), 我 们就可以用 GDB 查探当前内核的任意数据结构.
该文件的总长度是物理内存 (RAM) 的大小再加上 4KB.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kmsg | 可以用该文件取代系统调用 syslog(2) 来记录内核信息. 但是读该文件需要超级用户权限, 并且一次只能有一个进 程可以读该文件, 因而如果一个使用了 syslog(2) 系统调用功能来记录内核信息的系统日志进程正在运行的话, 别的进程就不能再去读该伪文件了.
该文件的内容可以用 dmesg(8) 来察看.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ksyms | 该文件保存了内核输出的符号定义, modules(X) 使用该文件 动态地连接和捆绑可装载的模块. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
loadavg | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
平均负载数给出了在过去的 1, 5, 15 分钟里在运行队列里 的任务数, 与 uptime(1) 等命令的结果相同. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locks | 这个文件显示当前文件锁. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
malloc | 只有在编译时定义了 CONFIGDEBUGMALLOC 才会有该文件. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meminfo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
free(1) 利用该文件来给出系统总的空闲内存和已用内存 (包括物理内存和交换内存), 以及内核所使用的共享内存 和缓冲区.
该文件与 free(1) 格式相同, 但是以字节为单位而不是 KB.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
modules | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
列出了系统已载入的模块, 文本格式. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
net | 该子目录包括多个 ASCII 格式的网络伪文件, 描述了网络 层的部分情况. 可以用 cat 来察看这些文件, 但标准的 netstat(8) 命令组更清晰地给出了这些文件的信息.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pci | 该文件列出了内核初始化时发现的所有 PCI 设备及其配置. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
scsi | 该目录包括 scsi 中间层伪文件及各种 SCSI 底层驱动器子目录, 对系统中每个 SCSI host, 子目录中都存在一个文件与之对应, 展示了部分 SCSI IO 子系统的状态. 这些文件是 ASCII 格式 的, 可用cat阅读.
你也可以通过写其中某些文件来重新配置该子系统, 开关一些功能.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self | 当某进程访问 /proc 目录时, 该目录就指向 /proc 下以该进 程 ID 命名的目录. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stat | 内核及系统的统计数据.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sys | 该目录在 1.3.57 的内核里开始出现, 包含一些对应于内 核变量的文件和子目录. 你可以读这些变量, 有的也可以 通过proc修改, 或者用系统调用 sysctl(2) 修改. 目前该目录下有如下三个子目录: kernel;, ;net;, ;vm 每个各自包括一些文件和子目录.
文件 file-max 给出系统所容许的最大可打开文件数. 如果 1024 不够大的话, 可以
类似地, 文件 inode-nr 以及文件 inode-max 指出了当前 inode 数和最大 inode 数.
文件 ostype;, ;osrelease;, ;version 实际上是 /proc/version 的子字串.
文件 panic 可以对内核变量 panic_timeout 进行读/写访问. 如果该值为零, 内核在 panic 时进入(死)循环; 如果非零, 该值指出内核将自动重起的时间, 以秒为单位.
文件 securelevel 目前似乎没什么意义 - root 无所不能.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uptime | 该文件包含两个数: 系统正常运行时间和总的空闲时间, 都以秒为单位. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
version | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指明了当前正在运行的内核版本, 例如:
|
又见
cat(1), find(1), free(1), mount(1), ps(1), tr(1), uptime(1), readlink(2), mmap(2), chroot(2), syslog(2), hier(7), arp(8), dmesg(8), netstat(8), route(8), ifconfig(8), procinfo(8)等等.
遵循
本手册页基本上是针对 Linux 1.3.11 内核, 如有必要请及时更新!
最后更新也是针对 Linux 1.3.11.
注意事项
请注意许多字符串(例如环境变量或者命令行)是以内部格式保存的, 以 NUL 作为子域的结束标志, 可以用 od -c 或者 tr ";\000"; ";\n"; 使之变得更可读.
本手册页还不完善, 可能有不够确切的地方, 需要经常更新.
BUGS
[中文版维护人]
mapping <mapping>
[中文版最新更新]
2000/11/26
《中国linux论坛man手册页翻译计划》:
http://cmpp.linuxforum.net
跋
本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
REFERENCED BY
delete_module(2), eventfd(2), fcntl(2), fork(2), getrlimit(2), getrusage(2), init_module(2), ioctl_ns(2), kcmp(2), link(2), mlock(2), mmap(2), mount(2), msgctl(2), open(2), posix_fadvise(2), prctl(2), seccomp(2), semctl(2), shmctl(2), shmget(2), signalfd(2), sysctl(2), sysinfo(2), timer_create(2), vfork(2), errno(3), fexecve(3), getauxval(3), getloadavg(3), malloc(3), mallopt(3), program_invocation_name(3), pthread_create(3), acct(5), core(5), filesystems(5), capabilities(7), cgroup_namespaces(7), cpuset(7), epoll(7), fanotify(7), hier(7), inotify(7), libc(7), mount_namespaces(7), namespaces(7), netdevice(7), pid_namespaces(7), pkeys(7), pthreads(7), pty(7), signal(7), user_namespaces(7), vdso(7), sysfs(5), netstat(8), ps(1), strace(1), bilibop.conf(5), fs(5), procinfo(8), procenv(1), scsi-spin(8), smem(8), smemcap(8), tcpspy.rules(5), tcpspy(8), vnstat(1), wmnd(1), vlimit(3), vtimes(3), network_namespaces(7), procps(1), choom(1), checkproc(8), killproc(8), mkill(8), rvmtab(8), startproc(8), blogd(8), blogger(8), showconsole(8), chroot(2), pidfd_open(2), credentials(7)