1 / 11

Linux 操作系统分析与实践 实验三: proc 文件的操作

Linux 操作系统分析与实践 实验三: proc 文件的操作. 《 Linux 操作系统分析与实践 》 课程建设小组 北京大学 二零零八年春季 *致谢:感谢 Intel 对本课程项目的资助. 实验目的. 了解 proc 文件系统编程 了解内核模块编程. 内核模块操作 /proc 文件. /proc 文件系统,这是内核模块和系统交互的两种主要方式之一。 /proc 文件系统也是 Linux 操作系统的特色之一。. /proc 文件系统不是普通意义上的文件系统,它是一个伪文件系统。

sabin
Download Presentation

Linux 操作系统分析与实践 实验三: proc 文件的操作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux操作系统分析与实践实验三:proc文件的操作Linux操作系统分析与实践实验三:proc文件的操作 《Linux操作系统分析与实践》课程建设小组 北京大学 二零零八年春季 *致谢:感谢Intel对本课程项目的资助

  2. 实验目的 • 了解proc文件系统编程 • 了解内核模块编程

  3. 内核模块操作/proc文件 • /proc文件系统,这是内核模块和系统交互的两种主要方式之一。 • /proc文件系统也是Linux操作系统的特色之一。

  4. /proc文件系统不是普通意义上的文件系统,它是一个伪文件系统。/proc文件系统不是普通意义上的文件系统,它是一个伪文件系统。 • 通过/proc,可以用标准Unix系统调用(比如open()、read()、write()、 ioctl()等等)访问进程地址空间 • 可以用cat、more等命令查看/proc文件中的信息。 • 用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。 • 当调试程序或者试图获取指定进程状态的时候,/proc文件系统将是你强有力的支持者。通过它可以创建更强大的工具,获取更多信息。

  5. 察看/proc 的文件 $ ls -l /proc/cpuinfo -r--r--r-- 1 root root 0 Dec 25 11:01 /proc/cpuinfo $ file /proc/cpuinfo /proc/cpuinfo: empty $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 11 model name : Intel(R) Pentium(R) III Mobile CPU 1000MHz stepping : 1 cpu MHz : 999.166 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse bogomips : 1992.29

  6. 得到系统/内核信息 • 有些/proc 的文件是经过编码的,不同的工具可以被用来解释这些编码过的信息并输出成可读的形式。这样的工具包括:'top', 'ps', 'apm' 等。 • proc 文件系统可以被用于收集有用的关于系统和运行中的内核的信息。下面是一些重要的文件: /proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等) /proc/meminfo - 物理内存、交换空间等的信息 /proc/mounts - 已加载的文件系统的列表 /proc/devices - 可用设备的列表 /proc/filesystems - 被支持的文件系统 /proc/modules - 已加载的模块 /proc/version - 内核版本 /proc/cmdline - 系统启动时输入的内核命令行参数

  7. 与内核交互 • 通过 /proc 中可读写的文件提供了对内核的交互机制。写这些文件可以改变内核的状态。大部分 /proc 的文件是只读的,/proc/sys 目录存放所有可读写的文件的目录,可以被用于改变内核行为, /proc/sys/kernel目录包含反通用内核行为的信息。 • Example: $ hostname machinename.domainname.com $ cat /proc/sys/kernel/hostname machinename $ echo "new-machinename" > /proc/sys/kernel/hostname $ hostname new-machinename.domainname.com

  8. 查看工具举例:VMSTAT vmstat 对系统的进程情况、内存使用情况、交换页和 I/O 块使用情况、中断以及 CPU 使用情况进行统计并报告相应的信息。 • Procs r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。 • Memory swpd: 虚拟内存使用情况,单位:KB free: 空闲的内存,单位KB buff: 被用来做为缓存的内存数,单位:KB • Swap si: 从磁盘交换到内存的交换页数量,单位:KB/秒 so: 从内存交换到磁盘的交换页数量,单位:KB/秒 • IO bi: 发送到块设备的块数,单位:块/秒 bo: 从块设备接收到的块数,单位:块/秒 • System in: 每秒的中断数,包括时钟中断 cs: 每秒的环境(上下文)切换次数 • CPU 按 CPU 的总使用百分比来显示 us: CPU 使用时间 sy: CPU 系统使用时间 id: 闲置时间

  9. 相关函数 • create_proc_entry() 创建一个文件 • proc_symlink() 创建符号链接 • proc_mknod() 创建设备文件 • proc_mkdir() 创建目录 • remove_proc_entry() 删除文件或目录

  10. Q&A 开始实验 ! 按照实验指导书的要求,完成实验

More Related