内核模块开发

本文介绍Linux内核模块的基本概念、特点及操作方法,包括安装、卸载流程,并通过编写示例代码来验证模块设计的三要素:头文件、加载函数与卸载函数。此外,提供了一个简单的Makefile来构建和管理模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里小编简单介绍一下Linux内核模块的设计

        首先,我们要知道什么是内核模块

                内核模块具有如下特点:

1.模块本身并不被编译内核文件(zImage或者bzImage)

2.可以根据需求,在内核运行期间动态的安装或卸载

                                                                                                 安装与卸载 

安装 insmod

          例:insmod /home/dnw_usb

卸载 rmmod

         例:rmmod dnw_usb

查看 lsmod

        例: lsmod

 

                                                                                                Linux内核模块设计

三要素:

1.头文件-linux/init.h    linux/module.h

2.加载函数-module_init

3.卸载函数-module_exit

 

简单编写一个内核模块,来证明所需要的三要素

在Linux终端上创建 # vi helloworld.c

#include<linux/init.h>

#include<linux/exit.h>

 

static int hello_init()

{

        printk(KERN_WARING"hello world!\n");

        return 0;

}

 

static int hello_exit()

{

        printk(KERN_WARING""hello world!\n);

}

 

module_init(hello_init);

module_exit(hello_eixt);

 

                                                                                                     编写Makefile

obj-m := hellowold.o

KDIR := /home/boss/linux-2.6.28.6   #这个是开发板内核代码的路径

all:

        make -C $(KDIR) modules CROSS_COMPILE=arm-linux- ARCH=arm

clean:

        rm -f *.o *.ko *.order *.symvers

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值