文件系统

基本介绍

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                        */
 

proc介绍及问题分析的更多相关文章

  1. Android Debuggerd 简要介绍和源码分析(转载)

    转载: http://dylangao.com/2014/05/16/android-debuggerd-%E7%AE%80%E8%A6%81%E4%BB%8B%E7%BB%8D%E5%92%8C%E ...

  2. 转载:AbstractQueuedSynchronizer的介绍和原理分析

    简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过 ...

  3. AbstractQueuedSynchronizer的介绍和原理分析(转)

    简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过 ...

  4. Servlet过滤器介绍之原理分析

    zhangjunhd 的BLOG     写留言去学院学习发消息 加友情链接进家园 加好友 博客统计信息 51CTO博客之星 用户名:zhangjunhd 文章数:110 评论数:858 访问量:19 ...

  5. Hadoop数据管理介绍及原理分析

    Hadoop数据管理介绍及原理分析 最近2014大数据会议正如火如荼的进行着,Hadoop之父Doug Cutting也被邀参加,我有幸听了他的演讲并获得亲笔签名书一本,发现他竟然是左手写字,当然这个 ...

  6. AbstractQueuedSynchronizer的介绍和原理分析

    简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过 ...

  7. proc介绍,free命令查看内存

    proc介绍 https://www.cnblogs.com/dongzhuangdian/p/11366910.html https://blog.csdn.net/majianting/artic ...

  8. SAS市场研究应用介绍:组合/联合分析

    SAS市场研究应用介绍:组合/联合分析 一 SAS市场研究模块介绍 市场研究是指研究组织(企业)与客户.公众三者关系的规律的过程,是市场营销领域中的一个重要元素.它把消费者.客户.公众和营销者通过信息 ...

  9. Python使用Ctypes与C/C++ DLL文件通信过程介绍及实例分析

    项目中可能会经常用到第三方库,主要是出于程序效率考虑和节约开发时间避免重复造轮子.无论第三方库开源与否,编程语言是否与当前项目一致,我们最终的目的是在当前编程环境中调用库中的方法并得到结果或者借助库中 ...

随机推荐

  1. bzoj 3545: [ONTAK2010]Peaks

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1124  Solved: 304[Submit][Status][Discuss] Descripti ...

  2. zsh + oh-my-zsh 默认shell

    项目地址 zsh -----> http://www.zsh.orgoh-my-zsh ----> http://ohmyz.sh The last shell you’ll ever n ...

  3. 4.9版本linux内核的ina220电流检测芯片源码在哪里

    答:在drivers/hwmon/ina2xx.c中,内核配置项为CONFIG_SENSORS_INA2XX Location: -> Device Drivers -> Hardware ...

  4. Java之JNDI详解

    转载自(http://blog.csdn.net/u010430304/article/details/54601302) JNDI的基本应用         JNDI是Java Naming and ...

  5. LeetCode——Single Element in a Sorted Array

    Question Given a sorted array consisting of only integers where every element appears twice except f ...

  6. 第四篇:Spark SQL Catalyst源码分析之TreeNode Library

    /** Spark SQL源码分析系列文章*/ 前几篇文章介绍了Spark SQL的Catalyst的核心运行流程.SqlParser,和Analyzer,本来打算直接写Optimizer的,但是发现 ...

  7. 数据结构实习 Problem H 迷宫的最短路径

    数据结构实习 Problem H 迷宫的最短路径 题目描述 设计一个算法找一条从迷宫入口到出口的最短路径. 输入 迷宫的行和列m n 迷宫的布局 输出 最短路径 样例输入 6 8 0 1 1 1 0 ...

  8. kuangbin大佬模板(侵删)- hdu 2222

    2017-08-13 19:54:08 kuangbin的AC自动机模板 可以直接过 入门题目 hdu2222 #include<cstdio> #include<cstring&g ...

  9. HTTP-API-DESIGN 怎样设计一个合理的 HTTP API (二)

    接上篇 HTTP-API-DESIGN 怎样设计一个合理的 HTTP API (一) 整个 ppt 可以去这里下载. 这一篇主要从服务端应该如何返回合理的返回值的角度,讨论如何设计一个合理的 HTTP ...

  10. HDU5299 圆的扫描线 && 树上删边博弈

    HDU5299 圆的扫描线 && 树上删边博弈 标签(空格分隔): 未分类 给出若干个圆,可以互相嵌套但不相交或相切. 每次删去一个圆和它内部的圆,进行博弈,问谁赢. 分成两部分.首先 ...