添加Linux模块

有了系统调用的经验,添加模块还是很顺利的。

 

【实验环境】
Fedora,内核2.6.21.6


【实验步骤】
1. cd /root/homework/module
2. vi process.c
3. 加入如下代码:
#include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h> static int process_init(void) { int num=0; struct task_struct *p; for_each_process(p) { struct task_struct *q=p->parent; printk("pid=%-5d,name=%-20s,",p->tgid,p->comm); printk("prio=%-5d,",p->prio); printk("my_parent is: %s[%d]/n",q->comm,q->tgid); num++; } printk("/ntotal number is: %d/n",num); return num; } static void process_exit(void) { printk("==================/n"); printk("process_exit,GoodBye!/n"); } module_init(process_init); module_exit(process_exit); MODULE_LICENSE("GPL");

4. vi Makefile


5. 加入如下代码
obj-m :=process.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean


6. make
7. /sbin/init 3 进入字符界面
8. insmod process.ko 显示结果
9. rmmod process.ko 移出内核,显示结果

你可能感兴趣的:(linux,struct,shell,Module,each,makefile)