zoukankan      html  css  js  c++  java
  • proc介绍及问题分析

    文件系统

    基本介绍

    proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

    目录结构

    目录名称 目录内容
    apm   高级电源管理信息
    cmdline 内核命令行
    Cpuinfo 关于Cpu信息
    Devices  可以用到的设备(块设备/字符设备
    Dma Used DMS channels
    Filesystems 支持的文件系统
    Interrupts 中断的使用
    Ioports  I/O端口的使用
    Kcore 内核核心印象
    Kmsg  内核消息
    Ksyms 内核符号表
    Loadavg 负载均衡
    Locks 内核锁
    Meminfo  内存信息
    Misc Miscellaneous
    Modules 加载模块列表
    Mounts  加载的文件系统
    Partitions 系统识别的分区表
    Rtc Real time clock
    Slabinfo Slab pool info
    Stat 全面统计状态表s
    Swaps  对换空间的利用情况
    Version 内核版本
    Uptime  系统正常运行时间
    并不是所有这些目录在你的系统中都有,这取决于你的内核配置和装载的模块。另外,在/proc下还有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数(见下一部分),而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。

    进程目录

    除 了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目 录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。Proc文件系统的名字就是由之而起。进程目录的结构如 下:
    目录名称 目录内容
    Cmdline 命令行参数
    Environ 环境变量值
    Fd 一个包含所有文件描述符的目录
    Mem  进程的内存被利用情况
    Stat 进程状态
    Status  Process status in human readable form
    Cwd 当前工作目录的链接
    Exe Link to the executable of this process
    Maps 内存印象
    Statm  进程内存状态信息
    Root  链接此进程的root目录
    用户如果要查看系统信息,可以用cat命令。例如:
    >; cat /proc/interrupts
    CPU0
    0:  8728810  XT-PIC timer
    1:  895  XT-PIC keyboard
    2:  0  XT-PIC cascade
    3:  531695  XT-PIC aha152x
    4:  2014133  XT-PIC serial
    5:  44401  XT-PIC pcnet_cs
    8:  2  XT-PIC rtc
    11:  8  XT-PIC i82365
    12:  182918  XT-PIC Mouse
    13:  1  XT-PIC fpu PS/2
    14:  1232265  XT-PIC ide0
    15:  7  XT-PIC ide1
    NMI: 0
    2、 修改内核参数
    在/proc文件系统中有一个有趣的目录:/proc/sys。它不仅提供了内核信息,而且可以通过它修改内核参数,来优化你的系统。但是你必须很小心,因为可能会造成系统崩溃。最好是先找一台无关紧要的机子,调试成功后再应用到你的系统上。
    要改变内核的参数,只要用vi编辑或echo参数重定向到文件中即可。下面有一个例子:
    # cat /proc/sys/fs/file-max
    4096
    # echo 8192 >; /proc/sys/fs/file-max
    # cat /proc/sys/fs/file-max
    8192
    如果你优化了参数,则可以把它们写成脚本文件,使它在系统启动时自动完成修改。
    ×××××××××××××××××××××××××××××××××
    /proc 文件系统是一个假的文件系统。它不存在在磁盘某个磁盘上。而是由核心在内存中产生。用于提供关于系统的信息(originally about processes, hence the name)。下面说明一些最重要的文件和目录。 /proc 文件系统在proc man页中有更详细的说明。
    /proc/1
    关于进程1的信息目录。每个进程在/proc 下有一个名为其进程号的目录。
    /proc/cpuinfo
    处理器信息,如类型、制造商、型号和性能。
    /proc/devices
    当前运行的核心配置的设备驱动的列表。
    /proc/dma
    显示当前使用的DMA通道。
    /proc/filesystems
    核心配置的文件系统。
    /proc/interrupts
    显示使用的中断,and how many of each there have been.
    /proc/ioports
    当前使用的I/O端口。
    /proc/kcore
    系统物理内存映象。与物理内存大小完全一样,但不实际占用这么多内存;it is generated on the fly as programs access it. (记住:除非你把它拷贝到什么地方,/proc 下没有任何东西占用任何磁盘空间。)
    /proc/kmsg
    核心输出的消息。也被送到syslog 。
    /proc/ksyms
    核心符号表
    /proc/loadavg
    系统"平均负载";3个没有意义的指示器指出系统当前的工作量。
    /proc/meminfo
    存储器使用信息,包括物理内存和swap。
    /proc/modules
    当前加载了哪些核心模块。
    /proc/net
    网络协议状态信息。
    /proc/self
    到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,是不同的连接。这主要便于程序得到它自己的进程目录。
    /proc/stat
    系统的不同状态,such as the number of page faults since the system was booted.
    /proc/uptime
    系统启动的时间长度。
    /proc/version
    核心版本。
    注意所有上述文件给出易读的文本文件,有时可能是不易读的格式。有许多命令做了些格式化以更容易读。例如,free 程序读/proc/meminfo 并将给出的字节数转换为千字节(并增加了一些信息)。
     
    ============================================================================
    Q:<4>[1, swapper] [    3.458355] gs is ST LIS3DH...
      <3>[1, init] [    3.542295] init: /init.rc: 369: invalid command '/*' 
      <6>[4, events/0] [    4.574735] usb_autorun: lxy: store_file_again_func, number=1

      <4>、<3>、<6>什么意思?
    A:#define KERN_ERR        "<3>"        /* error conditions                        */
       #define KERN_WARNING        "<4>"        /* warning conditions                        */
       #define KERN_INFO        "<6>"        /* informational                        */
     
  • 相关阅读:
    asp.net2.0 Theme and Skin
    Microsoft Exchange Server 2010 介绍
    Visual Studio 2010 Team System 动手实验室
    WCF中的消息契约
    Windows Workflow Foundation实验01——Windows Workflow Foundation 快速入门(练习二)
    C#中Brush、Color、String相互转换
    VS自动生成有参构造函数并自动依赖注入插件
    C#集合已修改:可能无法执行枚举操作
    Docker安装后启动不了,报“参考的对象类型不支持尝试的操作”
    windows下安装Docker超全图文教程
  • 原文地址:https://www.cnblogs.com/xuyuantao/p/3365534.html
Copyright © 2011-2022 走看看