这是我在大三的时候的一个课程设计,觉得挺有意思,所以就算是当作我的第一个博客吧!
先放题目上来:
通过在Linux内核中自建变量,并利用/proc文件系统作为中介的方法,统计系统缺页的次数。
要求: (1)在内核中实现缺页次数统计; (2)编译并安装新内核; (3)新建内核模块,并加载到新内核,通过/proc实现用户态下查看缺页次数。
我下的虚拟机是centos:
然后我在网上下的那个内核的版本是linux-3.16.62,将其下载解压后放在/usr/src/kernels下。
//大家可以去官网下,但是官网的水龙头太小,所以也可以选择中科大的开源镜像站
进入linux-3.16.62:
[root@localhost ~]# cd /usr/src/kernels/linux-3.16.62
然后就可以开始了。
修改fault.c,执行如下命令:
[root@localhost linux-3.16.62]# vi arch/x86/mm/fault.c
//在do_page_fault函数上一行定义统计缺页次数的全局变量pfcount,加入的一行如下:
unsigned long volatile pfcount;
//将pfcount加入到do_page_fault函数内,用于统计缺页的次数,加入的代码如下:
pfcount++;
添加完的结果:
改完之后保存退出。
随后修改mm.h:
[root@localhost linux-3.16.62]# vi include/linux/mm.h
/