Linux内核编程之第一个内核…

模块编程在程序设计中相当重要,不过这不是我要留下的,我要说的是Linux内核的模块编程,有些人可能在编程的过程中遇到个种种问题,我也一样,下面是内核模块的一般步骤,与众好友分享:

 

#include <linux/module.h>
#include <linux/init.h>

#include <linux/kernel.h>

static int __init memtest_init(void)
{
      printk("Hello kernel!nn");
      return 0;
}

static void __exit memtest_exit(void)
{
  printk("Quit kernel!n");
}

module_init(memtest_init);
module_exit(memtest_exit);
MODULE_LICENSE("GPL");

 

模块编程简单,但是Makefile文件对于初学者来说,也是一个头疼的问题,因为Makefile文件对于符号的定义很严谨,哪怕一个空格也会导致编译无法通过。

下面给出一个通用的Makefile,大家可以参阅:

#####

obj-m=hellomod.o    #编译源文件生成的目标文件

CURRENT_PATH = $(shell pwd)

KERNEL_PATH = $(shell uname -r)

LINUX_KERNEL_PATH = /usr/src/linux-headers-$(KERNEL_PATH)

 

all:

        make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules

clean:

        make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean

 

下面介绍具体的运行步骤:

1.使用make编译Makefile文件

2.加载内核模块:sudo insmod hellomod.ko

3.用dmesg打印内核模块信息

4.卸载内存模块:sudo rmmod hellomod

 

到此基本模块框架就介绍完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值