Linux 内核模块编写三个模块文件mainmod.c、lenmod.c、summod.c,在mainmod模块调用summod模块对数组进行求和运算,summod模块调用lenmod模块求数组中元素

1.Linux 内核模块编写三个模块文件mainmod.c、lenmod.c、summod.c,在mainmod模块调用summod模块对数组进行求和运算,summod模块调用lenmod模块求数组中元素的个数。注意路径清晰,分别在三个目录下编写。

作业题目如上,Linux 内核模块编程流程如下:
1.第一步查看内核版本:
在这里插入图片描述
2.下载内核编程模块
lyum install kernel-deve 安装失败参考.
安装完成该目录下/usr/src/kernels有内核文件夹
在这里插入图片描述
3.现在可以可是内核模块编程了,首先我们先了解内核模块C语言和应用程序C语言区别:
在这里插入图片描述

4.代码如下:

文件目录如
在这里插入图片描述
summod.c源码:
在这里插入图片描述
在这里插入图片描述
modpram下的Makefile为:
在这里插入图片描述
module1文件夹下的mainmod.c:
在这里插入图片描述
在这里插入图片描述
module1下的Makefile:
在这里插入图片描述
module2下的lenmmod.c:
在这里插入图片描述
在这里插入图片描述
module2下的Makefile:
在这里插入图片描述

全建立完后开始编程:

依次到三个文件夹下make命令:此为成功!
在这里插入图片描述
如果遇到:
在这里插入图片描述
需要把它依赖的Module.symvers复制\覆盖到该文件夹:具体操作:
summod.c需要module2下的Module.symvers
在modpram目录下:

lcp /root/modpram/module2/Module.symers /root/modpram
mainmod.c需要modpram下的Module.symvers
在module1目录下:
lcp /root/modpram/Module.symers /root/modpram/module1
在这里插入图片描述

全部make完后开始插入内核模块

在三个文件夹下分别执行
linsmod lenmod.ko
linsmod summod.ko
linsmod mainmod.ko
完成后用dmesg |tail -10查看模块输出信息:(数组为{3,4,7,8,-1}-1为结束符,长度为4,和为22)
在这里插入图片描述
最后退出模块:
lrmsmod lenmod
lrmsmod summod
lrmsmod mainmod
完成!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值