学习笔记:Linux下编写内核模块(0)

来源:互联网 发布:个人域名转企业域名 编辑:程序博客网 时间:2024/06/03 22:48

最简单的内核模块编写,需要包含以下最基本的条件:

1、头文件

      根据功能的需求,添加不同功能的内核相关头文件

       #include <linux/module.h>

       #include <linux/init.h>

       以上两个头文件是必不可少的。

2、模块初始化

                         模块初始化函数

       static int __init module_init_func(void)

       {

                 初始化代码;

       }

       module_init(module_init_func) ;


                         模块退出函数

       static void __exit module_exit_func(void)

       {

              模块退出代码 ;

        }

        module_exit(module_exit_func) ;

        以上两个函数都不和应用层打交道,都只与内核的模块管理子系统打交道。

3、许可证

       MODULE_LINCENSE("GPL") ;

4、符号导出

       EXPORT_SYMBOL(module_symble) ;   #想让当前的某一模块符号能被其他模块使用,可以通过此方式实现。

5、模块描述

       MODULE_AUTHOR("作者名");

       MODULE_DESCRIPTION("模块描述") ;

       MODULE_VERSION("模块版本") ;

6、编译

       编写Makefile文件: 

               obj-m := filename.o

       编译是要用到内核代码的,需要知道内核代码所在路径,然后在终端输入

               $make -c ~/linux(内核源码路径) M=`pwd`(目标路径) modules ;

7、加载和卸载模块

      #insmod modulename.ko

      #rmmod modulename.ko

      



















0 0
原创粉丝点击