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. Protobuf C/C++实战笔记(1)

    前言: Protobuf作为数据交换格式, 被很多人喜欢. 数据压缩比高, 向后兼容性强, 性能优异, 而且对平台中性, 支持多语言(C/C++, JAVA, Python). 优点太多, 实在不胜枚 ...

  2. 快速对字符转义,避免跨站攻击XSS

    XSS已经成为非常流行的网站攻击方式,为了安全起见,尽量避免用户的输入.可是有些情况下不仅不避免,反而要求鼓励输入,比如写博客.博客园开放性很高,可以运行手写的JS.之前比较著名的例子就是,凡是看到某 ...

  3. indexOf()的用法

    indexOf()的用法:返回字符中indexof(string)中字串string在父串中首次出现的位置,从0开始!没有返回-1:方便判断和截取字符串! indexOf()定义和用法indexOf( ...

  4. ES6 — 新增关键字let、const

    ECMAScript 是什么? 首先,我们都知道JavaScript由三部分组成:ECMAScript,DOM,BOM: 其中的ECMAScript是Javascript的语法规范. ECMAScri ...

  5. Objective-c——UI基础开发第七天(自定义UITableView)

    一.梗概: 1.自定义:headerView,footerVie,Cell等 2.双模型(遵循单一原则,类或模型实现的功能尽量单一) 3.计算文本的方法(针对不同文本内容而设置的宽高等) 4.设置fo ...

  6. Hive 复习

    hive分为CLI(command line)(用的比较多) JDBC/ODBC-ThriftServer hiveServer(hive -service hiveserver),JDBC访问,一个 ...

  7. 织梦DedeCMS"当前位置"去除最后一个 > 符号的方法

    首先找到根目录下面的include 目录,然后找到 typelink.class.php 文件, 再查找到 GetPositionLink 方法 下面的 return $this->valueP ...

  8. c笔记

    关于数组的操作: 初始化: 完全初始化: Int a[5] = {1,3,4,5,6}; 不完全初始化:   未被初始化的元素自动为零 Int a[5] = {1, 3, 4}; 不初始化,  所有元 ...

  9. js获取ifram对象

    1.获取iframe对象 var doc=document.getElementById('frameId').contentWindow.document; //var doc=parent.doc ...

  10. spring注解方式在一个普通的java类里面注入dao

    spring注解方式在一个普通的java类里面注入dao @Repositorypublic class BaseDaoImpl implements BaseDao {这是我的dao如果在servi ...