/proc 文件系统
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 文件系统的更多相关文章
- linux 使用/proc文件系统 实现用户空间与内核模块之间通信
项目中可能会用到用户态和内核模块之间进行通信的功能.想到linux系统本身很多通信都是通过/proc文件系统来的,比如修改网络中连接跟踪表连接数限制/proc/sys/net/netfilter/nf ...
- proc文件系统
在shell终端里不带任何参数,直接运行mount命令可以显示正在挂载的文件系统.其中有这么一行 none on /proc type proc (rw) 这就是/proc文件系统.第一个域显示non ...
- proc文件系统在内核中的表现
当Linux内核启动起来之后,我们可以通过proc虚拟文件系统来查看内的中的一些动态信息. 例如:可以 cat /proc/misc 来查看系统中装载的所有misc类设备 cat /proc/d ...
- 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解
http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...
- <解说linux下proc文件系统>
proc文件系统的作用是访问系统内核信息 proc不是一个真实的文件系统,它不占系统的外存空间,只是以文件的形式为用户访问linux内核数据提供接口,因为系统内核总是动态的变化,所以我们所捕捉到的也只 ...
- (转)使用 /proc 文件系统来访问 Linux 内核的内容
转载网址:http://www.ibm.com/developerworks/cn/linux/l-proc.html 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口/proc 文件系统是 ...
- linux中proc文件系统 -- ldd3读书笔记
1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...
- 在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world
一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 二.实验环境 物理主机:w ...
- linux kernel (proc文件系统)参数
http://blog.csdn.net/guowake/article/details/3279796 Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的. 二./pr ...
- kobox: key_proc.c -v1 怎样使用proc文件系统调试驱动
使用proc文件系统能够非常方便调试驱动.查看驱动中的一些数据 平台:TQ2440 系统版本号: root@ubuntu:/mnt/shared/kobox# uname -a Linux ubunt ...
随机推荐
- ZOJ 1042 W’s Cipher
原题链接 题目大意:按照规则解码.26个字母分成三组,每一组按照顺时针移位编码.现在已知移动的位数,要求解码. 解法:以前看过一本古典密码学的书,百度贴吧密码吧也有很多经典的加密方法,想什么凯撒移位. ...
- 一个方法中的ajax在success中renturn一个值,但是方法的返回值是undefind?
https://segmentfault.com/q/1010000003762379 A页面 console.log(handleData("search_list", &quo ...
- 使用配置方式进行ssh的整合以及管理员管理的案例(二)
(续) 删除Hibernate配置文件的写法: 在applicationContext.xml中添加数据库操作的相关配置: <!-- 配置数据库连接池 --> <bean id ...
- Codeforces378 D Kostya the Sculptor(贪心)(逻辑)
Kostya the Sculptor time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 渴切-开源中文css框架
渴切:是国内优秀的开源css框架. 渴切是一个开源中文 (X)HTML/CSS 框架 ,它的目的是减少你的css开发时间.它提供一个可靠的css基础去创建你的项目,能够用于网站的快速设计,通过重设和重 ...
- ubuntu下nfs服务器的安装与配置
nfs服务器的安装和配置 1.安装nfs 服务器,前提是你的系统能连上网. 2.设置/etc/exports配置文件 (1) 进入/etc/exports配置文件 (2) 在最后一行加入红色那行,/h ...
- JSBinding+SharpKit / MonoBehaviour替换成JSComponent原理
Unity 是基于组件式的开发,gameObject 身上可以绑定任意个脚本.每个脚本组成 gameObject 的一个部分. 脚本里通过添加预定义好的函数来执行自己的任务.比如Awake,用于初始化 ...
- Abdicate
每次,打开背单词软件,背诵单词时,A打头的单词,第一个,永远会是 Abdicate,放弃,抛弃. 真是有意思. 想想在学习js高级程序设计一书时,一横心,决心手动输入书中出现过的每一个代码片段示例. ...
- Oracle数据库——索引、视图、序列和同义词的创建
一.涉及内容 1.理解索引的概念和类型. 2.掌握创建索引的命令. 3.理解视图的概念和优点. 4.理解可更新视图应具备的特点. 5.掌握创建一般视图和可更新视图的命令. 6.理解序列和同义词的概念和 ...
- qemu-kvm命令
三种方式创建虚拟机 1.qemu-kvm来创建虚拟机 通过阅读man qemu-kvm手册而清楚的. 于20160430阅读 [root@kvm1 ~]# /usr/libexec/qemu-kvm ...