/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 ...
随机推荐
- 222. Count Complete Tree Nodes
Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from W ...
- Set-常用API及详解
SetAPI: 类别 方法 增 add.addAll 删 remove.removeAll 长 size 遍 iterator 判 isEmpty hashCode 使用与集合大同小异,主要的区别就在 ...
- poj 2299 树状数组求逆序对数+离散化
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 54883 Accepted: 20184 ...
- ZOJ 1241 Geometry Made Simple
/*Mathematics can be so easy when you have a computer. Consider the following example. You probably ...
- Java获得文件的创建时间(精确到秒)
jni C/C++ 头文件:MyFileTime.h C/C++ code /* DO NOT EDIT THIS FILE - it is machine generated */#include ...
- 数据库必会必知 之 SQL四种语言:DDL DML DCL TCL(转)
今天群里面讨论,DDL 还是 DML,我这种小白还是总结下他们的区别吧. 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构. 其主要命令有CREAT ...
- MySql数据类型(转)
数值类型 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指 ...
- 黑马程序员——JAVA基础之主函数main和静态static,静态代码块
------- android培训.java培训.期待与您交流! ---------- 主函数:是一个特殊的函数.作为程序的入口,可以被jvm调用. 主函数的定义: public:代表着该函数访问权限 ...
- 初识boost之boost::share_ptr用法
boost中提供了几种智能指针方法:scoped_ptr shared_ptr intrusive_ptr weak_ptr,而标准库中提供的智能指针为auto_ptr. 这其中,我最喜欢,使用最多的 ...
- QQ登入(1)-有客户端直接授权,没客户端web授权
准备jar文件3个: android-support-v4.jar 下载地址:http://pan.baidu.com/s/1eQmoTm6 mta-sdk-1.6.2.jar 下载地址:http:/ ...