NAME
proc - 进 程 信 息 伪 文 件 系 统
描 述
/proc 是
一 个 伪 文 件 系
统 , 被 用 作 内 核
数 据 结 构 的 接
口 , 而 不 仅 仅 是
解 释 说 明 /dev/kmem. /proc里
的 大 多 数 文 件
都 是 只 读 的 , 但
也 可 以 通 过 写
一 些 文 件 来 改
变 内 核 变 量 . 下
面 对 整 个 /proc 目 录
作 一 个 大 略 的
介 绍 .
[number] 在 /proc 目 录 里 ,
每 个 正 在 运 行
的 进 程 都 有 一
个 以 该 进 程 ID 命
名 的 子 目 录 , 其
下 包 括 如 下 的
目 录 和 伪 文 件 .
cmdline 该 文 件 保 存 了 进 程 的 完 整 命 令 行 . 如 果 该 进 程 已 经 被 交 换 出 内 存 , 或 者 该 进 程 已 经 僵 死 , 那 么 就 没 有 任 何 东 西 在 该 文 件 里 , 这 时 候 对 该 文 件 的 读 操 作 将 返 回 零 个 字 符 . 该 文 件 以 空 字 符 null 而 不 是 换 行 符 作 为 结 束 标 志 .
cwd 一 个 符 号 连 接 , 指 向 进 程 当 前 的 工 作 目 录 |
. 例 如 , 要 找 出 进 程 20 |
的 cwd, 你 可
以 :
cd /proc/20/cwd; /bin/pwd 请 注 意pwd
命 令 通 常 是 shell 内
置 的 , 在 这 样 的
情 况 下 可 能 工
作 得 不 是 很 好 .
environ 该 文 件 保 存 进 程 的 环 境 变 量 , 各 项 之 间 以 空 字 符 分 隔 , 结 尾 也 可 能 是 一 个 空 字 符 . 因 此 , 如 果 要 输 出 进 程 1 的 环 境 变 量 , 你 应 该 :
(cat /proc/1/environ; echo) | tr ";\000"; ";\n";
(至 于 为 什 么 想 要 这 么 做 , 请 参 阅 lilo(8).)
exe 也 是 一 个 符 号 连 接 , 指 向 被 执 行 的 二 进 制 代 码 |
. |
在 Linux 2.0 或 者 更 早 的 版 本 下 , 对 exe 特 殊 文 件 的 readlink(2) 返 回 一 个 如 下 格 式 的 字 符 串 :
[设 备 号 ]:节 点 号 举 个 例 子 , [0301]:1502 就 是 某 设 备 的 1502 节 点 , 该 设 备 的 主 设 备 号 为 03 (如 IDE, MFM 等 驱 动 器 ), 从 设 备 号 为 01 (第 一 个 驱 动 器 的 第 一 分 区 ). 而 在 Linux 2.2 下 , readlink(2) 则 给 出 命 令 的 实 际 路 径 名 . 另 外 , 该 符 号 连 接 也 可 以 正 常 析 引 用 (试 图 打 开 exe 文 件 实 际 上 将 打 开 一 个 可 执 行 文 件 ). 你 甚 至 可 以 键 入 /proc/[number]/exe 来 运 行 [number] 进 程 的 副 本 . 带 -inum 选 项 的 find(1) 命 令 可 以 定 位 该 文 件 .
fd 进 程 所 打 开 的 每 个 文 件 都 有 一 个 符 号 连 接 在 该 子 目 录 里 , 以 文 件 描 述 符 命 名 , 这 个 名 字 实 际 上 是 指 向 真 正 的 文 件 的 符 号 连 接 , ( 和 |
exe 记 录 一 样 ) . 例 如 , 0 是 标 准 输 入 , 1 是 标 准 输 出 , 2 是 标 准 错 误 , 等 等 . 程 序 有 时 可 能 想 要 读 取 一 个 文 件 却 不 想 要 标 准 输 入 , 或 者 想 写 到 一 个 文 件 却 不 想 将 输 出 送 到 标 准 输 出 去 , 那 么 就 可 以 很 有 效 地 用 如 下 的 办 法 骗 过 (假 定 -i 是 输 入 文 件 的 标 志 , 而 -o 是 输 出 文 件 的 标 志 ):
foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ... 这 样 就 是 一 个 能 运 转 的 过 滤 器 . 请 注 意 该 方 法 不 能 用 来 在 文 件 里 搜 索 , 这 是 因 为 fd 目 录 里 的 文 件 是 不 可 搜 索 的 . 在 UNIX 类 的 系 统 下 , /proc/self/fd/N 基 本 上 就 与 /dev/fd/N 相 同 . 实 际 上 , 大 多 数 的 Linux MAKEDEV 脚 本 都 将 /dev/fd 符 号 连 接 到 [..]/proc/self/fd 上 .
maps 该 文 件 包 含 当 前 的 映 象 内 存 区 及 他 们 的 访 问 许 可 |
. |
格 式 如 下 :
address perms offset dev inode 00000000-0002f000 r-x-- 00000400 03:03 1401 0002f000-00032000 rwx-p 0002f400 03:03 1401 00032000-0005b000 rwx-p 00000000 00:00 0 60000000-60098000 rwx-p 00000400 03:03 215 60098000-600c7000 rwx-p 00000000 00:00 0 bfffa000-c0000000 rwx-p 00000000 00:00 0
address 是 进 程 所 占 据 的 地 址 空 间 , perms 是 权 限 集 :
r = read
w = write
x = execute
s = shared
p = private (copy on write)
offset 是 文 件 或 者 别 的 什 么 的 偏 移 量 , dev 是 设 备 号 (主 设 备 号 :从 设 备 号 ), 而 inode 则 是 设 备 的 节 点 号 . 0 表 明 没 有 节 点 与 内 存 相 对 应 , 就 象 bss 的 情 形 . 在 Linux 2.2 下 还 增 加 了 一 个 域 给 可 用 的 路 径 名 .
mem 该 文 件 并 不 是 |
mem (1:1) 设 备 , 尽 管 它 们 有 相 同 的 设 备 号 . |
/dev/mem 设 备 是 做 任 何 地 址 转 换 之 前 的 物 理 内 存 , 而 这 里 的 mem 文 件 是 访 问 它 的 进 程 的 内 存 .目 前 这 个 mem 还 不 能 mmap(2) ( 内 存 映 射 ) 出 去 , 而 且 可 能 一 直 要 等 到 内 核 中 增 加 了 一 个 通 用 的 mmap(2) 以 后 才 能 实 现 . (也 许 在 你 读 本 手 册 页 时 这 一 切 已 经 发 生 了 )
mmap |
mmap(2) 做 的 maps 映 射 目 录 , 是 和 exe, fd/* 等 类 似 的 符 号 连 接 . 请 注 意 maps 包 含 了 比 /proc/*/mmap 更 多 的 信 息 , 所 以 应 该 废 弃 mmap. |
";0"; 通 常 指 libc.so.4. 在 linux 内 核 1.1.40 里 , /proc/*/mmap 被 取 消 了 . (现 在 是 真 的 废 弃 不 用 了 !)
root 依 靠 系 统 调 用 |
chroot(2), unix 和 linux 可 以 让 每 个 进 程 有 各 |
自 的 文 件 系 统 根 目 录 . 由 chroot(2) 系 统 调 用 设 置 . 根 指 向 文 件 系 统 的 根 , 性 质 就 象 exe, fd/* 等 一 样 .
stat 进 程 状 态 信 息 , 被 命 令 |
ps(1) 使 用 . |
现 将 该 文 件 里 各 域 , 以 及 他 们 的 scanf(3) 格 式 说 明 符 , 按 顺 序 分 述 如 下 :
pid %d 进 程 标 识 |
. |
comm %s 可
执 行 文 件 的 文
件 名 , 包 括 路 径 .
该 文 件 是 否 可
见 取 决 于 该 文
件 是 否 已 被 交
换 出 内 存 .
state %c
";RSDZT"; 中 的 一 个 , R 是 正 在 运 行 , S 是 在 可 中 断 的 就 绪 态 中 睡 眠 , D 是 在 不 可 中 断 的 等 待 或 交 换 态 中 睡 眠 , Z 是 僵 死 , T 是 被 跟 踪 或 被 停 止 (由 于 收 到 信 号 ).
ppid %d 父
进 程 PID.
pgrp %d 进 程 的 进 程
组 ID.
session %d 进 程 的 会 话
ID.
tty %d 进 程 所 使 用 终 端 |
. |
tpgid %d 当
前 拥 有 该 进 程
所 连 接 终 端 的
进 程 所 在 的 进
程 组 ID.
flags %u 进 程 标 志 . 目
前 每 个 标 志 都
设 了 数 学 位 , 所
以 输 出 里 就 不
包 括 该 位 . crt0.s 检
查 数 学 仿 真 这
可 能 是 一 个 臭
虫 , 因 为 不 是 每
个 进 程 都 是 用 c
编 译 的 程 序 . 数
学 位 应 该 是 十
进 制 的 4, 而 跟 踪
位 应 该 是 十 进
制 的 10.
minflt %u 进 程 所 导 致
的 小 错 误 ( minor
faults) 数 目 , 这 样
的 小 错 误 ( minor
faults) 不 需 要 从 磁
盘 重 新 载 入 一
个 内 存 页 .
cminflt %u 进 程 及 其 子
进 程 所 导 致 的
小 错 误 ( minor faults)
数 目 .
majflt %u 进 程 所 导 致
的 大 错 误 ( major
faults) 数 目 , 这 样
的 大 错 误 ( major
faults) 需 要 重 新 载
入 内 存 页 .
cmajflt %u 进 程 及 其 子
进 程 所 导 致 的
大 错 误 ( major faults)
数 目 .
utime %d 进 程 被 调 度
进 用 户 态 的 时
间 (以 jiffy 为 单 位 , 1
jiffy=1/100 秒 , 另 外 不
同 硬 件 体 系 略
有 不 同 ).
stime %d 进 程 被 调 度
进 内 核 态 的 时
间 , 以 jiffy 为 单 位 .
cutime %d 进 程 及 其 子
进 程 被 调 度 进
用 户 态 的 时 间 ,
以 jiffy 为 单 位 .
cstime %d 进 程 及 其 子
进 程 被 调 度 进
内 核 态 的 时 间 ,
以 jiffy 为 单 位 .
counter %d 如 果 进 程 不
是 当 前 正 在 运
行 的 进 程 , 就 是
进 程 在 下 个 时
间 片 当 前 可 以
拥 有 的 最 大 时
间 , 以 jiffy 为 单 位 .
如 果 进 程 是 当
前 正 在 运 行 的
进 程 , 就 是 当 前
时 间 片 中 所 剩
下 jiffy 数 目 .
priority %d 标 准 优 先 数
只 再 加 上 15, 在 内
核 里 该 值 总 是
正 的 .
timeout %u 当 前 至 进 程
的 下 一 次 间 歇
时 间 , 以 jiffy 为 单
位 .
itrealvalue %u 由 于 计 时
间 隔 导 致 的 下
一 个 SIGALRM 发 送 进
程 的 时 延 , 以 jiffy
为 单 位 .
starttime %d 进 程 自 系
统 启 动 以 来 的
开 始 时 间 , 以 jiffy
为 单 位 .
vsize %u 虚 拟 内 存 大
小 .
rss %u |
Resident Set Size( 驻 留 大 小 ) : 进 程 所 占 用 的 真 实 内 存 大 小 , 以 页 为 单 位 , 为 便 于 管 理 而 减 去 了 3. rss 只 包 括 正 文 , 数 据 以 及 堆 栈 的 空 间 , 但 不 包 括 尚 未 要 求 装 入 内 存 的 或 已 被 交 换 出 去 的 . |
rlim %u 当
前 进 程 的 rss 限 制 ,
以 字 节 为 单 位 ,
通 常 为 2,147,483,647.
startcode %u 正 文 部 分
地 址 下 限 .
endcode %u 正 文 部 分 地
址 上 限 .
startstack %u 堆 栈 开 始
地 址 .
kstkesp %u
esp(32 位 堆 栈 指 针 ) 的 当 前 值 , 与 在 进 程 的 内 核 堆 栈 页 得 到 的 一 致 .
kstkeip %u
EIP(32 位 指 令 指 针 )的 当 前 值 .
signal %d 待
处 理 信 号 的 bitmap(通
常 为 0).
blocked %d 被 阻 塞 信 号
的 bitmap(对 shell 通 常 是 0,
2).
sigignore %d 被 忽 略 信
号 的 bitmap.
sigcatch %d 被 俘 获 信 号
的 bitmap.
wchan %u 进 程 在 其 中
等 待 的 通 道 , 实
际 是 一 个 系 统
调 用 的 地 址 . 如
果 你 需 要 文 本
格 式 的 , 也 可 以
在 名 字 列 表 中
找 到 . (如 果 有 最
新 版 本 的 /etc/psdatabase,
你 可 以 在 ps -l 的
结 果 中 的 WCHAN 域 看
到 )
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) 命 令 组 更 清 晰 地 给 出 了 这 些 文 件 的 信 息 .
arp 该 文 件 以 |
ASCII 格 式 保 存 了 内 核 ARP 表 , 用 于 地 址 解 析 , 包 括 |
静 态 和 动 态 arp 数 据 . 文 件 格 式 如 下 :
IP address HW type Flags HW address 10.11.100.129 0x1 0x6 00:20:8A:00:0C:5A 10.11.100.5 0x1 0x2 00:C0:EA:00:00:4E 44.131.10.6 0x3 0x2 GW4PTS其 中
’IP address’ 是 机 器 的 IPv4 地 址 ; ’HW type’ 是 地 址 的 硬 件 类 型 , 遵 循 RFC 826; flags 是 ARP 结 构 的 内 部 标 志 , 在 /usr/include/linux/if_arp.h 中 定 义 ; ’HW address’ 是 该 IP 地 址 的 物 理 层 映 射 (如 果 知 道 的 话 ).
dev 该 伪 文 件 包 含 网 络 设 备 状 态 信 息 , 给 出 了 发 送 和 收 到 的 包 的 数 目 , 错 误 和 冲 突 的 数 目 , 以 及 别 的 一 些 基 本 统 计 数 据 |
. ifconfig(8) 利 用 了 该 文 件 来 报 告 网 络 设 备 状 态 . 文 件 格 式 如 下 :
Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 0 0 0 0 0 2353 0 0 0 0 0 eth0: 644324 1 0 0 1 563770 0 0 0 581 0
ipx 无 信 息 |
. |
ipx_route 无 信 息 .
rarp 该 文 件 具 有 和 |
arp 同 样 的 格 式 , 包 含 当 前 的 逆 向 地 址 映 射 数 据 . |
rarp(8) 利 用 这 些 数 据 来 作 逆 向 地 址 查 询 服 务 . 只 有 将 RARP 配 置 进 内 核 , 该 文 件 才 存 在 .
raw 该 文 件 保 存 了 |
RAW 套 接 字 表 , 大 部 分 信 息 除 用 于 调 试 以 外 没 有 什 |
么 用 . ’sl’ 指 出 了 套 接 字 的 内 核 散 列 槽 号 ; ’local address’ 包 括 本 地 地 址 和 协 议 号 对 ; "St" 是 套 接 字 的 内 部 状 态 ; tx_queue 和 rx_queue 是 内 核 存 储 器 使 用 意 义 上 的 输 入 输 出 数 据 队 列 ; RAW 没 有 使 用 "tr", "tm->when" 和 "rexmits"; uid 是 套 接 字 创 建 者 的 有 效 uid.
route 没 有 信 息 , 但 是 看 上 去 类 似 于 |
||||
snmp 该 文 件 以 |
ASCII 格 式 保 存 了 IP, ICMP, TCP 以 及 UDP 管 理 所 需 的 数 据 信 息 , 基 于 snmp 协 议 . TCP mib (TCP 管 理 数 据 库 )尚 未 完 善 , 可 能 在 1.2.0 内 核 能 够 完 成 .
tcp 该 文 件 保 存 了 |
TCP 套 接 字 表 , 大 部 分 信 息 除 用 于 调 试 以 外 没 有 什 |
么 用 . "sl" 指 出 了 套 接 字 的 内 核 散 列 槽 号 ; "local address" 包 括 本 地 地 址 和 端 口 号 ; "remote address" 包 括 远 地 地 址 和 端 口 号 (如 果 有 连 接 的 话 ); ’St’ 是 套 接 字 的 内 部 状 态 ; ’tx_queue’ 和 ’rx_queue’ 是 内 核 存 储 器 使 用 意 义 上 的 输 入 输 出 数 据 队 列 ; "tr", "tm->when" 和 "rexmits" 保 存 了 内 核 套 接 字 声 明 的 内 部 信 息 , 只 用 于 调 试 ; uid 是 套 接 字 创 建 者 的 有 效 uid.
udp 该 文 件 保 存 了 |
UDP 套 接 字 表 , 大 部 分 信 息 除 用 于 调 试 以 外 没 有 什 |
么 用 . "sl" 指 出 了 套 接 字 的 内 核 散 列 槽 号 ; "local address" 包 括 本 地 地 址 和 端 口 号 ; "remote address" 包 括 远 地 地 址 和 端 口 号 (如 果 有 连 接 的 话 ); "St" 是 套 接 字 的 内 部 状 态 ; "tx_queue" 和 "rx_queue" 是 内 核 存 储 器 使 用 意 义 上 的 输 入 输 出 数 据 队 列 ; UDP 没 有 使 用 "tr","tm->when" 和 "rexmits"; uid 是 套 接 字 创 建 者 的 有 效 uid. 格 式 如 下 :
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
unix 列 出 了 当 前 系 统 的 |
UNIX域 套 接 字 以 及 它 们 的 状 态 , 格 式 如 下 : |
Num RefCount Protocol Flags Type St Path 0: 00000002 00000000 00000000 0001 03 1: 00000001 00000000 00010000 0001 01 /dev/printer
’Num’ 是 内 核 散 列 槽 号 ; ’RefCount’ 是 用 户 套 接 字 号 ; ’Protocol’ 当 前 总 是 0; ’Flags’ 是 内 核 标 志 , 指 出 了 套 接 字 的 状 态 ; ’Type’ 当 前 总 是 1(在 内 核 中 尚 未 支 持 unix 域 数 据 报 套 接 字 ); ’St’ 是 套 接 字 内 部 状 态 ; ’Path’ 套 接 字 绑 捆 的 路 径 (如 果 有 的 话 ).
pci 该 文 件 列 出 了 内 核 初 始 化 时 发 现 的 所 有 |
PCI 设 备 及 其 配 置 . | ||
scsi 该 目 录 包 括 |
scsi 中 间 层 伪 文 件 及 各 种 SCSI 底 层 驱 动 器 子 目 录 , 对 系 统 中 每 个 SCSI host, 子 目 录 中 都 存 在 一 个 文 件 与 之 对 应 , 展 示 了 部 分 SCSI IO 子 系 统 的 状 态 . 这 些 文 件 是 ASCII 格 式 的 , 可 用 cat阅 读 . 你 也 可 以 通 过 写 其 中 某 些 文 件 来 重 新 配 置 该 子 系 统 , 开 关 一 些 功 能 .
scsi 该 文 件 列 出 了 内 核 掌 握 的 所 有 |
SCSI 设 备 , 其 内 容 就 和 系 统 启 动 |
时 所 看 到 的 类 似 . 目 前 scsi 只 支 持 singledevice命 令 , 该 命 令 允 许 root 添 加 一 个 热 插 拔 (hotplugged)设 备 到 一 个 已 知 设 备 列 表 中 . 命 令 echo ’scsi singledevice 1 0 5 0’ > /proc/scsi/scsi 令 host scsi1 扫 描 SCSI 通 道 0, 看 在 ID 5 LUN 0 是 否 存 在 设 备 , 如 果 在 该 地 址 存 在 设 备 , 或 者 该 地 址 无 效 , 则 返 回 一 个 错 误 .
drivername 目 前 drivername 可 包 含 : NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore 或 者 wd7000. 这 些 目 录 展 示 那 些 至 少 注 册 了 一 个 SCSI HBA 的 驱 动 . 而 对 每 个 已 注 册 的 host, 每 个 目 录 中 都 包 含 一 个 文 件 与 之 对 应 , 而 这 些 对 应 的 host 文 件 就 以 初 始 化 时 分 配 给 host 的 数 字 来 命 名 . 这 些 文 件 给 出 了 驱 动 程 序 以 及 设 备 的 配 置 , 统 计 数 据 等 . 可 以 通 过 写 这 些 文 件 实 现 不 同 的 host 上 做 不 同 的 工 作 . 例 如 , root 可 以 用 latency 和 nolatency 命 令 打 开 或 者 关 闭 eata_dma 驱 动 器 上 测 量 延 时 的 代 码 , 也 可 以 用 lockup 和 unlock 命 令 控 制 scsi_debug 驱 动 器 所 模 拟 的 总 线 锁 操 作 .
self 当 某 进 程 访 问 |
/proc 目 录 时 , 该 目 录 就 指 向 /proc 下 以 该 进 程 ID 命 |
名 的 目 录 .
stat 内 核 及 系 统 的 统 计 数 据 |
. |
cpu 3357 0 4313 1362393
系 统 分 别 消 耗
在 用 户 模 式 , 低
优 先 权 的 用 户
模 式 ( nice) , 系 统
模 式 , 以 及 空 闲
任 务 的 时 间 , 以
jiffy 为 单 位 . 最 后
一 个 数 值 应 该
是 uptime 伪 文 件 第 二
个 数 值 的 100 倍 .
disk 0 0 0 0 目 前 并 没
有 实 现 这 四 个
磁 盘 记 录 , 我 甚
至 认 为 就 不 应
该 实 现 它 , 这
是 由 于 在 别 的
机 器 上 内 核 统
计 通 常 依 赖 转
换 率 及 每 秒 I/O 数 ,
而 这 令 每 个 驱
动 器 只 能 有 一
个 域 .
page 5741 1808 系 统 ( 从
磁 盘 ) 交 换 进
的 页 数 和 交 换
出 去 的 页 数 .
swap 1 0 取 入 的 交 换
页 及 被 取 出 的
交 换 页 的 页 数 .
intr 1462898 系 统 自 启
动 以 来 所 收 到
的 中 断 数 .
ctxt 115315 系 统 所 作 的
进 程 环 境 切 换
次 数 .
btime 769041601 系 统 自 1970 年
1 月 1 号 以 来 总 的
运 行 时 间 , 以 秒
为 单 位 .
sys 该 目 录 在 |
1.3.57 的 内 核 里 开 始 出 现 , 包 含 一 些 对 应 于 内 核 变 量 的 文 件 |
和 子 目 录 . 你 可 以 读 这 些 变 量 , 有 的 也 可 以 通 过 proc修 改 , 或 者 用 系 统 调 用 sysctl(2) 修 改 . 目 前 该 目 录 下 有 如 下 三 个 子 目 录 : kernel;, ;net;, ;vm 每 个 各 自 包 括 一 些 文 件 和 子 目 录 .
kernel 该 目 录 包 括 如 下 文 件 : |
domainname;, ;file-max;, ;file-nr;, |
;hostname;, ; inode-max;, ;inode-nr;, ;osrelease;, ;ostype;, ; panic;, ;real-root-dev;, ;securelevel;, ;version, 由 文 件 名 就 可 以 清 楚 地 得 知 各 文 件 功 能 . 只 读 文 件 file-nr 给 出 当 前 打 开 的 文 件 数 . 文 件 file-max 给 出 系 统 所 容 许 的 最 大 可 打 开 文 件 数 . 如 果 1024 不 够 大 的 话 , 可 以
echo 4096 > /proc/sys/kernel/file-max 类 似 地 , 文 件 inode-nr 以 及 文 件 inode-max 指 出 了 当 前 inode 数 和 最 大 inode 数 . 文 件 ostype;, ;osrelease;, ;version 实 际 上 是 /proc/version 的 子 字 串 . 文 件 panic 可 以 对 内 核 变 量 panic_timeout 进 行 读 /写 访 问 . 如 果 该 值 为 零 , 内 核 在 panic 时 进 入 ( 死 ) 循 环 ; 如 果 非 零 , 该 值 指 出 内 核 将 自 动 重 起 的 时 间 , 以 秒 为 单 位 . 文 件 securelevel 目 前 似 乎 没 什 么 意 义 - root 无 所 不 能 .
uptime 该 文 件 包 含 两 个 数 : 系 统 正 常 运 行 时 间 和 总 的 空 闲 时 间 , 都 以 秒 为 单 位 . |
version 指 明 了 当 前 正 在 运 行 的 内 核 版 本 , 例 如 :
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
又 见
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
/proc 可 能 会 给 那 些 使 用 了 chroot(2) 的 进 程 带 来 安 全 问 题 . 例 如 , 如 果 /proc 被 mount 在 chroot 级 别 里 , 一 个 到 /proc/1/root 的 chdir(2) 操 作 将 返 回 文 件 系 统 的 原 始 根 目 录 . 由 于 Linux 还 不 支 持 fchroot(2) 调 用 , 该 问 题 可 能 更 应 该 看 作 一 个 特 性 而 不 是 一 个 bug.
[中 文 版 维 护 人 ]
mapping <mapping [AT] 263.net>
[中 文 版 最 新 更 新 ]
2000/11/26
《 中 国 linux论 坛 man手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh