一. /proc/目录概述
/proc/目录是由procfs的文件系统所产生出来的,procfs是LINUX系统用于存储所有开机后硬件、process相关信息的方式,全名process file system。
/proc/不是一个实体目录,它其实是kernel加载后,在内存里建立的一个虚拟目录,因为是实时的,所以文件及目录都会随时改变。
/proc对系统而言,主要有以下几个功能。
- 整理系统内部的信息
- 存放主机硬件信息
- 调整系统执行时的参数
- 检查及修改网络和主机的参数
- 检查及调整系统的内存和性能
二. 基本程序文件
* cpuinfo:包含CPU的硬件信息。
* devices:记录所有在/dev目录中相关的设备文件分类方式,最基本的是以Major Number为标准,由该编号再由Minor Number及设备文件种类细分。
* interrupts:记录每个IRQ的编号对应到哪一个硬件设备。
* ioports:这个文件将目前系统上所有“可看到的硬件对应到内存位置的分配表”的详细信息呈现出来。
* kcore:这个文件其实就是系统上可以检测到的物理内存,换句话说,主机上有多大的内存,这个文件就应该有多大。
* kmsg:在系统尚未进入操作系统阶段,还在加载kernel及执行initrd时,会将信息先记录在/proc/kmsg文件中(因为在initrd阶段前期,并没有实际的硬盘可供记录),等进入操作系统执行完klogd后,klogd再将/proc/kmsg的所有内容全部写入/var/log/message文件中。
* meminfo: 该文件记录的是系统内存的信息。
[AD+5147@cylxdev03 proc]$ cat meminfo | head -10
MemTotal: 515504 kB 内存的总体大小
MemFree: 242204 kB 内存的剩余大小
Buffers: 45272 kB
Cached: 155784 kB
SwapCached: 0 kB
Active: 162144 kB
Inactive: 72172 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 515504 kB
* modules:记录模块的相关信息,命令lsmod就是从该文件取数据并整理输出的
* mtrr:
* iomem:
* partitions:目前系统看到的分区信息。
* /proc/[number]:每个在系统中运行的程序都有一个以其PID命令的目录,其中包含这些文件。
cmdline:该程序使用的完整命令;
cwd:链接文件,表示该程序所在的目录;
maps:该程序所在的内存地址区段;
stat:记录程序的状态,都是以数字形式记录,无法阅读;
statm:记录程序在内存中的状况,也是以数字形式记录;
status:记录程序的状态,它看上去是象下面那样。
[AD+5147@cylxdev03 1]$ cat status
Name: init
State: S (sleeping)
SleepAVG: 88%
Tgid: 1
Pid: 1
PPid: 0
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmSize: 2188 kB
VmLck: 0 kB
VmRSS: 548 kB
VmData: 180 kB
VmStk: 576 kB
VmExe: 27 kB
VmLib: 1369 kB
StaBrk: 08050000 kB
Brk: 092e6000 kB
StaStk: bff73a00 kB
ExecLim: 0804f000
Threads: 1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: fffffffe57f0d8fc
SigCgt: 00000000280b2603
CapInh: 0000000000000000
CapPrm: 00000000ffffffff
CapEff: 00000000fffffeff
* /proc/acpi目录:存放与省电相关的文件。
* /proc/bus目录:有关该主机上现有总线的所有信息,包括输入设备、PCI接口、PCMCIA扩充卡以及USB等。
* /proc/net目录:一些网络相关的虚拟文件,其中包含有:arp、dev、ip_tables_X、sockstat、tcp和udp等文件。
* /proc/scsi目录:记录SCSI设备的信息。
* /proc/sys目录:其中的文件存放系统核心使用到的一些变量,当被更改时,是实时的变更。
- /proc/sys/dev目录:硬件的基本数据
- /proc/sys/fs目录:与文件系统系统相关的文件,如文件数目、inode数目、quota的限制等都在其中。
- /proc/sys/kernel目录:存放和Kernel目前运行相关的文件,其文件内容都会直接影响到目前系统运行。
其中的文件有:
1. Ctrl+Alt+Del
2. domainname:网络上的域名
3. hostname:主机名
4. osrelease:Linux系统的发行版本
5. ostype:存放的数值代表的是一个系统可使用的PID的最大数目,在32位系统里一般等于32768
6. version:系统版本的一部分
7. ptr/max:代表系统可接受以Terminal联机(ssh、Telnet)所使用的接口资源数目的最大值,默认值为 4096.
ptr/nr:目前系统中的pts使用数量
8. threads-max:定义系统同时可以使用的线程(thread)的数量
* /proc/sys/net目录:该目录存放TCP/IP协议所需要的调整参数资源。Linux很多的网络相关功能是由Kernel支持,所以在【/proc/sys/net】就是专门存放Kernel使用中的网络相关“开关”或者是“变数”的地方。有些网络功能需要通过modprobe来“打开”。
* /proc/sys/sunrpc目录:主要是将所有SUN NFS及SUN RPC两种协议的相关参数放在其中
* /proc/sys/vm目录:包含的文件类型有内存、缓冲区或缓存的管理文件,通过这些文件可以实时地针对这些存储方式做微调的操作。
*