添加一个系统调用,写一个用户态进程调用该系统调用。该系统调用获取以下内容:
- 当前进程的所有已分配的虚拟内存对应的物理内存页框号
- 当前进程的内核栈地址
- 当前进程打开文件占用的磁盘块总数,以及每个文件占用的磁盘块号
[可选] 以上所有信息输出到
proc
文件系统
- 了解如何编译内核以及如何添加一个系统调用;
Linux
虚拟地址到物理地址的转换过程,熟悉相关的辅助函数;Linux
进程进程描述符和进程内核栈的设计;VFS
和task_struct
之间的联系proc
文件系统
Linux-4.17.12
+ ubuntu
下载了 Linux-4.17.12
内核源代码之后先在本地初始化该仓库,完成某一个实验功能之后 git patch
生成 patch
每个人自己在 github
仓库上开一个分支,分支以自己的名字拼音全拼命名,在上面提交自己的 patch
仓库地址:https://github.com/hdu-edgeintelligence/2021summer-system_group-lab_systemcall