模块编程在程序设计中相当重要,不过这不是我要留下的,我要说的是Linux内核的模块编程,有些人可能在编程的过程中遇到个种种问题,我也一样,下面是内核模块的一般步骤,与众好友分享:
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
static int __init memtest_init(void)
{
}
static void __exit memtest_exit(void)
{
}
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:
clean:
下面介绍具体的运行步骤:
1.使用make编译Makefile文件
2.加载内核模块:sudo insmod hellomod.ko
3.用dmesg打印内核模块信息
4.卸载内存模块:sudo rmmod hellomod
到此基本模块框架就介绍完了。