模块的简单建立

    xiaoxiao2021-03-26  32

    Linux内核模块 Linux设备驱动会以内核模块的形式出现。学会编写Linux内核模块编程是学习Linux设备驱动的先觉条件。 Linux内核模块的简介 Linux提供模块机制,具有如下的特点: 模块本身不能被编译进入内核映像,从而控制了内核的大小 模块一旦被加载,他就和内核中的其他部分一样。 以下是一个简单的程序 /* *a simple kernel module: hello * * * */ #include <linux/init.h> #include <linux/module.h> static int __int hello_init(void) { printk(KWEN_INFO"Hello World enter\n"); return 0; } module_init(hello_init); static void __exit hello_exit(void) { printk(KERN_INFO"Hello World exit\n"); } module_exit(hello_exit); MODULE_AUTHOR("..."); MODULE_LICENSE("GPL V2"); MODULE_DESCRIPTION("A simple Hello World Module"); MODULE_ALIAS("a simplest module"); 这个最简单的内核模块值包含内核模块加载函数,卸载函数和GPL v2许可证以及一些描述信息。 modprobe,他在加载某模块是,会同时加载模块所依赖的其他模块。 Linux内核模块程序结构 内核模块主要由如下几个部分组成。 模块加载函数 当通过insmod或者modprobe命令加载内核模块时,模块的加载函数会被自动执行,完成本模块的 相关的初始化工作。 模块的卸载函数 当通过rmmod命令卸载某模块的时候,模块的卸载函数会被自动的执行,完成与模块加载相反的函 数。 模块许可证申明 许可证申明描述内核模块的许可权限,不然会有内核被污染的警告 模块参数 是模块被加载的时候可以传递给他的值。 模块导出符号 模块作者等信息申明 今天到这里,爱你,叶铮
    转载请注明原文地址: https://ju.6miu.com/read-663150.html

    最新回复(0)