/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux? 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->最初开发 /proc 文件系统是为了提供有关系统中进程的信息。但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置。/proc 文件系统包含了一些目录(用作组织信息的方式)和虚拟文件。虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段。实际上我们并不会同时需要实现这两点,但是本文将向您展示如何配置这个文件系统进行输入和输出。尽管像本文这样短小的一篇文章无法详细介绍 /proc 的所有用法,但是它依然对这两种用法进行了展示,从而可以让我们体会一下 /proc 是多么强大。清单 1 是对 /proc 中部分元素进行一次交互查询的结果。它显示的是 /proc 文件系统的根目录中的内容。注意,在左边是一系列数字编号的文件。每个实际上都是一个目录,表示系统中的一个进程。由于在 GNU/Linux 中创建的第一个进程是
init 进程,因此它的
process-id 为
1。然后对这个目录执行一个
ls 命令,这会显示很多文件。每个文件都提供了有关这个特殊进程的详细信息。例如,要查看
init 的 command-line 项的内容,只需对
cmdline 文件执行
cat 命令。/proc 中另外一些有趣的文件有:
cpuinfo,它标识了处理器的类型和速度;
pci,显示在 PCI 总线上找到的设备;
modules,标识了当前加载到内核中的模块。
清单 1. 对 /proc 的交互过程| [root@plato]# ls /proc1 204023472874474fb mdstatsys104 2061235629309filesystemsmeminfo sysrq-trigger113 207323752933acpi fs miscsysvipc13752124092934buddyinfoidemodules tty1395218924452935businterrupts mountsuptime1706220125142938cmdlineiomemmtrrversion179 221125152947cpuinfoioportsnet vmstat180 222326073 crypto irqpartitions181 227826083004deviceskallsyms pci182 229126093008diskstatskcoreself2 2301263 3056dmakmsg slabinfo201523112805394 driver loadavgstat2019233728214 execdomainslocksswaps[root@plato 1]# ls /proc/1auxv cwdexeloginuidmem oom_adjrootstatm taskcmdlineenvironfd mapsmountsoom_scorestatstatuswchan[root@plato]# cat /proc/1/cmdlineinit [5][root@plato]# |
Linux下Erlang+Emacs环境的搭建Linux CentOS 初接触相关资讯 Linux内核
- IT人员必须了解的六项Linux内核变 (今 12:05)
- Linux 内核更新:3.10.98、3.14.62 (02月26日)
- Linux:让手机运行主线内核 (11/26/2015 22:16:17)
| - Linux内核自防护项目 (05月24日)
- Linux 内核架构的理解 (12/09/2015 09:01:01)
- Linux内核被指缺乏安全性 (11/07/2015 08:28:47)
|
本文评论 查看全部评论 (0)