编写入门的linux模块(Hello World)

首先在自己的目录下写源码

用VI这个工具

文件命名为hello.c

//
//hello.c
//
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>

static int hello_init(void) {
	printk(KERN_WARNING "Module init: Hello world!\n");
	return 0;
}

static void hello_exit(void) {
	printk(KERN_WARNING "Module exit: bye-bye\n");
}

module_init(hello_init);
module_exit(hello_exit);

最后两行指定了模块加载和卸载时执行的函数,加载时执行hello_init,卸载时执行hello_exit。
写一个Makefile,内容如下(文件名也为Makefile)

obj-m = hello.o
default:
        $(MAKE) -C/usr/src/kernels/2.6.18-238.el5-i686 M=$(PWD) modules
clean:
        $(MAKE) -C/usr/src/kernels/2.6.18-238.el5-i686 M=$(PWD) clean

第一个路径则是要去编译的内核版本的路径      M后面的路径则是hello.c的目录

在当前目录下,编译

可从当前目录下看到生成的文件

会生成一个内核模块hello.ko。这就是我们编译好的内核模块,接下来加载它,并查看结果。

输入命令

insmod hello.ko

输入命令

dmesg

看系统日志(最后一行)

输入命令

lsmod | grep hello

也可查看

输入命令

rmmod hello 卸载模块

再次输入命令

dmesg

看系统日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值