Linux内核模块开发

1.LINUX内核模块基础

1.1 什么是内核模块

  • Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用这些组件呢?方法1:把所有的组件都编译进内核文件,即:zImage或bzImage,但这样会导致一个问题:占用内存过多有没有一种机制能让内核文件本身并不包含某组件,而是在该组件需要被使用的时候,动态地添加到正在运行的内核中呢?
  • 内核模块具有如下特点:
    • 1)模块本身并不被编译进内核文件(zImage或者bzImage);
    • 2)可以根据需求,在内核运行期间动态的安装或卸载。

1.2 安装与卸载

  • 安装 insmod 例:insmod /home/dnw_usb.ko
  • 卸载 rmmod 例:rmmod dnw_usb
  • 查看 lsmod  例:lsmod  lsmod是列举当存在内存中的所有模块名称,占用大小,有多少个用户正在使用等信息。

2.内核模块设计

2.1 范例代码分析

#include <linux/init.h>
#include <linux/module.h>


static int hello_init()
{
    printk(KERN_WARNING"Hello world!\n");
    return 0;	
}

static void h
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值