[源码和文档分享]Linux内核编译及添加系统调用

1 总体设计思路

系统调用的本质是调用内核函数,以内核态运行程序。为了在内核态下运行,本实验针对Linux的内核进行修改,增加自定义系统调用函数实现用户态程序对任意进程的nice值进行修改或者读取来进行测试。

2 主要函数的接口设计

核心态程序

  1. SYSCALL_DEFINE3(mysetnice, pid_t, pid, int, flag, int, nicevalue)

其中pid为选择进程的进程标识符;flag是操作符,设计为0时读取nice值,设计为1时进行修改操作;nice值为一返回变量,返回内核程序读取到的进程nice值;共计三个变量。

使用SYSCALL_DEFINE声明添加到~/kernel/sys.c文件中。

3 项目实现过程

3.1 准备

本次实验使用的环境为装载在Vmware Workstation Pro 14中的Ubuntu 17.10镜像。

镜像下载地址:http://mirrors.zju.edu.cn/ubuntu-releases/17.10/

为了编译执行顺利,我给虚拟机分配了8GB RAM和100GB虚拟硬盘空间,同时vCPU分配了8个核心,以便make -jn命令的使用。

安装ubuntu的时候,一定要注意查看/boot分区是否足够,如果不是工作环境最好直接将/boot分区挂载在根目录下,否则编译的时候产生的文件会塞满/boot分区导致编译安装失败。


参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1413.html

猜你喜欢

转载自blog.csdn.net/demongwc/article/details/84935803
今日推荐