“操作系统实验”实验报告

proc文件系统的实现

实验名称:proc文件系统的实现

班级:软嵌202

姓名:张成昱

学号:2030110783

日期:5.24

实验目的

  1. 掌握虚拟文件系统的实现原理;
  2. 实践文件、目录、文件系统等概念。

实验内容

  1. 在 Linux 0.11 上实现 procfs(proc 文件系统)内的 psinfo 结点。当读取此结点的内容时,可得到系统当前所有进程的状态信息。例如,用 cat 命令显示 /proc/psinfo 的内容。
  2. procfs 及其结点要在内核启动时自动创建。
  3. 相关功能实现在 fs/proc.c 文件内。

实验过程

  1. 环境准备 图片描述
  2. 修改include/sys/下的stat.h 图片描述
  3. 再修改namei.c 图片描述
  4. 修改init/main.c文件 图片描述 图片描述
  5. 修改fs/read_write.c文件 图片描述 图片描述
  6. 新增/fs/proc.c文件 图片描述
  7. 修改fs/Makefile文件 图片描述
  8. ./run运行内核,输出cat命令,即可查看psinfo(当前系统进程状态信息)和hdinfo(硬盘信息)的信息 图片描述

实验结果分析

一次 read() 未必能读出所有的数据,需要继续 read(),直到把数据读空为止。而数次 read() 之间,进程的状态可能会发生变化。

实验心得

本次实验使我掌握虚拟文件系统的实现原理;了解了实践文件、目录、文件系统等概念。其中有的错误到最后解决的时候却是发现犯得很幼稚,不过这样的错误多了,在不知不觉中对软件的使用、代码的含义都有了更深的理解。

最新评论
暂无评论~