[Linux驱动开发一]最简单的内核模块

目录

一、预备知识

1.1 什么是内核模块?

1.2 Linux内核模块组成部分

二、源码编写

1.1 hello.c源码编写

1.2 Makefile编写

三、源码编译

3.1 make编译

3.2 insmod加载内核模块

3.3 rmmod移除内核模块

3.4 查看内核模块

3.4.1 lsmod命令

3.4.2 cat /proc/modules

3.4.3 ls /sys/module/hello/

3.5 dmesg查看模块输出

 四、小结


相关代码下载链接

一、预备知识

1.1 什么是内核模块?

        Linux 内核模块(LKM)是一些在启动的操作系统内核需要时可以载入内核执行的代码块,不

需要时由操作系统卸载。它们扩展了操作系统内核功能却不需要重新编译内核、启动系统。如果没

有内核模块,就不得不反复编译生成操作系统的内核镜像来加入新功能,当附加的功能很多时,还

会使内核变得臃肿。

1.2 Linux内核模块组成部分

        (1) 模块加载函数(必须):当通过insmod 或modprobe 命令加载内核模块时,模块的加载函

数会自动被内核执行,完成本模块相关初始化工作。

        (2) 模块卸载函数(必须):当通过rmmod 命令卸载模块时,模块的卸载函数会自动被内核执

行,完成与模块加载函数相反的功能。

        (3) 模块许可证声明(必须):模块许可证(LICENCE)声明描述内核模块的许可权限,如果

不声明LICENCE,模块被加载时将收到内核被污染的警告。大多数情况下,内核模块应遵循GPL 兼

容许可权。

        (4) 模块参数(可选):模块参数是模块被加载的时候可以被传递给他的值,它本身对应模块内部

的全局变量。

        (5) 模块导出符号(可选):内核模块可以导出符号(symbol,对应于函数或变量),这样其他模

块可以使用本模块中的变量或函数。

        (6) 模块作者等信息声明(可选

        一个内核模块至

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值