$ 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
copy
$ cat /proc/hdinfo
total_blocks: 62000;
free_blocks: 39037;
used_blocks: 22963;
...
copy
copy
procfs 及其结点要在内核启动时自动创建。
相关功能实现在 fs/proc.c 文件内。
1.增加新文件类型,修改/include/sys/stat.h ,定义了几种文件类型和相应的测试宏:
2.让mknod()支持新的文件类型,修改/fs/namei.c文件中的sys_mknod()函数的代码,在其中增加关于proc文件系统的判断:
3.进程proc文件初始化,修改linux-0.11/init/main.c,建立/proc目录
4.编译
5.运行 输入 ll /proc并cat,但是向 cat 返回了 EINVAL 错误。
6.打补丁 /fs/read_write.c中添加声明extern
7.在proc_read()添加proc文件
8.添加proc文件
9.修改shiyanlou/oslab/linux-0.11/fs/Makefile
10.编译并运行
结果运行正确
通过本次实验,我掌握了虚拟文件系统的实现原理,实践文件、目录、文件系统等概念。根据提示一步步地修改文件,最终才能成功运行,虽然中间曾经一直编译报错,但最后一步步排查还是做出来了。
学习时间 182分钟
操作时间 57分钟
按键次数 546次
实验次数 4次
报告字数 2226字
是否完成 完成