linux提供了一种特殊的文件系统procfs,通常以/proc目录的形式呈现。该目录中包含了许多特殊文件用来对驱动程序和内核信息进行更高层的访问。只要应用程序有正确的访问全息,就可以通过读写这些文件获得信息或设置参数。

例如/proc/cpuinfo给出的是cpu的详细信息:

我的笔记本是4核机器

processor    :
vendor_id : GenuineIntel
cpu family :
model :
model name : Intel(R) Core(TM) i7-3520M CPU @ .90GHz
stepping :
microcode : 0x1c
cpu MHz : 1227.289
cache size : KB
physical id :
siblings :
core id :
cpu cores :
apicid :
initial apicid :
fpu : yes
fpu_exception : yes
cpuid level :
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
          tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf
          eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt
           tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept
          vpid fsgsbase smep erms xsaveopt
bugs :
bogomips : 5787.00
clflush size :
cache_alignment :
address sizes : bits physical, bits virtual
power management:

类似地,cat /proc/meminfo 和cat /proc/version分别废除是内存使用情况和内核版本信息。

[root@dhcp-- proc]# cat /proc/version
Linux version 4.4.-.fc23.x86_64 (mockbuild@bkernel02.phx2.fedoraproject.org)
(gcc version 5.3. (Red Hat 5.3.-) (GCC) ) # SMP Wed Mar :: UTC

每次读者写文件的内容时,他们所提供的信息都会及时更新。

---------------------

你可以通过心和函数获得更过的信息,位于/proc目录的子目录中,

例如,可以通过/proc/net/sockstat文件获得网络套接字的使用统计:

[root@dhcp-- proc]# cat /proc/net/sockstat
sockets: used
TCP: inuse orphan tw alloc mem
UDP: inuse mem
UDPLITE: inuse
RAW: inuse
FRAG: inuse memory

另外,/proc中的有些条目不仅可以被读取,而且还可以被修改。

例如系统中所有运行的程序同时能打开的文件总数是linux内核的一个参数,它的当前值可以通过读取/proc/sys/fs/file-max文件得到

[root@dhcp-- proc]# cat /proc/sys/fs/file-max

你可以对通过修改此文件,来修改linux的这个参数。

======================

/proc目录中一数字命名的子目录用于提供正在运行的程序的信息。

利用pe -ef | grep firefox查看firefox的进程号

可以在/proc/firefox进程号 文件中查看进程的执行情况

[root@dhcp-- proc]# ls -l /proc/
total
dr-xr-xr-x. lizhen lizhen Jun : attr
-rw-r--r--. lizhen lizhen Jun : autogroup
-r--------. lizhen lizhen Jun : auxv
-r--r--r--. lizhen lizhen Jun : cgroup
--w-------. lizhen lizhen Jun : clear_refs
-r--r--r--. lizhen lizhen Jun : cmdline
-rw-r--r--. lizhen lizhen Jun : comm
-rw-r--r--. lizhen lizhen Jun : coredump_filter
-r--r--r--. lizhen lizhen Jun : cpuset
lrwxrwxrwx. lizhen lizhen Jun : cwd -> /home/lizhen
-r--------. lizhen lizhen Jun : environ
lrwxrwxrwx. lizhen lizhen Jun : exe -> /usr/lib64/firefox/firefox
dr-x------. lizhen lizhen Jun : fd
dr-x------. lizhen lizhen Jun : fdinfo
-rw-r--r--. lizhen lizhen Jun : gid_map
-r--------. lizhen lizhen Jun : io
-r--r--r--. lizhen lizhen Jun : latency
-r--r--r--. lizhen lizhen Jun : limits
-rw-r--r--. lizhen lizhen Jun : loginuid
dr-x------. lizhen lizhen Jun : map_files
-r--r--r--. lizhen lizhen Jun : maps
-rw-------. lizhen lizhen Jun : mem
-r--r--r--. lizhen lizhen Jun : mountinfo
-r--r--r--. lizhen lizhen Jun : mounts
-r--------. lizhen lizhen Jun : mountstats
dr-xr-xr-x. lizhen lizhen Jun : net
dr-x--x--x. lizhen lizhen Jun : ns
-r--r--r--. lizhen lizhen Jun : numa_maps
-rw-r--r--. lizhen lizhen Jun : oom_adj
-r--r--r--. lizhen lizhen Jun : oom_score
-rw-r--r--. lizhen lizhen Jun : oom_score_adj
-r--------. lizhen lizhen Jun : pagemap
-r--------. lizhen lizhen Jun : personality
-rw-r--r--. lizhen lizhen Jun : projid_map
lrwxrwxrwx. lizhen lizhen Jun : root -> /
-rw-r--r--. lizhen lizhen Jun : sched
-r--r--r--. lizhen lizhen Jun : schedstat
-r--r--r--. lizhen lizhen Jun : sessionid
-rw-r--r--. lizhen lizhen Jun : setgroups
-r--r--r--. lizhen lizhen Jun : smaps
-r--------. lizhen lizhen Jun : stack
-r--r--r--. lizhen lizhen Jun : stat
-r--r--r--. lizhen lizhen Jun : statm
-r--r--r--. lizhen lizhen Jun : status
-r--------. lizhen lizhen Jun : syscall
dr-xr-xr-x. lizhen lizhen Jun : task
-r--r--r--. lizhen lizhen Jun : timers
-rw-r--r--. lizhen lizhen Jun : uid_map
-r--r--r--. lizhen lizhen Jun : wchan
[root@dhcp-- proc]#

/proc 文件系统的更多相关文章

  1. linux 使用/proc文件系统 实现用户空间与内核模块之间通信

    项目中可能会用到用户态和内核模块之间进行通信的功能.想到linux系统本身很多通信都是通过/proc文件系统来的,比如修改网络中连接跟踪表连接数限制/proc/sys/net/netfilter/nf ...

  2. proc文件系统

    在shell终端里不带任何参数,直接运行mount命令可以显示正在挂载的文件系统.其中有这么一行 none on /proc type proc (rw) 这就是/proc文件系统.第一个域显示non ...

  3. proc文件系统在内核中的表现

    当Linux内核启动起来之后,我们可以通过proc虚拟文件系统来查看内的中的一些动态信息. 例如:可以 cat  /proc/misc  来查看系统中装载的所有misc类设备 cat  /proc/d ...

  4. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  5. <解说linux下proc文件系统>

    proc文件系统的作用是访问系统内核信息 proc不是一个真实的文件系统,它不占系统的外存空间,只是以文件的形式为用户访问linux内核数据提供接口,因为系统内核总是动态的变化,所以我们所捕捉到的也只 ...

  6. (转)使用 /proc 文件系统来访问 Linux 内核的内容

    转载网址:http://www.ibm.com/developerworks/cn/linux/l-proc.html 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口/proc 文件系统是 ...

  7. linux中proc文件系统 -- ldd3读书笔记

    1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...

  8. 在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world

    一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 二.实验环境 物理主机:w ...

  9. linux kernel (proc文件系统)参数

    http://blog.csdn.net/guowake/article/details/3279796 Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的. 二./pr ...

  10. kobox: key_proc.c -v1 怎样使用proc文件系统调试驱动

    使用proc文件系统能够非常方便调试驱动.查看驱动中的一些数据 平台:TQ2440 系统版本号: root@ubuntu:/mnt/shared/kobox# uname -a Linux ubunt ...

随机推荐

  1. php中读取文件内容的几种方法

    1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件中读取最多 length 个字节.该函数在读取完最多 ...

  2. Codeforces Round #377 (Div. 2) A B C D 水/贪心/贪心/二分

    A. Buy a Shovel time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  3. c#部分---结构体再利用;

    //定义一个结构体,存放关于车辆的几个信息 //将所有车的信息都放入集合中 //车型号 价格(W) 轴距 (mm) 油耗(L/100km) //宝马320Li 38 2920 6.9 //宝马520L ...

  4. Java——File(文件)

     public static void main(String[] args) { // getFile(); /* * 需求:  对指定目录进行所有内容的列出,(包含子目录中的内容) * */ ...

  5. Java——设计模式(单例模式)

     /* * 设计模式: 对问题行之有效的解决方式,其实他是一种思想. * 1.单例设计模式. *  解决问题:  就是可以保证一个列在内存中的对象唯一性. * *如何保证对象的唯一性: *1. 不 ...

  6. Java——集合框架 工具

     /* * Arrays工具类的使用 */ public class ArraysTest { public static void main(String[] args) { // TODO A ...

  7. JAVA 新闻

    Oracle已对Java失去兴趣?Java社区能否扭转乾坤? http://news.cnblogs.com/n/549566/ http://mp.weixin.qq.com/s?__biz=MjM ...

  8. Oracle 12c RAC 搭建手册

    1  共享设备配置 1.1            设备划分说明 冗余策略 卷划分及大小说明 OCRVOTING Ocrvoting01 8G Ocrvoting02 8G Ocrvoting03 8G ...

  9. Sklearn库例子2:分类——线性回归分类(Line Regression )例子

    线性回归:通过拟合线性模型的回归系数W =(w_1,…,w_p)来减少数据中观察到的结果和实际结果之间的残差平方和,并通过线性逼近进行预测. 从数学上讲,它解决了下面这个形式的问题:      Lin ...

  10. php 数组排序 sort asort ksort

    <?php $arr = array('d'=>'sdf', 'r'=>'sdf', 'a'=> 'eee'); //sort($arr); // 对数组的值进行重排, 删除之 ...