linux内核研究-10-模块

来源:互联网 发布:音乐相册软件排名 编辑:程序博客网 时间:2024/05/22 01:49

linux内核研究-10-模块

 

1,说在前面

都说十全十美,这是内核研究的第十篇了,这也是linux内核研究系列的最后一篇。虽然《深入理解linux内核》看了多遍,《linux内核设计与实现》看了多遍,也写过几个内核模块,这次学习还是收获不少。

 

2,下面就以一个hello world模块结束这次linux内核之旅吧

//===

hello.c:

//===

 

/*                                                    
 * $Id: hello.c,v 1.0 2012/04/20 14:16:21 Rill zhen:rill_zhen@126.com $
 */                                                   
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
 printk(KERN_ALERT "Hello, world\n");
 return 0;
}

static void hello_exit(void)
{
 printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

 

//===

Makefile

//===

ifneq ($(KERNELRELEASE),)
obj-m :=hello.o
else

KERNELSRC :=/home/Rill/linux-2.6.19

modules:
 make -C  $(KERNELSRC) SUBDIRS=$(PWD) $@

clean:
 rm -f *.o *.ko *.mod.c *~

endif

 

//===

commond:

//===

加载模块:

modprobe hello.ko 或insmod hello.ko

最好用modprobe,会检查依赖关系。

卸载模块:

modprobe -r hello.ko 或rmmod hello.ko

与上面的加载命令对应使用。

 

 

原创粉丝点击