*LInux编写内核系统调用
不要再入坑了!!!
其实所谓的LInux编写内核系统调用就是在他的内核相关的文件里写入相应函数(按内核函数规范),之后重新编译一个内核就可(注意其实就是重新编译了一个内核!!!),只要在这个过程中没有出现什么问题,自然就可以在用户态调用那个自己编写的系统调用!!!
笔者就贴出自己的实验报告,大伙一看就明白了(当然注意其中*.1都是编写内核函数模块的内容,可以说是用来测试的,沿革说不属于主题内容,大家注意下就可)
系统调用用户态获取当前进程相关信息
实验内容:
1.1编写内核可运行helloworld程序模块并插入内核调用
1.2内核程序中添加上述程序及系统调用,编译内核后在用户态调用
2.1编写内核可运行获取当前进程相关信息程序模块并插入内核调用
2.2内核程序中添加上述程序及系统调用,编译内核后在用户态调用
实验过程:
1.1
写内核模块程序line.c-》插入内核-》编译-》调用内核模块函数-》用户态使用dmesg查看内核模块函数运行结果,输出helloworld以及goodbye
1.2
在1.1基础上,内核里写系统调用-》编译内核-》用户态写hello.c调用系统调用-》用户态使用系统调用成功-》dmesg查看并运行结果,输出helloworld
注:下面这种图是修改了还记启动项后出现的grub
2.1
在1.1、1.2基础上,写内核模块程序line.c-》插入内核-》编译-》调用内核模块函数-》用户态使用dmesg查看内核模块函数运行结果,当前进程相关信息(基础)
2.2
在1.1、1.2,2.1、2.2基础上,内核里写系统调用-》编译内核-》用户态写hello.c调用系统调用-》用户态使用系统调用成功-》dmesg查看并运行结果,当前进程相关信息
参考链接:
Linux内核编程指南
https://blog.youkuaiyun.com/yeshennet/article/details/82315604?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242
Linux编写系统调用实例hello world01
https://blog.youkuaiyun.com/song_lee/article/details/82995312
Linux编写系统调用实例hello world02
https://blog.youkuaiyun.com/qq_41037945/article/details/91352418?utm_medium=distribute.pc_relevant.none-task-blog-title-7&spm=1001.2101.3001.4242
获取当前进程相关信息
https://www.pianshen.com/article/6117288051/
编写内核模块实现添加系统调用***
https://blog.youkuaiyun.com/Egqawkq/article/details/88970390?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.edu_weight
操作系统课程设计(二):linux内核模块编程
https://blog.youkuaiyun.com/zyf2333/article/details/80043817?utm_source=app