proc目录学习
前几天哥们去百度面实习,提到了proc目录有关的一个面试题,学习一下,文章摘自这里
这个目录是操作系统的内核映象文件系统,是一个虚拟的文件系统.当查看里面文件的内容时,看到的是内存里的信息,这有助于了解系统内部信息.
cmdline文件 ro root=LABEL=/1,以只读的方式挂载系统的根分区(其LABEL=/1) 给出了内核启动的命令行.
cpuinfo文件 这个文件提供了有关系统CPU的多种信息.
devices文件 列出了字符设备和块设备的主设备号,以及分配到这些设备号的设备名称.
dma文件 这个文件列出由驱动程序保留的DMA通道和保留它们的驱动程序名称.casade项供用于把次DMA控制器从主控制器分出的DMA行所使用;这一行不能用于其它用途.
filesystems文件 这个文件列出可供使用的文件系统类型,一种类型一行.虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型.
interrupts文件 这个文件的每一行都有一个保留的中断.每行中的域有:中断号,本行中断的发生次数,可能带有一个加号的域(SA_INTERRUPT标志设置),以及登记这个中断的驱动程序的名字.如果某个中断处理没有安装,是不会显示的.哪怕之前安装过,被卸载了.文件内容从左到右分别是,
irq的序号, 在各自cpu上发生中断的次数,可编程中断控制器,设备名称(request_irq的dev_name字段)
ioports文件 这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多I/O端口范围.
kcore文件 这个文件是系统的物理内存以core文件格式保存的文件.例如,GDB能用它考察内核的数据结构.它不是纯文本,而是/proc目录下为数不多的几个二进制格式的项之一.
kmsg文件 这个文件用于检索用printk生成的内核消息.任何时刻只能有一个具有超级用户权限的进程可以读取这个文件.也可以用系统调用syslog检索这些消息.通常使用工具dmesg或守护进程klogd检索这些消息.
kallsyms文件 在v2.6.0的内核中,为了更好地调试内核,引入新的功能kallsyms. kallsyms把内核用到的所有函数地址和名称连接进内核文件,当内核启动 后,同时加载到内存中.
loadavg文件 这个文件给出以几个不同的时间间隔计算的系统平均负载,这就如同uptime命令显示的结果那样.前三个数字是平均负载.这是通过计算过去1分钟,5分钟,15分钟里运行队列中的平均任务数得到的.随后是正在运行的任务数和总任务数.是上次使用的进程号.
locks文件 这个文件包含在打开的文件上的加锁信息.文件中的每一行描述了特定文件和文档上的加锁信息以及对文件施加的锁的类型.内核也可以需要时对文件施加强制性锁.
mdstat文件 这个文件包含了由md设备驱动程序控制的RAID设备信息.
meminfo文件 这个文件给出了内存状态的信息.它显示出系统中空闲内存,已用物理内存和交换内存的总量.它还显示出内核使用的共享内存和缓冲区总量.这些信息的格式和free命令显示的结果类似.
misc文件 这个文件报告用内核函数misc_register登记的设备驱动程序.
modules文件 这个文件给出可加载内核模块的信息.lsmod程序用这些信息显示有关模块的名称,大小,使用数目方面的信息.
mounts文件 这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息.这个文件也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统.
stat文件 这个文件包含的信息有CPU利用率,磁盘,内存页,内存对换,全部中断,接触开关以及赏赐自举时间(自1970年1月1日起的秒数).
uptime文件 这个文件给出自从上次系统自举以来的秒数,以及其中有多少秒处于空闲.这主要供uptime程序使用.比较这两个数字能够告诉你长期来看CPU周期浪费的比例.
version文件 这个文件只有一行内容,说明正在运行的内核版本.可以用标准的编程方法进行分析获得所需的系统信息.
net子目录 此目录下的文件描述或修改了联网代码的行为.可以通过使用arp,netstat,route和ipfwadm命令设置或查询这些特殊文件中的许多文件.
scsi子目录 此目录下包含一个列出了所有检测到的SCSI设备的文件,并且为每种控制器驱动程序提供一个目录,在这个目录下又为已安装的此种控制器的每个实例提供一个子目录.
sys子目录
在此目录下有许多子目录.此目录中的许多项都可以用来调整系统的性能.这个目录包含信息太多,无法介绍全部.只在示例中展示目录下的一些文件.
本文出自 “莫等老去,空怀念梦想” 博客,谢绝转载!
|