使用procfs访问Linux内核

使用procfs访问Linux内核

ID:42657527

大小:48.74 KB

页数:10页

时间:2019-09-19

使用procfs访问Linux内核_第1页
使用procfs访问Linux内核_第2页
使用procfs访问Linux内核_第3页
使用procfs访问Linux内核_第4页
使用procfs访问Linux内核_第5页
资源描述:

《使用procfs访问Linux内核》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用/proc文件系统来访问Linux内核的内容这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口文档选项打印本页窗体顶端将此页作为电子邮件发送窗体底端样例代码级别:初级M.TimJones(mtj@mtjones.com),资深首席软件工程师,Emulex2006年4月24日/proc文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在Linux®内核空间和用户空间之间进行通信。在/proc文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对/proc虚拟文件系

2、统进行了介绍,并展示了它的用法。最初开发/proc文件系统是为了提供有关系统中进程的信息。但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置。/proc文件系统包含了一些目录(用作组织信息的方式)和虚拟文件。虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段。实际上我们并不会同时需要实现这两点,但是本文将向您展示如何配置这个文件系统进行输入和输出。尽管像本文这样短小的一篇文章无法详细介绍/proc的所有用法,但是它依然对这两种用法进行了展示,从而可以让我们体会一下/proc是多么强大

3、。清单1是对/proc中部分元素进行一次交互查询的结果。它显示的是/proc文件系统的根目录中的内容。注意,在左边是一系列数字编号的文件。每个实际上都是一个目录,表示系统中的一个进程。由于在GNU/Linux中创建的第一个进程是init进程,因此它的process-id为1。然后对这个目录执行一个ls命令,这会显示很多文件。每个文件都提供了有关这个特殊进程的详细信息。例如,要查看init的command-line项的内容,只需对cmdline文件执行cat命令。/proc中另外一些有趣的文件有:cpuinfo,它标识了处理器的类型和速度;pci,显示在PCI总

4、线上找到的设备;modules,标识了当前加载到内核中的模块。清单1.对/proc的交互过程[root@plato]#ls/proc1204023472874474fbmdstatsys1042061235629309filesystemsmeminfosysrq-trigger113207323752933acpifsmiscsysvipc13752124092934buddyinfoidemodulestty1395218924452935businterruptsmountsuptime1706220125142938cmdlineiomemmtrrve

5、rsion179221125152947cpuinfoioportsnetvmstat180222326073cryptoirqpartitions181227826083004deviceskallsymspci182229126093008diskstatskcoreself223012633056dmakmsgslabinfo201523112805394driverloadavgstat2019233728214execdomainslocksswaps[root@plato1]#ls/proc/1auxvcwdexeloginuidmemoom_ad

6、jrootstatmtaskcmdlineenvironfdmapsmountsoom_scorestatstatuswchan[root@plato]#cat/proc/1/cmdlineinit[5][root@plato]#清单2展示了对/proc中的一个虚拟文件进行读写的过程。这个例子首先检查内核的TCP/IP栈中的IP转发的目前设置,然后再启用这种功能。清单2.对/proc进行读写(配置内核)[root@plato]#cat/proc/sys/net/ipv4/ip_forward0[root@plato]#echo"1">/proc/sys/net

7、/ipv4/ip_forward[root@plato]#cat/proc/sys/net/ipv4/ip_forward1[root@plato]#另外,我们还可以使用sysctl来配置这些内核条目。有关这个问题的更多信息,请参阅参考资料一节的内容。顺便说一下,/proc文件系统并不是GNU/Linux系统中的惟一一个虚拟文件系统。在这种系统上,sysfs是一个与/proc类似的文件系统,但是它的组织更好(从/proc中学习了很多教训)。不过/proc已经确立了自己的地位,因此即使sysfs与/proc相比有一些优点,/proc也依然会存在。还有一个debu

8、gfs文件系统,不过(顾名思义)它提供

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。