Wenxy's computer science technology blog

Weekend, drag racing with high speed. All rights reserved, Please indicate the source if reproduce.

A simple kernel module for linux

 A simple kernel module for linux

/* hello.c
 * Copyright (C) 1998 by Ori Pomerantz
 *
 * /"Hello, world/" - the kernel module version.
 * fix history: wenxy 20070918, a.m. wen_kernel@163.com
 */


#include  <linux/module.h>
#include  <linux/kernel.h>
#include  <linux/sched.h>
MODULE_LICENSE("GPL");


/* Initialize the module */
int init_module()
{
    printk("<1>Note: run .../n");
    printk("<1>Note: the process is %s [pid=%d]/n", current->comm, current->pid);
   

  /* If we return a non zero value, it means that
   * init_module failed and the kernel module
   * can/'t be loaded */
  return 0;
}


/* Cleanup - undid whatever init_module did */
void cleanup_module()
{
  printk("<1>Note: exit/n");
}


# Makefile for a basic kernel module
# wenxy 20070919, a.m. wen_kernel@163.com
# Red hat linux 9.0, kernel version 2.4.20-8

# Makefile for a basic kernel module
# wenxy 20070919, a.m. wen_kernel@163.com

dir = /usr/src/linux-2.4/include
modules = hello.o
CC = gcc
MODCFLAGS = -Wall -DMODULE -D__KERNEL__ -DLINUX  -I$(dir)

all : $(modules)

hello.o : hello.c
    $(CC) $(MODCFLAGS) -c hello.c
    chmod 711 $@
   
   
.PHONEY : clean run exit
run:
    insmod -f $(modules)
   
exit:
    rmmod hello
   
clean :
    -rm $(modules)
   

# end makefile
 


By the way,   use  shell command "insmod -f  hello.o"  for  load it to kernel,  at  last  run shell command  "rmmod hello"  for unload it,  and  run shell command  "lsmod" for  show  all  kernel modules.  That's all.
阅读更多
想对作者说点什么? 我来说一句

The Linux Kernel Module Programming Guide

2011年03月06日 415KB 下载

Linux kernel developement

2009年10月15日 17.58MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭