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

proc文件系统的实现

实验名称:proc文件系统的实现 实验日期:2022.5.24 班级:软嵌202 姓名:张孙儒轩 学号:1930110790 一、实验目的 1、掌握虚拟文件系统的实现原理;

2、实践文件、目录、文件系统等概念

二、实验环境 linux

三、实验内容 在 Linux 0.11 上实现 procf(proc 文件系统内 psinfo 结点。当读取此结点的内容时,可得到系统当前所有进程的状态信息。例如,用 cat 命令显示 /proc/psinfo 的内容,可得到: $ cat /proc/psinfo pid state father counter start_time 0 1 -1 0 0 1 1 0 28 1 4 1 1 1 73 3 1 1 27 63 6 0 4 12 817

$ cat /proc/hdinfo total_blocks: 62000; free_blocks: 39037; used_blocks: 22963; ...

procfs 及其结点要在内核启动时自动创建。

相关功能实现在 fs/proc.c 文件内。

四、实验过程及数据记录 实验环境准备:

hit-oslab 实验环境简称 oslab,是一个压缩文件,使用下面的命令解压展开压缩包即可工作。

输入命令: 图片描述 l增加新文件类型,修改/include/sys/stat.h 图片描述 4.2 让 mknod() 支持新的文件类型1.使创建结点的mknod() 函数支持新的文件类型,修改 fs/namei.c 文件中的 sys_mknod() 函数 图片描述 图片描述 2.进程proc文件初始化,修改/init/main.c 图片描述 图片描述 3.编译内核 图片描述 运行,psinfo被正确open() 图片描述 图片描述 4.3 让 proc 文件可读 1.修改sys_read().首先在/fs/read_write.c中添加声明 图片描述 2.在proc_read()添加proc文件 图片描述 3.在fs里新建一个文件proc.c 图片描述 4.因为新建了一个文件,需要重新编写Makefile 图片描述 4.4 cat 命令的实现

重新编译通过 图片描述 输出cat命令,查看psinfo和hdinfo信息 图片描述 图片描述 五、实验结果分析 编译运行成功

六、实验心得 本次实验掌握了虚拟文件系统的实现原理,对实践文件、目录、文件系统等有了初步的认识。在 Linux 0.11 上实现 procfs(proc 文件系统)内的 psinfo 结点。当读取此结点的内容时,可得到系统当前所有进程的状态信息.

最新评论
暂无评论~