A simple kernel module for linux

本文介绍了一个简单的Linux内核模块——Hello World模块的源代码及编译过程。该模块使用C语言编写,在加载时打印出运行信息及当前进程详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值