实验指导书--实验11 Linux proc文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十一:Linux proc文件系统
实验学时:4
实验类型:验证
实验要求:选修
一、实验目的
通过本实验的学习,理解和分析proc文件系统,掌握Linux proc文件的特点和使用方法,访问有关内核的状态、计算机的属性、正在运行的进程状态等信息。
二、实验内容
实验内容:了解proc文件系统,编写一个c程序,获取系统相关信息,实时监测(周期性显示)CPU、主存和网络的详细使用情况以及它们的利用率。
三、实验原理、方法和手段
实验原理:
proc 文件系统介绍:
proc 文件系统是一个虚拟文件系统,是一种内核和内核模块用来向进程(process) 发送信息的机制 (所以叫做proc)。
这个虚拟文件系统让你可以和内核内部数据结构进行交互,获取有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。
与其他文件系统不同,proc 存在于内存之中而不是硬盘上。
proc文件系统包含一些目录和虚拟文件。
大部分proc中的文件和目录提供系统物理环境最新的信息。
/proc目录中有一些以数字命名的目录,它们是进程目录。
系统中当前运行的每一个进程在/proc下都对应一个以进程号为目录名的目录/proc/pid,它们是读取进程信息的接口。
此外,在Linux2.6.0-test6以上的版本中/proc/pid 目录中有一个task目录,/proc/pid/task目录中也有一些以该进程所拥有的线程的线程号命名的目录/proc/pid/task/tid,它们是读取线程信息的接口。
/proc 由内核控制,没有承载 /proc 的设备。
因为 /proc 主要存放由内核控制的状态信息,所以大部分这些信息的逻辑位置位于内核控制的内存。
对/proc 进行一次 'ls -l' 可以看到大部分文件都是 0 字节大的;不过察看这些文件的时候,确实可以看到一些信息。
这是因为 /proc 文件系统和其他常规的文件系统一样把自己注册到虚拟文件系统层 (VFS) 了。
然而,直到当 VFS 调用它,请求文件、目录的 i-node 的时候,/proc 文件系统才根据内核中的信息建立相应的文件和目录。
实验方法和手段:
linux环境下编写c语言程序读取/proc文件并统计相关信息。
四、实验条件
PC机、linux操作系统
五、实验步骤
1,查看/proc 目录,了解此目录下各个目录以及文件的含义;解释以下文件的
含义:
* /proc/cpuinfo
* /proc/meminfo
* /proc/mounts
* /proc/devices
* /proc/filesystems
* /proc/modules
* /proc/version
* /proc/cmdline
* /proc/XXX – XXX是指以数字编号的目录
* /proc/sys
* /proc/swaps
* /proc/uptime
* /proc/fs/nfsd/exports
* /proc/kmsg
* /proc/kcore
2,从proc文件系统获取信息
通过读取proc文件系统,获取系统各种信息,包括主机名、系统启动时间、版本号、所有进程信息等
3,从proc中获取相关信息,分别编程计算并显示cpu的使用率、主存的使用率
和网络利用率。
注:这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo 三个文件中提取,要求实时监测(周期性显示)
选做:利用图形界面编程,实现类似Windows资源管理器的效果。