什么是/proc文件系统?
首先,/proc文件系统不是一个真实的文件系统,而是一个虚拟的文件系统。最普遍的文件系统是硬盘上所有文件的集合。硬盘不需要考虑数据的意义而存储数据,而文件系统则负责解释这些数据。文件系统为用户把这些数据组织成文件夹和文件的形式。另外一个比较普遍的文件系统是网络文件系统(NFS),它能存取远程电脑上的文件。
所有的文件系统都是被Linux内核管理的,而Linux内核又把设备上的一些数据转换到可以使用的形式。因此,用户层的程序读取文件系统的时候就不需要知道如何以及到什么地方去取数据,不需要知道所需数据的真实地址。当程序读取/proc中的文件时,Linux内核就会控制相应的设备去获得所需的数据。但是如果程序读取的设备不存在时,Linux内核就提供内部状态的信息。/proc中的文件只有在有程序真正查询他们的时候才会存在。
/proc文件系统是Linux系统继承自Unix的。
/proc文件系统中有什么?
/proc文件系统中包括了Linux系统中的所有信息。比如说每个正在运行的程序,内存的所有内容,内核的内部工作。当前在系统中运行的所有进程也包含在/proc文件系统中。
下面介绍一些/proc文件系统中有趣的文件。这个不是完整的,而是仅仅介绍一些最常用的文件。详细介绍参考 Linux System Configuration and the proc filessystem。
/proc文件系统中的内容完全依靠处理器的构架(比如说 /proc /cpuinfo只有在处理器是X86构架时存在)。与内核通信的不同类型的硬件也会添加文件。同时也会有些文件会根据内核的编译选项的不同而不存在。
/proc文件系统中一些常用的文件
首先,/proc文件系统不是一个真实的文件系统,而是一个虚拟的文件系统。最普遍的文件系统是硬盘上所有文件的集合。硬盘不需要考虑数据的意义而存储数据,而文件系统则负责解释这些数据。文件系统为用户把这些数据组织成文件夹和文件的形式。另外一个比较普遍的文件系统是网络文件系统(NFS),它能存取远程电脑上的文件。
所有的文件系统都是被Linux内核管理的,而Linux内核又把设备上的一些数据转换到可以使用的形式。因此,用户层的程序读取文件系统的时候就不需要知道如何以及到什么地方去取数据,不需要知道所需数据的真实地址。当程序读取/proc中的文件时,Linux内核就会控制相应的设备去获得所需的数据。但是如果程序读取的设备不存在时,Linux内核就提供内部状态的信息。/proc中的文件只有在有程序真正查询他们的时候才会存在。
/proc文件系统是Linux系统继承自Unix的。
/proc文件系统中有什么?
/proc文件系统中包括了Linux系统中的所有信息。比如说每个正在运行的程序,内存的所有内容,内核的内部工作。当前在系统中运行的所有进程也包含在/proc文件系统中。
下面介绍一些/proc文件系统中有趣的文件。这个不是完整的,而是仅仅介绍一些最常用的文件。详细介绍参考 Linux System Configuration and the proc filessystem。
/proc文件系统中的内容完全依靠处理器的构架(比如说 /proc /cpuinfo只有在处理器是X86构架时存在)。与内核通信的不同类型的硬件也会添加文件。同时也会有些文件会根据内核的编译选项的不同而不存在。
/proc文件系统中一些常用的文件
- cpuinfo 包含了内核启动时形成的关于处理器的一些信息,比如说处理器类型等。
- kcore 包含了RAM中的全部内容。
- loadavg 包含了系统最后1,5以及15分钟的平均加载的进程数,同时也包含系统当前运行的进程数以及所有的进程数。
- meminfo 包含了内存使用率,RAM可用空间和多少swap space被使用以及如何使用。
- stat 包含了系统的统计信息。
- uptime 包含了系统系统运行了多长时间(秒)以及系统空闲的时间。
- version 包含了内核的版本信息。
- net/ 是一个网络信息的文件夹。
未完待续……
如何使用?
我们可以用一下的方式查询这些文件的内容:
比如: cat /proc/meminfo